将传统的机器学习方法应用于现实世界的问题可能非常耗时。自动化机器学习 (AutoML) 旨在改变这种状况——通过对原始数据运行系统流程并选择从数据中提取最相关信息的模型,使构建和使用 ML 模型变得更加容易。
为了帮助用户以高效和自动的方式设计和调整机器学习模型、神经网络架构或复杂系统参数,2017年,微软研究院开始开发其神经网络智能(NNI)AutoML工具包,2018年开源v1.0版本。
NNI 是一个“轻量级但功能强大”的工具包,可以调度和运行通过调整算法生成的试验作业,以在本地机器、远程服务器、OpenPAI、Kubeflow、K8S 上的 FrameworkController (AKS 等)和其他云选项等环境中搜索最佳神经架构和超参数。
Microsoft最近发布了NNI v1.3以及中文NNI版本。此更新通过将 AutoML 算法应用于特征工程、神经网络架构搜索 (NAS)、超参数优化和模型压缩等步骤,为整个机器学习生命周期提供了更全面的支持。
Microsoft 向任何想要在训练或模型中尝试不同 AutoML 算法或在不同环境中运行 AutoML 试用作业以加快搜索速度的人推荐 NNI。该工具包也将受到希望轻松实施和试验新 AutoML 算法的研究人员和数据科学家以及希望在其平台上支持 AutoML 的 ML 平台所有者的赞赏。
NNI 的 GitHub 页面概述了使工具包如此有用的属性:
**1、易于使用:**NNI 可以通过 python pip 轻松安装 — 只需在代码中添加几行即可使用 NNI 的强大功能。用户可以使用命令行工具和 WebUI 来处理试验。
**2、可扩展性:**调整超参数或神经架构通常需要大量的计算资源,而 NNI 旨在充分利用不同的计算资源,例如远程机器、训练平台。数百个试验可以并行运行,具体取决于您配置的培训平台的容量。
**3、灵活性:**除了丰富的内置算法外,NNI允许用户自定义各种超参数调优算法、神经架构搜索算法、早停算法等。用户还可以使用更多的培训平台来扩展NNI,例如虚拟机,云上的Kubernetes服务。此外,NNI可以连接到外部环境,以调整其上的特殊应用程序和模型。
**4、效率:**NNI 团队不断致力于从系统级和算法级进行更高效的模型调优,例如,利用早期反馈来加快调优过程。
当调谐器接收搜索空间并生成配置时,将开始基本的 NNI 实验。这些配置将提交到训练平台,并将其性能报告回调谐器,以便生成和提交新的配置。对于每个实验,用户可以遵循一个简单的三步过程:定义搜索空间、更新模型代码和定义实验。
在功能方面,NNI 提供了命令行工具和用户友好的 WebUI 来管理训练实验。借助可扩展的 API,用户可以自定义自己的 AutoML 算法和训练服务。
NNI 还提供了一组内置的 SOTA AutoML 算法,并为流行的训练平台提供了开箱即用的支持。该团队仍在添加新功能,并欢迎外部贡献。
NNI v1.3 与最新版本的 Linux、MacOS 和 Windows 兼容。它还自然支持AI框架的超参数调优和神经网络搜索,包括PyTorch,Keras,TensorFlow,MXNet和Caffe2,以及Scikit-learn,XGBoost和LightGBM等库。
开源的神经网络智能 v1.3 可在 GitHub 上下载。