给定一个数据集,如何找到一套高效解决问题的 AI 算法加超参数?对于机器学习开发者来说,这是需要耗费大量时间来完成的工作。不过近几年来出现的自动机器学习工具 AutoML,用 AI 的方式让构建 AI 的模型选择、调参工作变成了全自动。
10 月 22 日,在 「2021 年数智化高峰论坛」上,九章云极 DataCanvas 发布的自动机器学习工具(DataCanvas AutoML Toolkit,DAT)又将 AutoML 的范围拓展到了机器学习任务的全流程。
「从工具形态上来看,AutoML 目前已经具备独立部署的条件了,」九章云极 DataCanvas 资深架构师杨健说道。「实用化的框架会对这一领域带来基础支撑,其意义类似于 TensorFlow 和 PyTorch 之于深度学习——我们认为 AutoML 正需要这样的工具来促进应用的铺开。」
而且,九章云极 DataCanvas 还希望通过完全开源的形式对社区作出更多贡献。
让端到端的 AutoML 成为可能
神经网络设计是一项极为耗时的工作,其对专业知识的要求让开发的门槛一直难以降低,而有了 AutoML 方法,神经网络也可以设计神经网络。
常规 AutoML 工具针对机器学习算法,面向超参数优化、特征工程等任务,这类工具今天看已不能满足企业的需求。近几年人们陆续的一些定位为端到端的 AutoML 工具,提升了很多工作的效率,在机器学习社区也获得了可观的影响力。
但九章云极 DataCanvas 认为,这还不是真正意义上的端到端自动建模——在机器学习的任务流程中,人们还要面临数据不均衡、数据漂移、模型泛化、大规模数据建模等问题的挑战。
如果 AutoML 工具不能自动化地解决这些问题,就很难成为工业界 AI 建模的核心。「在企业智能化转型的过程中,自动化意味着脱胎换骨的改造,应用 AI 不仅意味着使用新技术,还触及到了企业的管理模式、技术架构、运营体系。要想转型,我们需要做很多努力。」杨健说道。
DAT 被设计成技术栈的形式,分清了层次和框架,提供了很多开箱即用的工具,可处理结构化、非结构化数据,如果无法满足需求,用户可以使用底层框架自由构建出符合业务需求的算法。
在这里,工程师们把 AutoML 的过程抽象成由一系列 Step 组成的实验,通过数据管道串联,一个实验的 Step 可以组装,数据不均衡、数据漂移等问题都有专门的 Step 去处理,而且随时可以针对不同场景的挑战扩展 Step。
DAT 的工具栈可以分为三层:首先是最底层的 AutoML 框架 Hypernets、机器学习和深度学习框架,中间是 AutoML 工具如 DeepTables、最上层是应用工具:HyperGBM、HyperDT、HyperKeras、Cooka。
DataCanvas · GitHub
- https://github.com/DataCanvasIO/Hypernets
- https://github.com/DataCanvasIO/HyperGBM
- https://github.com/DataCanvasIO/HyperKeras
- https://github.com/DataCanvasIO/DeepTables
机器学习框架 Hypernets 到轻量级、图形化的自动建模系统
Cooka,当前的 AutoML 不仅可以参与建模过程,还能将自动生成的 AI 模型更快投入到实践中。
整个 DAT 工具栈以面向任务分类,可以同时满足结构化数据的建模和非结构化数据(CV、NLP)的建模,覆盖了从数据工程师、AI 开发者、AutoML 工具开发者、再到非技术背景人员的广大范围。
这套工具无需绑定特定的云服务或硬件,只需要电脑设置好 Python 等环境就可以上手,也支持大规模数据和集群计算。
DAT 的目标是打造 AutoML 的全方位能力,并不只针对某一个建模的场景和目标,目前市面上还没有哪个产品和 DAT 的定位是完全重合的。
节约百倍开发时间
作为一个高度独立且开源的产品,DAT 相对其他 AutoML 工具有很大优势。
首先是使用最好的技术,九章云极 DataCanvas 内置了几种对高维空间非常有效的搜索算法,包括蒙特卡洛树搜索、强化学习算法、进化算法,并引入了元学习(Meta-learning)方法来加速搜索过程,利用历史搜索和评估结果来更准确和高效的指导搜索方向,减少搜索迭代次数。
在 AutoML 的实际应用过程中,真正消耗算力的部分是模型评估。一个基本的搜索过程是:从搜索空间中采样、评估样本效果、反馈给搜索算法指导下次采样的方向,然后重复这个过程直到找到满意的样本。
「我们引入了很多方法来降低评估成本,比如低保真预热、同路径数据链路缓存、模型训练的 Pruning 等等。HyperGBM 通常只需要人工单次训练时间的 10 倍左右的时间就可以完成整个 AutoML 的过程,从总成本上看大大优于人工建模。」杨健说道。
DAT 在 notebook 中的可视化运行图。
在实际环境中,机器学习模型经常会遭遇「概念漂移」的挑战:AutoML 在静态数据下表现很好,但实际应用场景下,数据是实时产生的,特征也在不断发生变化。如何在这样的情况下保持足够高的判断水准?
在 DAT 中,这个问题也是可以被自动处理的,其引入了一个半监督学习方法——对抗验证(Adversarial Validation),这一思想来自于 GAN。通过这种半监督的方法,我们不需要看到真实结果(y-true)就可以评估是否发生了数据漂移,哪些特征发生了漂移,然后对它们做相应的处理。
在传统机器学习建模过程中,开发者需要反复实验,进行特征处理、模型选择、调参等等工作,训练一个实用化模型至少要几十到上百次的反复训练。相比人力,AutoML 带来的效率提升可以达到上百倍。手工建模需要数周数月的时间,AutoML 可以在一天以内完成。如果一个实习生从零开始学习使用 DAT 构建算法,只需要两个星期时间就能提交结果,很多工作只需要几十行代码。
而且使用 DAT 完成的效果更稳定。「手工建模的质量取决于个人的能力,有很大的不确定性,AutoML 的算法不会有这样的问题。」杨健说道。
对阵 Kaggle 大师,获得数据竞赛冠军
如果像自动驾驶一样把 AutoML 的自动化程度进行分级的话,它的发展速度相对更快:Level 2 可以对应 XGboost 这样的机器学习包,Level 3 对应自动化调参的算法优化工具,Level 4 可以实现端到端自动化建模,对应如今的 DAT;而 AutoML 最终的目标是完全不依赖领域专家的建模,甚至是根据数据变化自我进化的系统。
由于 DAT 是开源的,人们可以自行安装使用、感受 AutoML 的能力:其中的两个工具 DeepTables 和 HyperGBM 和谷歌 AutoML Tables 同样能解决结构化数据建模问题,在几个公开数据集的测试上看 Google AutoML Tables 要比 DAT 慢一个量级,而且谷歌的工具是云服务的一部分,需要先付费。
AutoML 自动生成的算法除了能够节省开发时间,实际工作的准确度如何?早在 DeepTables 工具刚刚构建完成时,九章云极 DataCanvas 的开发人员就参加了著名机器学习竞赛平台 Kaggle 的 Categorical Feature Encoding Challenge II 比赛,测试了自动机器学习算法的水平,并获得了成功。
「我们希望用这个机会验证 DeepTables 的实际水平,」杨健说道。「整个比赛经历 3 个多月的时间,有来自全球的将近 1200 个团队,还有好几个 Kaggle 的 Grand Master level 的大神,像 Bojan Tunguz、Sergey Yurgenson 等,」
九章云极 DataCanvas 的方案比较简单,主要就是为了验证 DeepTables,数据没有做太多处理,调用了 DT 内部网络架构的几个参数,作为 AutoML 工具 DT 内部预置了很多网络架构,可以任意地组装和排列。
团队最终选出了 4 种不同的网络组合,再融合在一起,获得了很好的结果。需要注意的是,比赛存在 Public 和 Private 两个榜单,这意味着参赛模型需要有足够的泛化能力——经过太多调参的模型会趋向于过拟合,在 Kaggle 大部分竞赛中都会出现 Public 榜上排名前几十名的方案,在 Private 榜上集体排名下降的情况。
DeepTables 在比赛中两个榜单都排到了第一名——这意味着使用 AutoML 自动生成的算法,性能超越了众多 Grand Master 手动调出的水平。
速度更快,性能更好,应用门槛还更低,这让人们没有理由不去尝试 AutoML。
九章云极 DataCanvas 表示,未来还希望进一步降低门槛,提供更面向前端用户的建模工具以及支持更广泛的场景模型任务类型,并进行实时分析方向的一些开源探索。