【全自动机器学习】ML 工程师屠龙利器,一键接收训练好的模型

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介:

某日出差,在出租上闲来无事和司机闲聊,告知其本人专业是人工智能,司机师傅顿时打开了话匣子:人工智能我知道,那个 AlphaGo 下围棋没有人能下得过它,吧啦吧啦吧啦......某次乘地铁,听见地铁上三五青年大谈深度神经网络。似乎一夜之间,机器学习飞入寻常百姓家,大有全民机器学习之势。


然而,若在街上拉住一位大爷说:我们来讨论一下 SVM 的机制吧,大爷必然挣脱开来大吼:不要耽误我买菜!机器学习算法纷繁复杂,No free lunch 理论告诉我们,每一个模型都有其偏好,对待不同的学习任务,都需用不同的模型来解决。一个算法工程师可能需要多年的修炼,才能熟练掌握各个算法的特性,在处理问题时,仍然需要使用各种 tricks,花费大量时间去调整模型,以求达到最好的效果。


计算机科学工作者本着能让计算机干就不要人费劲的原则,自然不能忍受这种重复繁琐的劳动。因此,自动机器学习(Automatic Machine Learning, AutoML)应运而生,它能自动完成算法和超参的选择。对于机器学习工程师来说,AutoML 能将他们从重复劳动中解脱出来;对于机器学习菜鸟来说,再也不用担心所选的模型不 work、超参不收敛,所需要做的只是接收训练好的模型。


AutoML 如同倚天剑屠龙刀一般,使机器学习工程师功力大增,但这样一件利器在不久之前似乎知晓的人并不多,2017 年 5 月 18 日,谷歌开发者大会(I/O)以“学会学习”(learning to learn)为口号,才将 AutoML 推到更多人的视野中来。其实,自动调参的工作早在 20 世纪末 21 世纪初就已经出现,每年的机器学习和人工智能的各大顶会上也频繁出现 AutoML 的身影。自 2014 年起,每年来自德国弗莱堡大学的 ML4AAD(Machine Learning for Automatic Algorithm Design)小组,均会在机器学习顶级会议 ICML 上组织 AutoML 的 workshop,这是来自全球的 AutoML 工作者集中交流的舞台。近年,谷歌、MIT 等世界知名企业高校也纷纷发表文章,加入到此领域中。


既然 AutoML 发展了多年,也不能光打雷不下雨,AutoML 的产品早已上线,auto-weka[1](2013年)、auto-sklearn[2](2015年) 是其中的代表,这两个工具均是 ML4AAD 组的产品。此小组的 leader 是 Frank Hutter 博士,此人博士期间的研究方向即是 AutoML,但是大多成果均和自动超参选择有关,博士毕业后转战贝叶斯优化领域,为 SMAC 算法的主要作者,之后成功的将贝叶斯优化技术应用在 AutoML 领域,不断推出成熟的 AutoML 产品,可谓根正苗红。


本文就按时间为顺序,以成果为线索,分别对 auto-weka、auto-sklearn 这两大自动机器学习工具,以及谷歌大脑和 MIT 在今年 ICLR 上发表的工作进行介绍。其中,详细介绍 auto-weka、auto-sklearn 和谷歌大脑的工作,简略介绍 MIT 的工作。


从非梯度优化算法走向全自动机器学习,以及 Auto-WEKA:帮你选择分类器的分类器


贝叶斯优化是非梯度优化的代表,因为不需要知道梯度信息,也不需要优化问题,具有良好的数学性质,所以适用范围比梯度优化更加广泛,常常被用来求解复杂的优化问题。


贝叶斯优化与 autoML 的两大工具 auto-weka、auto-sklearn 有着密不可分的关系。机器学习能自动化的原因在于其算法过程遵循固定的步骤,一般来说为数据处理、特征选择、模型选择和超参优化。Auto-weka 和 auto-sklearn 中,便将机器学习过程归约成了算法选择和超参优化(Combined Algorithm Selection and Hyper-parameter optimization,CASH)问题。


图1:auto-weka 算法选择树状图


CASH 用一个树形结构(如图1 所示)刻画机器学习中算法选择和超参设置的步骤,每一种算法的组合和超参的选择对应为一个采样,用 k 折交叉验证的错误率作为评价指标。SMAC 是基于随机森林的贝叶斯优化算法,结构和优化设置上均契合 CASH 问题,当仁不让的肩负起优化 CASH 的责任。SMAC 也出色地完成了这一任务,在ChaLearn AutoML challenge 竞赛中,auto-sklearn 分别获得了 auto 单元与 tweakathon tracks 单元的冠军。


Auto-weka 和 auto-sklearn 分别对应了 java 和 python 环境,两者的调用也十分简单,如图 2、3 所示。Auto-weka 有可视化界面,只需轻点鼠标就能完成训练工作,auto-sklearn 也仅需数行代码便可构建可用的模型。操作如此简单,还不用担心训练后的模型不 work,是不是很值得上手试验一番?


图2:auto-weka 可视化界面


图3:auto-sklearn 调用代码


AutoML 新方向:谷歌、MIT 用强化学习自动生成 CNN、RNN 等架构


将 AutoML 归约成一个优化问题,然后用非梯度优化算法直接求解,是通向自动机器学习的一种思路。ICLR 2017上谷歌大脑的工作“Neural Architecture Search with Reinforcement Learning”[3]结合深度学习和强化学习,给我们提供了另外一种解决此问题的方法。


1. 谷歌大脑:用强化学习生成子网络


在谷歌大脑的工作中,待生成的神经网络被称为子网络,子网络中每一层的结构被看作是时间序列上某一个时刻的输出结果,这样一个 controller(用一个 RNN 网络来表示),就可以用来生成子网络每一层上的结构(图4 所示),子网络训练后在验证集上的准确率作为该子网络的评价。


于是,问题就转化为优化 controller 的权重,使其能生成子网络的准确率尽可能大。但是,优化 controller 权重时梯度无法直接获得,此时需要借助强化学习方法获得梯度。如果将 controller 对每一层的结构预测视为一个动作,这样准确率就可以视为一组动作之后的奖赏值,可用 REINFORCE 规则估计出 controller 的梯度,用于更新权重生成下一个子网络。


图4:controller 生成子网络示意图


值得注意的是,每个子网络训练的计算开销都十分巨大,此工作中采用了异步并行的方法加速子网络的训练,这样就大大增加了对计算资源的需求,在 CIFAR-10 上生成 CNN 结构的实验中,谷歌大脑便使用了 800 个 GPU 来完成训练工作。在实验中,此方法被用来自动生成 CNN、RNN 等网络结构,生成的网络泛化能力与人工设计的网络结构相当,但是规模要略小于人工网络,说明了方法的有效性。


同时,此方法在生成子网络时需要预先设定好网络的深度(controller 的步数),而且每一层中结构也是从预先给定的候选结构中选择,所以欠缺了生成网络的灵活度。


2. MIT:用 Q-learning 生成 CNN 


无独有偶,同在 ICLR 2017 上 MIT 的研究者,在“Designing Neural Network Architectures using Reinforcement Learning” [4]中,也利用强化学习技术自动生成了 CNN 结构。


图5:用 Q-learning 生成 CNN 示意图


此工作也是通过逐层生成的方式得到网络结构,与谷歌大脑不同的是,在此工作中,将前一层的网络结构视为一个状态,将预测下一层的结构视为一个动作,将网络在验证数据集上的准确率视为奖赏值,用 Q-learning 的方法不断完善 Q 函数,最终给出验证正确率高的动作预测,生成泛化性能好的网络结构。


让机器学会学习,让机器学习工程师更有价值


诸如 Auto-sklearn 的工具数年前就已经问世,但却没有被机器学习科学家广泛使用,其中一个原因是,模型的好坏很大程度取决于训练模型之前对数据的清洗工作。正如 Keras 之父 Francois Chollet 所说:“数据清洗工作很难自动进行,它通常需要专业领域的知识以及对工程师想要实现的工作有明确且高度的理解。”


因此,即使在算法和超参选择上做得足够出色,AutoML 工具得到的还仅是一个好的模型,并非足够好的模型。自然,这样的结果是不能令精益求精的机器学习科学家满意的。深度网络的出现改变了这一现象,谷歌大脑在其 ICLR 2017 论文中指出:“深度网络已经成功将机器学习范式从特征设计转向网络结构设计。”


摆脱了数据清洗的困扰,AutoML 似乎能在其擅长的结构搜索上挣脱束缚,大放异彩。其实不然,AutoML 的搜索依赖于对网络结构或算法组合的评价,当前的大部分工作中均将 k 折交叉验证错误率作为评价准则,结构和算法稍作改变均要重新训练,时间和计算开销十分巨大,导致搜索不够彻底,也会影响 AutoML 的效果,以至于谷歌大脑在其工作中“大动干戈”,使用了 800 个 GPU 完成加速模型训练工作。如何在模型发生变化时消除计算冗余,高效地得到模型的评价指标,也是 AutoML 亟待解决的问题。


AutoML目前面临诸多困难,但是随着 GPU 的大规模使用,新一代计算设备 TPU 的出现,硬件性能大幅增长,在技术上,深度学习的成熟和强化学习的发展也为 AutoML 注入了新活力。


让机器学会学习才是 AutoML 的终极目标,每向此目标靠近一步,均是机器学习技术的突破。一旦困难得以解决,AutoML 的实现将解放广大机器学习工程师的劳动力,大幅降低机器学习的门槛。但是如 Francois Chollet 所说,“机器学习工程师的工作不会消失,相反,工程师将在价值链上走高”,这也是 AutoML 魅力所在,它体现了机器学习工程师的价值,这点也吸引着工程师们为之不断奋斗。 


文章转自新智元公众号,原文链接

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
1月前
|
机器学习/深度学习 存储 设计模式
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
本文探讨了数据基础设施设计中常见的一个问题:数据仓库或数据湖仓中的表格缺乏构建高性能机器学习模型所需的历史记录,导致模型性能受限。为解决这一问题,文章介绍了缓慢变化维度(SCD)技术,特别是Type II类型的应用。通过SCD,可以有效追踪维度表的历史变更,确保模型训练数据包含完整的时序信息,从而提升预测准确性。文章还从数据工程师、数据科学家和产品经理的不同视角提供了实施建议,强调历史数据追踪对提升模型性能和业务洞察的重要性,并建议采用渐进式策略逐步引入SCD设计模式。
96 8
特征时序化建模:基于特征缓慢变化维度历史追踪的机器学习模型性能优化方法
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
PAI Model Gallery 支持云上一键部署 DeepSeek-V3、DeepSeek-R1 系列模型
DeepSeek 系列模型以其卓越性能在全球范围内备受瞩目,多次评测中表现优异,性能接近甚至超越国际顶尖闭源模型(如OpenAI的GPT-4、Claude-3.5-Sonnet等)。企业用户和开发者可使用 PAI 平台一键部署 DeepSeek 系列模型,实现 DeepSeek 系列模型与现有业务的高效融合。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署 DeepSeek-V3 模型,阿里云 PAI-Model Gallery 最佳实践
本文介绍了如何在阿里云 PAI 平台上一键部署 DeepSeek-V3 模型,通过这一过程,用户能够轻松地利用 DeepSeek-V3 模型进行实时交互和 API 推理,从而加速 AI 应用的开发和部署。
|
1月前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
268 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
1月前
|
机器学习/深度学习 人工智能
Diff-Instruct:指导任意生成模型训练的通用框架,无需额外训练数据即可提升生成质量
Diff-Instruct 是一种从预训练扩散模型中迁移知识的通用框架,通过最小化积分Kullback-Leibler散度,指导其他生成模型的训练,提升生成性能。
62 11
Diff-Instruct:指导任意生成模型训练的通用框架,无需额外训练数据即可提升生成质量
|
1月前
|
机器学习/深度学习 安全 PyTorch
FastAPI + ONNX 部署机器学习模型最佳实践
本文介绍了如何结合FastAPI和ONNX实现机器学习模型的高效部署。面对模型兼容性、性能瓶颈、服务稳定性和安全性等挑战,FastAPI与ONNX提供了高性能、易于开发维护、跨框架支持和活跃社区的优势。通过将模型转换为ONNX格式、构建FastAPI应用、进行性能优化及考虑安全性,可以简化部署流程,提升推理性能,确保服务的可靠性与安全性。最后,以手写数字识别模型为例,展示了完整的部署过程,帮助读者更好地理解和应用这些技术。
94 20
|
1月前
如何看PAI产品下训练(train)模型任务的费用细节
PAI产品下训练(train)模型任务的费用细节
83 6
|
3月前
|
人工智能 JSON 算法
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式、 AI Native 的大模型与 AIGC 工程平台,为开发者和企业客户提供了 Qwen2.5-Coder 系列模型的全链路最佳实践。本文以Qwen2.5-Coder-32B为例,详细介绍在 PAI-QuickStart 完成 Qwen2.5-Coder 的训练、评测和快速部署。
Qwen2.5-Coder 系列模型在 PAI-QuickStart 的训练、评测、压缩及部署实践
|
2月前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
2月前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程实践:构建你的第一个机器学习模型
在人工智能的巨浪中,每个人都有机会成为弄潮儿。本文将带你一探究竟,从零基础开始,用最易懂的语言和步骤,教你如何构建属于自己的第一个机器学习模型。不需要复杂的数学公式,也不必担心编程难题,只需跟随我们的步伐,一起探索这个充满魔力的AI世界。
72 12