9 月 26 日,由星策社区成员单位 LF AI & DATA 基金会主办的 AICON 2022 在杭州举行,本次大会齐聚 40 位 AI 领域开源重磅嘉宾,5 家开源企业顶力相助,活动累计观看达到 885819 人。
其中,AI工程化分论坛是本次大会除主论坛外,观看人数最多的分论坛,累计观看达到11w+。来自第四范式、中兴通讯、Kyligence、智源、微软的6位大咖讲师,从理论与实践的角度,阐述了当下 AI 技术发展的应用成果,及 AI 工具成果。以下是根据本论坛6位老师所分享的精彩内容所摘录的重点内容。欢迎一共回顾。
议题一:AI工程化趋势
谭中意 星策社区发起人,第四范式架构师,LF AI & Data TAC成员
AI新趋势
- AI 在企业中正在加速落地
随着中国企业数字化、智能化转型的浪潮,智能化已经成为了企业必须要做的事情。越来越多的企业在加速落地AI。在第四范式的很多案例里可以看到这种情况。 - 随着数字化智能化转型,更多企业在落地AI
企业内AI的落地场景更多了。比如在一些头部银行、大公司里面落地的AI场景是以千计的。大家可以想象,当一个企业能落地上千的AI场景,那么一定是其中的场景对他们来说是有用、有价值且有效的。 - AI落地的门槛在变低
以前要做一个AI场景的落地,非常麻烦,且成本相当高。它需要科学家做很多模型与实验,再去上线,因为很多事情是从头做起。但现在,随着预序列的大模型出现,随着OPENMLDB的出现,这些事情都让AI落地的门槛降低了。
从ModelCentric到DataModel的改变—吴恩达
AI在企业落地越来越多,模型的迭代,模型的算法的更新已经到了一个瓶颈,相反更多的是基于数据的运维和操作更能带来模型效果的提升。机器学习生命的各个阶段保持高质量的数据供给。
AI落地的挑战
来自分析师统计87%的AI项目没有部署到生成环境中。原因是AI落地过程中,数据是最重要的,也是最难搞对的,数据要满足以下要求:
- 同时满足训练海量和预测低延迟的需求
- Model Decay
- Training/Serving Skew(线上线下一致性)
- Time Travel
- 实时数据供给
- 更多
AI 落地如何规模化?
- 多:围绕关键业务流程落地多个场景
- 快:每个场景落地时间短,迭代速度快
- 好:每个场景的效果都达到预期
- 省:每个场景落地成本比较节省,符合预期
如何做到以上几点,答案是MLOps。在借鉴devops领域的成熟经验发展MLOps。MLOps = CI + CD + CT + CM,它包含代码、模型、数据,它覆盖机器学习的全生命周期,它同时是持续集成,持续部署,持续训练和持续监控。
MLOps不仅仅是流程和pipeline,它还包括:
- 计算平台:流式、批处理用于特征处理
- 消息队列:用于接收实时数据
- 调度工具:各种资源(计算/存储)的调度
- Feature Store:注册、发现、共享各种特征
- Model Store:模型的特征
- Evaluation Store:模型的监控/ AB测试
- Serving Tool:如何高效完成预测服务
议题二:开源机器学习数据库OpenMLDB:线上线下一致的生产级特征平台
张 浩 第四范式资深体系架构科学家
在机器学习从开发到上线的闭环中,实时特征计算是其中的重要一环,用于完成数据的实时特征加工。由于其高时效性需求,数据科学家完成特征脚本离线开发以后,往往还需要工程化团队通过大量的优化才能完成上线。另一方面,由于存在离线开发和工程化上线两个流程,线上线下计算一致性验证成为一个必要步骤,并且会耗费大量的时间和人力。基于开源实时特征计算解决方案OpenMLDB,为解决以上两个痛点出发,达到实时特征计算系统架构的优化目标 - 开发即上线,我们在架构设计和优化上的实践。
OpenMLDB线上线下一致性特征平台架构
- 线上:自研毫秒级的实时 SQL 引擎(基于内存或者外存存储)
- 线下:基于 Spark 优化的离线 SQL 引擎
- 一致性执行计划生成器保证线上线下一致性
OpenMLDB使用流程如下
- 线上引擎整体架构
ZooKeeper – 元数据存储和管理
Nameserver – Tablet 管理和故障转移
Tablets SQL
执行引擎
存储引擎
分布式部署
- 内存存储引擎 – 核心双层跳表数据结构
第一层索引对应具体的键值,优化分组操作(如 GROUP BY)
第二层索引对应时间戳,高效找到时间窗口
高效插入和查询,典型场景时间复杂度 𝑂(𝑙𝑜𝑔𝑛)
高效支持数据过期(TTL)相关操作
- 预聚合技术
目的:优化长窗口计算效率技术:预聚合部分结果用于实时计算
百万数据下提升性能两个数量级
同时适用于内存和磁盘存储引擎
OpenMLDB发展历程
OpenMLDB 中文官网:https://openmldb.ai/
GitHub: https://github.com/4paradigm/OpenMLDB
议题三:基于Adlik的MLOps开源实践
刘 涛 中兴通讯AI平台资深专家,Adlik开源项目技术负责人
MLOps 的概念起源于 DevOps ,区别于代码工程化持续交付流程,MLOps 关注于机器学习(ML)系统的的开发和部署,以标准化高性能机器学习算法和模型的持续交付过程。ML 工作流包括数据工程,模型过程和代码工程几个部分,各部分之间协作难度大,涉及技术领域多,模型开发、部署、更新和维护的难度都很大,造成ML系统难以工程化持续交付。
具体到模型部署领域,为了让模型产生商业价值,需要解决几个问题:
- 如何将模型与业务相结合
- 如何高效部署模型
- 如何确保模型以最优性能运行
- 如何有效管理生产环境中的模型
将深度学习模型部署到生产环境,实现应用是深度学习算法落地的重要一步。模型开发使用的训练框架各不相同,如TensorFlow、PyTorch、PaddlePaddle、Caffe、Kares、OneFlow等;部署阶段的场景和目标设备多种多样,目前针对不同设备有不同的推理框架,如Tensorflow Serving、Tensorflow Lite、OpenVINO、TensorRT、MNN、Paddle Inference等。这些推理框架互不兼容,用户根据业务需求在不同设备上使用不同推理框架部署模型时,需要安装和测试多次。如何将各个训练框架下得到的深度学习模型在不同于训练平台的目标设备上保持性能、高效执行?在同样的平台上,如何快速安装、测试不同推理引擎,保持同样的用户体验?
Adlik是深度学习推理加速工具链,致力于解决上述深度学习模型部署时遇到的各种挑战问题,是一款可以将深度学习模型从训练完成,到部署到特定硬件并提供应用服务的端到端工具链。能够实现模型从研发状态到生产应用环境的高效切换,能够与多种推理引擎协作,提供灵活的模型加速、部署、推理方案,助力用户构建高性能AI应用。
- Adlik包括模型优化器,编译器和引擎模块,支持各类模型在云、边、端侧灵活部署,高效执行。
- Adlik模型优化器支持模型自动剪枝,蒸馏和量化,可以在典型模型不降低精度情况下,提升推理吞吐量13.8倍。
- Adlik模型编译器,支持使用统一接口方案将多种原始训练模型格式转换到目标运行时模型格式,并构建DAG 完成端到端的不同模型表达格式的转换。
- Adlik引擎,支持多款硬件和对应运行时,并提供SDK,支持扩展新运行时和新硬件,并对多模型部署进行高效编排。
展望
作为MLOps工作流中模型部署的加速工具链,Adlik将进一步围绕深度学习端到端性能优化、AI 应用在异构平台上的部署与运行、高性能计算、高效模型运维等技术方向进行深入研究,持续构建社区生态,推动产业推动数字化变革,为用户打通深度学习应用的全流程,真正实现高效率、低成本的 AI 应用落地,助力不同行业实现智慧化转型,为数字经济发展提供强劲动力。
议题四:FlagAI大模型开源工具包
刘 广 北京智源人工智能研究开源平台算法研究员,FlagAI核心贡献者
FlagAI (https://github.com/FlagAI-Open/FlagAI) 是大模型算法、模型及工具一站式开源项目 。 我们的目标是支持在多模态的各种下游任务上训练、微调和部署大规模模型。
- 现在它支持最高百亿参数的悟道GLM。它同时也支持BERT、RoBERTa、GPT2、T5 模型和 Huggingface Transformers 的模型。
- 它提供 API 以快速下载并使用这些预训练模型,让用户方便的在自定义数据集上对大模型进行微调(fine-tuning)或者应用提示学习(prompt-tuning)然后在我们的模型中心与社区共享训练好的模型权重和信息。
- 这些模型可以应用于文本、视觉和多模态数据,用于文本分类、信息提取、问答、摘要、文本生成等任务,也支持图片分类,图文检索等任务。
- 由三个最流行的数据/模型并行库(PyTorch/Deepspeed/Megatron-LM)提供支持,它们之间实现了无缝集成。 你可以用不到十行代码来并行你的训练/测试过程。
大模型的性能指标随着规模提升显著,也为其在企业落地带来了成本和效率的挑战:
- 技术复杂
- 数据海量
- 工程繁浩
大模型开发维护的时间/人力/经济成本都极高,从阻碍了其下游推广和应用。
智源FlagAI项目致力于降低大模型应用的技术和工程门槛
- 支持主流大模型(文本、视觉和多模态模型)一键下载
- 支持高效训练微调技术
- 支持主流数据集和常见下游任务
FlagAI开源软件的架构:
- 硬件平台(计划兼容国产芯片)
- 计算框架(计划兼容多种框架)
- 模型算法(兼容Transformers框架)
- 文档教程(丰富的样例和文档教程)
FlagAI 低门槛的相关设计理念:
- 开箱即用(封装常见数据集和任务)
- 兼容性强(兼容多种框架和加速策略)
- 易于上手(丰富的教程文档)
- 开放共享(代码模型数据等多维度开源)
议题五:Byzer,使用SQL完成端到端机器学习流程
祝海林 Byzer社区PMC,资深数据架构师,Kyligence技术合伙人
Byzer (https://github.com/byzer-org/byzer-lang) 是一个面向大数据和AI, 相比 Python 更加易用的类SQL语言,并且有一个支持分布式的执行引擎,他的目标是帮助使用者提升自己的效率。 从2016年开始,已经经历了6年的发展,在很多企业里也有了多年的积累,包括金融,安全,安防等诸多领域都有应用。 目前开源产品包括 Byzer-lang, Byzer Notebook, Byzer Form 等。
在这次分享里的第一部分,我们首先介绍了 Byzer 的 Why, How, What 以及 基本的引擎架构。
我们认为解决大数据 和 AI 落地效率还是太低。那怎么解决这个问题呢?我们认为从框架上是比较难解决的,因为核心是要解决人的效率问题,而这就需要从人和机器交互的基础 - 语言层面去解决,同时需要一个统一的支持Data+AI 不割裂的分布式执行引擎。最终呈现给用户的,就是我们设计的一门面向大数据和AI的云原生类SQL语言 Byzer。
Byzer 语言引擎的架构也比较简单,分别是接口层,语言规范层,解释器部分,以及运行时层。和传统语言不太一样的是, Byzer 引擎是以 Http 协议为主的,用户只要通过 Http 接口把脚本发送给 Byzer 引擎, 引擎会返回 Json格式的数据。
接下来,我们演示了 Byzer 的两个示例。
第一个示例是使用 Byzer 分别从数据库和数据湖获取数据,然后进行 Join 关联组成一个完整的数据,然后对数据做个过滤,最后使用 YAML 格式对结果表进行图表绘制。整个过程自然,简单。
第二个例子,我们演示了使用 Byzer 内置的一些算法完成机器学习,这里包括数据清洗,特征工程,模型训练,模型部署等,全程可以使用类 SQL 语法完成。
如果只是支持内置的一些算法,就很难有效的支持诸如深度学习以及更加复杂的机器学习形态。所以 Byzer 也通过插件支持了 Python。在上面的例子我们可以看到,Byzer 的数据表,可以很方便在 Python 中获取,并且Python处理完后,还可以重新输出成表,供后续 Byzer 语句中使用。Byzer 真正在 SQL 和 Python 之间实现语言互通,数据互通,为用户提供了方便和无限的灵活性。
最后,我们提及了一些 Byzer 在 SQL 工程化的能力,这包含了模板化,分支语句,模块化等能力。
议题六:Feathr-企业级高性能Feature Store
朱晓勇 Feathr开源项目发起人,微软Principal Data Scientist
Feathr (https://github.com/feathr-ai/feathr)作为Linux Data & AI 基金会的一员,是一个已经在领英以及微软生产环境中使用了近6年时间的一个Feature Store,并在4月份开源,于9月份捐献给LF Data & AI社区。在领英内部,几乎所有的AI应用都是基于Feathr构建。Feathr在微软与领英典型的应用包括推荐系统(例如人脉推荐、信息流推荐、工作机会推荐等),反欺诈系统(例如登录时Bot检测)等。
在计算机科学中有一句话,“没有什么不能通过增加一个抽象层来解决” ("We can solve any problem by introducing an extra level of indirection." - Andrew Koenig)。Feathr正是这样一个抽象层,通过对于特征工程中常见的工作进行抽象,从而极大的简化了特征工程的难度。例如,在没有Feathr feature store之前,整个的特征工程的流程如下,整体非常复杂:
通过Feathr对于特征工程中常见的问题进行抽象和简化,那么用户就可以通过简洁的API对特征工程进行处理,把复杂的工作交给Feathr处理。常见的任务例如Point-in-time join, point-in-time aggregation等,通过一个API就可以实现,减少了数据泄露和标签泄露的问题。
对于常见的特征工程中的问题,Feathr大概分为几个部分去解决,分别是特征计算,特征注册,以及特征监控。
Feathr的架构如下,目前支持主流的云服务,包括Azure以及AWS。同时不依赖云上的版本也在开发中:
Feathr的一些核心亮点如下:
- 通过Feathr UI来进行特征的探索和发现
- 通过对特征进行探索,可通过API将特征下载到本地并执行,实时计算特征
- 在计算特征时, 支持丰富的UDF(PySpark,Spark SQL,Pandas)种类,丰富的算子支持(例如Point-in-time Join以及Aggregation),以及针对机器学习开发的类型系统(例如对于embedding的支持)。
- 批数据和流式数据均支持特征计算,能够近实时的拿到输入的特征
- 独有的Derived Feature功能,让特征共享以及复用更加容易
- 企业级的特性,例如基于角色的访问权限控制(RBAC)
- 针对超大规模数据的支持,例如十亿级别表的Join,以及复用之前计算结果,避免重复计算等。
最后
星策社区还将持续关注 MLOps 技术赛道及 AI工程化 相关内容、定期举办及参与企业转型、MLOps 、AI工程化等交流活动,不断提升社区影响力。也欢迎大家持续关注星策社区进展。