AI平台-AutoML-2019年几个靠谱的AutoML框架

本文涉及的产品
文件存储 NAS,50GB 3个月
简介: AutoML,也称自动机器学习,是指将机器学习应用于现实问题的端到端过程自动化的过程。

1. 什么是AutoML

1.1简介

AutoML,也称自动机器学习,是指将机器学习应用于现实问题的端到端过程自动化的过程。
典型的机器学习模型包括以下四个过程:
image
从摄取数据到预处理、优化,然后预测结果,每个步骤都由人来控制和执行。AutoML 主要关注两个主要方面:数据采集 / 收集和预测。中间发生的所有其他步骤都可以轻松实现自动化,同时提供经过优化并准备好进行预测的模型。
从表现形式来看,AutoML目前主要分三类:1. 自动化调参(比较基础)2. 对于非深度学习领域应用的AutoML,比如AutoSKlearn等,主要体现在从数据预处理,自动化特征分析,自动化特征检验,自动化特征选择,自动化模型选择等。3. 应用于深度学习/神经网络的AutoML,主要有NAS,ENAS等,对于框架有AutoKeras等。

1.2 为什么需要 AutoML

从应用角度,在过去几年中,对机器学习系统的需求飙升。这是因为 ML 如今在广泛的应用中取得了成功。然而,即使有这种明确的迹象表明机器学习可以为某些企业提供支持,但很多公司仍在为部署 ML 模型而艰难地努力着。
从理论角度,AI致力于替代人的一部分工作,但是进一步深究的话,AI算法的设计过程中的很多工作,比如调参,也是可以通过算法实现的,或者说可以在调参等过程中,通过贝叶斯、NAS、进化编程等算法,实现使用更多的算力来替代人力。
首先,他们需要建立一支由经验丰富的数据科学家组成的团队,这些科学家都要拿丰厚的薪水。其次,即使你拥有一支优秀的团队,往往需要更多的经验来决定哪种模式 最适合你的问题,而不是知识。机器学习在各种应用中的成功,导致了对机器学习系统不断增长的需求,这些系统可以由非专家使用¹。AutoML倾向于尽可能多地自动化 ML 管道中步骤,在只需最少人力的情况下仍保持模型的性能。

AutoML 的优点可归纳为三大要点:

  • 通过自动执行的重复性任务来提高工作效率。这使得数据科学家能够更多地关注问题而不是模型。
  • 自动化 ML 管道还有助于避免可能因手动引入的错误。
  • AutoML 是向机器学习民主化迈出的一步,它使所有人都能使用 ML 的功能。

2. 常见的Auto框架简介(2019年5月)

AutoML已经有很多年历史,但从去年开始,陆续涌出好多新的Auto框架,这几只是选择几个常见的做简介,后续的文章中会介绍他们的使用详情和性能等。

2.1 AutoSKlearn

本着入门一般选SKLearn的原则,先聊聊AutoSKLearn
Auto-Sklearn 是一个基于 Scikit-learn 构建的自动化机器学习软件包。Auto-Sklearn 让机器学习的用户从算法选择和超参数调整中解放出来。它包括特征工程方法,如独热编码(One-Hot)、数字特征标准化、PCA 等。该模型使用 sklearn 估计器处理分类和回归问题。
image
Auto-sklearn 创建了一个管道,并使用贝叶斯搜索对其进行优化。在 ML 框架的贝叶斯超参数优化中,添加了两个组件:元学习 用于初始化贝叶斯优化器,从优化过程中评估配置的自动集合构造。
Auto-sklearn 在中小型数据集上表现良好,但它还无法在大型数据集上产生性能最先进的现代深度学习系统。
演示
以下示例显示如何使用 Auto-Sklearn 拟合简单回归模型。

 import sklearn.model_selection
import sklearn.datasets
import sklearn.metrics

import autosklearn.regression

def main():
X, y = sklearn.datasets.load_boston(return_X_y=True)
feature_types = (['numerical'] * 3) + ['categorical'] + (['numerical'] * 9)
X_train, X_test, y_train, y_test = \
sklearn.model_selection.train_test_split(X, y, random_state=1)

automl = autosklearn.regression.AutoSklearnRegressor(
time_left_for_this_task=120,
per_run_time_limit=30,
tmp_folder='/tmp/autosklearn_regression_example_tmp',
output_folder='/tmp/autosklearn_regression_example_out',
)
automl.fit(X_train, y_train, dataset_name='boston',
feat_type=feature_types)

print(automl.show_models())
predictions = automl.predict(X_test)
print("R2 score:", sklearn.metrics.r2_score(y_test, predictions))


if __name__ == '__main__':
main()

2.1 MLBox

image
MLBox 是一个功能强大的自动化机器学习 Python 库。根据官方文档,该库提供以下功能:

  • 快速读取,分布式数据预处理 / 清洗 / 格式化;
  • 高可靠性的特征选择,泄漏检测,准确的 超参数优化;
  • 用于分类和回归的最先进的预测模型(深度学习,堆叠,LightGBM,......);
  • 具有模型解释的预测;
MLBox已经在 Kaggle 上进行了测试并且表现良好。(参见 Kaggle “Two Sigma Connect:Rental ListingInquiries”| Rank:85/2488)。
  • 管道

MLBox 架构
MLBox的主程序包包含 3 个子包,用于自动执行以下任务:

  • 预处理:用于读取和预处理数据。
  • 优化:用于测试和交叉验证模型。
  • 预测:用于预测。

2.3 TPOT

TPOT是基于树的管道优化工具,利用遗传算法来优化机器学习管道。TPOT 扩展了 Scikit-learn 框架,使用了自己的回归器和分类器方法。TPOT 的工作原理是探索数千条可能的管道,并为数据找到最好的一个。
image
资源链接:
Github:https://epistasislab.github.io/tpot/

2.4 H2O AutoML

H2O 是 H2O.ai 公司的完全开源的分布式内存机器学习平台。H2O同时支持 R 和 Python,支持最广泛使用的统计和机器学习算法,包括梯度提升(Gradient Boosting)机器、广义线性模型、深度学习模型等。
H2O 包括一个自动机器学习模块,使用自己的算法来构建管道。它对特征工程方法和模型超参数采用了穷举搜索,优化了管道。
H2O 自动化了一些最复杂的数据科学和机器学习工作,例如特征工程、模型验证、模型调整、模型选择 和 模型部署。除此之外,它还提供了自动可视化以及机器学习的解释能力(MLI)。
资料地址:https://h2o-release.s3.amazonaws.com/h2o/master/3888/docs-website/h2odocs/downloading.html#downloading-installing-h2o

2.5AutoKeras

Auto-Keras 是 DATA Lab 构建的一个用于自动化机器学习的开源软件库。基于 Keras 深度学习框架,Auto-Keras 提供了自动搜索深度学习模型的体系结构和超参数的功能。
API 的设计遵循 Scikit-Learn API 的经典设计,因此使用起来非常简单。当前版本提供了在深度学习过程中自动搜索超参数的功能。
Auto-Keras 的趋势是通过使用自动神经架构搜索(NAS)算法简化 ML 过程。NAS 基本上用一组自动调整模型的算法,替代了深度学习工程师 / 从业者。
资源链接:https://github.com/keras-team/autokeras
2.6 TransmogrifAI
下面介绍个大杀器2018年Salesforce出品的TransmogrifAI 。
该公司的旗舰 ML 平台名为爱因斯坦,也由 TransmogrifAI 驱动。TransmogrifAI是一个端到端的 AutoML 库,用于 Scala 编写的结构化数据,运行在最新版的Apache Spark 之上,可自动完成特征分析,特征选择,特征校验,模型选择等流程。在以下场景中,TransmogrifAI 特别有用:

  • 快速训练高质量机器学习模型,只需极少的手动调节
  • 构建模块化、可重用、强类型的机器学习工作流

3.关于Auto的思考

从质上讲,AutoML 的目的是自动化重复的任务,如管道创建和超参数调整,以便数据科学家在实际中可以将更多的时间花在手头的业务问题上。AutoML 还在于让所有人都能使用这项技术,而不仅仅少数人才能用。AutoML 和数据科学家可以联合起来加速 ML 的发展过程,从而实现机器学习的真正效率。
AutoML 是否成功取决于它的使用率和在这个领域所取得的进展。很明显,AutoML 是机器学习未来的一个重要组成部分。

相关实践学习
基于ECS和NAS搭建个人网盘
本场景主要介绍如何基于ECS和NAS快速搭建个人网盘。
阿里云文件存储 NAS 使用教程
阿里云文件存储(Network Attached Storage,简称NAS)是面向阿里云ECS实例、HPC和Docker的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。 产品详情:https://www.aliyun.com/product/nas
目录
相关文章
|
10天前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
73 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
6天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
61 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
DiffSensei 是一个由北京大学、上海AI实验室及南洋理工大学共同推出的AI漫画生成框架,能够生成可控的黑白漫画面板。该框架整合了基于扩散的图像生成器和多模态大型语言模型(MLLM),支持多角色控制和精确布局控制,适用于漫画创作、个性化内容生成等多个领域。
79 18
DiffSensei:AI 漫画生成框架,能生成内容可控的黑白漫画面板,支持多角色和布局控制
|
2天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
58 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
11天前
|
机器学习/深度学习 人工智能
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
Leffa 是 Meta 开源的图像生成框架,通过引入流场学习在注意力机制中精确控制人物的外观和姿势。该框架不增加额外参数和推理成本,适用于多种扩散模型,展现了良好的模型无关性和泛化能力。
56 11
Leffa:Meta AI 开源精确控制人物外观和姿势的图像生成框架,在生成穿着的同时保持人物特征
|
16天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
108 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
17天前
|
人工智能 安全 PyTorch
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
SPDL是Meta AI推出的开源高性能AI模型数据加载解决方案,基于多线程技术和异步事件循环,提供高吞吐量、低资源占用的数据加载功能,支持分布式系统和主流AI框架PyTorch。
47 10
SPDL:Meta AI 推出的开源高性能AI模型数据加载解决方案,兼容主流 AI 框架 PyTorch
|
17天前
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
75 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
19天前
|
机器学习/深度学习 人工智能
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
SNOOPI是一个创新的AI文本到图像生成框架,通过增强单步扩散模型的指导,显著提升模型性能和控制力。该框架包括PG-SB和NASA两种技术,分别用于增强训练稳定性和整合负面提示。SNOOPI在多个评估指标上超越基线模型,尤其在HPSv2得分达到31.08,成为单步扩散模型的新标杆。
61 10
SNOOPI:创新 AI 文本到图像生成框架,提升单步扩散模型的效率和性能
|
22天前
|
机器学习/深度学习 人工智能 算法
【AI系统】AI 框架基础介绍
本文介绍了AI算法、神经网络及其应用,解释了为何神经网络需要训练及AI框架的作用。通过解析深度学习的数学原理与反向求导算法,阐述了AI框架如何作为模型设计、训练和验证的标准工具,支持算法封装、数据调用及计算资源管理,强调了AI框架的发展历程和技术迭代。
54 9
【AI系统】AI 框架基础介绍