小叽导读:AI 应用在我们的生活中已经无处不在了。可是作为知识与人力密集型的 AI 应用,如果要获得更好的效果,目前仍然需要重度依赖算法科学家。如何帮助 AI 应用快速落地?减少对于人的依赖,AutoML 已经成为炙手可热的话题。今天,为你揭秘阿里巴巴人工智能实验室在 AutoML 方面做了哪些探索。
写在最前面
AI 应用的落地离不开算法模型训练,模型训练的过程根据领域不同,需要不同的引擎、工具、资源,往往是比较耗时耗力的。人工智能实验室有许多产品及应用,背后都有许多的模型训练过程,才能使线上的产品不断迭代,使得用户的感受更加智能。从数据生产到模型训练以及部署上线,我们在 AutoML 方面做了一些探索工作,并且从工程角度加快一个完整 AI 应用的迭代。
背景
目前一个 AI 应用的落地,一般会有以下几个部分。
从上图可以看出,一个完整的 AI 应用开发流程非常冗长,并且繁琐,需要大量的人力与物力投入。在这里虚线部分是我们总结出来可以自动化的部分。
现状
AutoML 行业现状(集团外)
上表是传统机器学习与 autoML 的一个对比,以及一些代表的企业。
一句话总结:传统机器学习需要专家参与机器学习的每一个步骤,而AutoML期望的是可以用同一种方式解决多个问题。
业务现状
天猫精灵目前已使用的所有模型,都是已经经过算法专家们优化的,训练参数已经相对稳定,基本不用修改。因而对于模型自动调参的需求并不强烈。真正的痛点在于,工作量大,模型效率不高,各阶段交互成本高,数据安全限制。我们提出的 Auto AI 概念,正是从天猫精灵的实际业务场景出发,希望通过自动化,平台化,数据化的手段,以安全和高效为前提,来简化我们的 AI 应用的落地。
下面我将具体阐述:
自动化:Auto AI 的使命是成为一个完全托管的全流程自动化 AI 应用平台。这项服务将涵盖整个机器学习工作流程,用于标记和准备数据、选择算法、训练算法、调整和优化以进行部署、进行预测以及采取行动。通过自动化 pipeline 的思路,您的模型能够以更少的工作量和更低的成本更快地投入生产。
平台化: Auto AI 将会将机器学习的所有工作流程,形成平台化产品工具,帮助科学家们在 AutoAI 的平台内,可以实现模型的数据整理,预处理流程的选择,以及模型评价。在实际工作中,AutoML 完全替代算法工程师的难度是很大的。 因而我们将更多的时间花在如何让科学家们更高效的训练,发布模型。 不同的算法类型,会有专门的平台进行操作,比如 NLP 算法平台,ASR 算法平台,图像算法平台等等。
数据化:目前在 AI 领域内的一个普遍忽略点,在于我们缺乏对数据的追踪和统计。这使得,我们整个 AI 应用的生产中出现不少盲点,比如我们花了多少钱在数据标注上,这些人工标注的数据的利用率有多少,这些数据对我们模型质量的提升帮助又有多少?人工标记的准率有多少?如果得到 这些数据,我们甚至可以帮助提高我们的人工数据标注质量,从而再进一步提高我们的模型质量。
我们希望的发展轨迹是:
高质高效的数据标注能力;
给与算法人员,定制预处理数据,特征数据的能力;
通过不同的模型进行尝试,帮助算法人员找到最合适的模型训练配置;
在模型的迭代阶段能够通过自动化来加速模型迭代的周期和质量;
给与模型直观的评测指标;
模型能够很方便地进行部署;
引入回归测试平台,方便的帮助我们观察部署的模型效果。
架构
从架构上来看,我们打通了整个 AI 应用的生命周期闭环。
通过方舟流程平台,原来需要手动串联的流程,通过自动化平台进行自动化调度。
下文就上图的各个环节进行阐述:
数据生产
随着目前以深度学习为代表的监督类模型训练的蓬勃发展,海量与优质的标注数据能给模型带来显著的效果提升,因而数据生产是整个 AI 应用发展的助推剂。 人工智能实验室,有着强大数据标注平台。
内置各种无人车、图像、音频、文本等标注数据类型,满足高精度数据标注要求。
支持2D/3D图像/点云联动的高级能力
支持2D/3D tracking 分组标注能力,并且对于每个分组中的标注项目数目没有任何限制。
支持自定义模板配置,满足自定义标注的需求。
支持任务分发,完善的任务管理与任务跟踪。
封闭训练环境—数据安全的守护者
目前 AutoAI 支持多种类型的训练环境。
阿里机器学习平台的 tensorflow训练环境。
在 AILabs 中,NLP 算法基本上都是在阿里机器学习平台的 TensorFlow 上进行训练。 AutoAI 封装阿里机器学习平台的 tensorflow 训练环境,增加不同环境的算法版本管理。
自定义 docker 分布式训练
AILabs 的声学训练需要使用到特定的声学模型训练框架,可是机器学习平台上目前并没有相应的框架可供使用。AILabs 的算法工程师们联合机器学习平台的同学打造了一个自定义声学训练框架的 dock 环境,通过这个 docker 环境进行模型训练与数据处理。
PAI-speech 是基于 MR/MPI 与机器学习团队一起打造的训练引擎。
用户通过 PAI-speech,在自定义的 custom PAI speech docker 上进行数据处理与模型训练。
生成的模型存放到 mount 的 OSS 上。
在 AILabs 对于数据安全,有着天然使命的追求。 如何方便算法工程师进行开发调试,而又不会将训练数据暴露出来?比较直接的想法是,我们创造出一个隔离的训练环境,算法使用者,通过 console 进行操作,隔离高风险操作,比如数据导出等。这样在隔离环境内,我们不限制使用者的操作,但又隔离了所有的危险操作,平滑了安全与易用的矛盾。
业务平台
我们针对不同的算法业务线,孵化出多个业务平台。
数据生产平台
之前已经提到了,我们已经拥有了很出色的数据标注平台。 那数据如何进入标注平台,标注后的数据如何回流到资产管理?根据不同的业务方,他们一般会有不同的业务需求。
如何提高数据生产的效率,是 AI 应用中非常重要的一环,提高数据生产的效率,可以促进模型迭代的周期。
通过方舟流程平台进行流程编排,可以很方便地帮您将数据导入点金数据标注平台,进行人工标注。
NLP 算法平台
专门为NLP文本算法训练的平台:
声学训练平台
部署和上线
在实际生产环境中,对于部署的版本控制是十分重要的。天猫精灵目前的部署和上线采用的是如下流程:
这个过程中,有着大量的人工交流的成本。 还有一个无法克服的问题,在于,目前的评测数据往往是 out-of-date, 大概几个月都不更新。显然这样的评测数据,并不能精准的反应当前线上数据的变化。
因而我们提出了以下的改进模式:
整个过程除了最后 验收人员判断是否 上线以外,全程没有人的参与,并且用最新的线上数据,反应模型对最新数据的适应能力。
特性
上面说了这么多,让我们来看看通过 autoAI 我们能够做什么吧。
主动学习-模型优化的助推器
主动学习在人工智能实验室的 NLP 与 ASR AI 应用中有着广泛的落地。通过 Active Learning有2个显著的好处:
减少人工标注数据量;
与传统随机抽样人工标注对比,结合 active learning 能够更快到达更好的效果。
下面以我们做的 ASR 的主动学习为例:
组件说明:
待标注数据集:由3部分数据构成:根据全量数据抽样规则产生的原始数据标注;自动标注中的不可信结果;模型评测产生badcase。
特征文件抽取:不管是标注数据,还是原始数据都是资产数据,是不能够直接应用与算法开发的。因而需要从数据资产平台(藏金阁)将标注数据/原始数据转换为特征文件导出到 autoAI training。
autoAI training:上文提到的基于 PAI 的声学自定义训练环境。
双Asr引擎: 经过标注数据训练出来的2个不同算法的声学模型。
选择策略:双Asr引擎一致的,并且置信度超过阈值的,进入待训练数据集。
2个现有的 asr 模型标注后的结果进行对比,结果一致并且置信度高的预测结果直接加入训练集。
结果不一致的或者置信度低的,进入待标注数据池,等待人工标注。
具体步骤:
双 ASR 模型在线预测的方式尝试自动标记训练数据,根据选择策略,将不确认的数据重新交由人工进行标注。而双 ASR 校验通过之后的数据可以直接跳过人工标注,进行下一步的训练,大大降低了人工成本,与计算时间。
将人工与自动标注的数据合并进行模型训练。
模型评测后的 badcase 重新流入待标注数据池,这部分 badcase 可以验证新模型是否产生了新的 badcase 和是否修复了之前的 badcase。
判断性能是否达到目标,重复步骤1-3。
一键式模型训练
AutoAI 目前已经整合了 NLP 中常用深度学习算法,只需极少的工作量和机器学习专业知识, 通过一次点击,就可完成训练。在这里没有繁杂的配置,真正的一键模型训练。 算法所需的参数,已经被我们封装到了训练模板之中,根据不同的业务需求,选择训练模板。如上文的 NLP 训练平台截图所示。
详细的模型细节
详细完整的模型评价细节,准确的反应出模型的学习拟合程度。
False Positive Examples 能够反映模型的 badcase,更精准地帮助算法科学家了解模型的学习拟合程度。
全托管式的部署
可以一键将训练出来的模型部署到预测服务器上进行预测服务。同时支持灰度,与A/B测试,以及未来成千上万的端上模型下发。
规划
在目前阶段 AutoAI 承接了人工智能实验的大部分模型训练,包括 NLP、声学、图像等。在满足我们算法工程师更快更好的训练模型以外,我们接下来会重点在以下方向发力:
结论
效率提升
通过引入 AutoAI ,我们大大缩短了一个模型的训练周期;简化了复杂业务的上线流程;增加了模型迭代次数。
安全
数据安全在人工智能实验室作为人工智能实验室的第一要务。如何保证用户隐私数据不流出,如何保证标注资产数据可以在安全的环境里使用。 AutoAI 的全流程,封闭式的训练环境,让所有的数据流转都在平台内进行。用户可以在平台上操作所有数据,而数据包括特征文件,模型数据是不会离开平台的。
参考文献:
Taking the Human out of Learning Applications: A Survey on Automated Machine Laring
强大数据标注平台 : https://smartdata.taobao.com/