上新了,NNI!微软开源自动机器学习工具NNI概览及新功能详解
作者头像
  • 清风明月
  • 2019-12-28 08:41:03 8

概述

自动机器学习是近年来非常热门的应用领域,各种自动机器学习工具也不断涌现。然而,每种工具都有其独特的优势和局限性。有的工具专注于算法研发,但不支持分布式训练;有的工具功能强大,但用户界面不够友好,导致学习成本较高;还有一些工具只适用于特定领域,缺乏通用性;还有些工具只能在云端运行。

微软推出的自动深度学习工具 NNI 具备显著的优势,包括但不限于:

  • 支持多种框架:提供基于 Python 的 SDK,兼容 PyTorch、TensorFlow、scikit-learn 和 LightGBM 等主流框架。
  • 支持多种训练平台:不仅可以在本地直接运行,还可以通过 SSH 调度一组 GPU 服务器,或在 Kubernetes 下通过 FrameworkController、KubeFlow 或 OpenPAI 等工具调度大规模集群。
  • 覆盖机器学习生命周期的多个环节:从特征工程到神经网络架构搜索(NAS)、超参调优和模型压缩,均可通过自动机器学习算法实现。
  • 提供易用的命令行工具和友好的 Web 用户界面
  • 提供丰富的示例,帮助用户快速上手。
  • 最重要的是,NNI 的所有文档都提供了中文版本。

完整中文文档请参阅:https://aka.ms/nnizh

NNI 入门与超参优化

机器学习和人工智能经过多年发展,已经形成了许多经典的机器学习算法和深度学习网络。这些算法各有特点,需要在不同数据集上进行调整以达到最佳效果。超参优化正是为解决这一问题而设计的,通过启动多个实例来找到最佳参数组合。

NNI 的超参优化功能非常适合这一应用场景。它不仅提供了 TPE、SMAC 和退化算法等高效算法,还提供了遍历、批处理、随机、Hyperband 等多种算法。此外,NNI 还支持自动终止低效实例,从而加快学习过程。

安装 NNI 非常简单,只需通过 Python pip 命令执行“pip install nni”。使用 NNI 也非常直观:首先定义需要搜索的超参空间,然后在调参前通过 NNI 接口读取参数并在训练过程中将准确性等指标传入 NNI,最后配置好使用的调参算法即可。

具体操作步骤可参考入门教程:https://aka.ms/nnizq

您也可以在此处找到所有示例:https://aka.ms/nnize

NNI 的超参优化不仅适用于机器学习,还适用于各种系统的复杂参数调优。具体流程与超参优化类似,只需通过 Python 传递不同的参数配置,然后将确定的优化目标(如读写速度、磁盘空间大小等)回调给 NNI 即可。

更多信息请访问:https://aka.ms/nnizrd

自动特征工程

特征工程是应用经典机器学习算法的前提步骤,通过特征工程可以显著提升机器学习的效果。前面介绍的 NNI 超参优化功能可以直接应用于特征增强和自动特征选择等特征工程的不同环节。为了方便新手上手,NNI 内置了基于梯度和决策树的自动特征选择算法,并提供了扩展其他算法的接口。

NNI 团队对自动特征工程的效果进行了对比测试,在流行的数据集(如 colon-cancer、gisette、rcv1、news20.binary、real-sim 等)上进行了验证。测试结果显示,决策树算法在特征选择中表现优异,能够有效提升模型性能。

更多信息请访问:https://aka.ms/nnizfe

神经网络结构搜索(NAS)

神经网络结构搜索(NAS)是一种通过自动搜索网络结构来提升性能的技术。近年来,NAS 已成为研究热点,出现了许多研究成果。为了促进 NAS 的创新,NNI 实现了多种 NAS 算法,包括 ENAS、DARTS、P-DARTS 等,并提供了 one-shot 算法的接口。此外,还支持网络模态(Network Morphism)等经典搜索方法。

算法介绍及使用方法请参阅:https://aka.ms/nnizn

模型压缩

随着深度学习的发展,模型规模逐渐增大。尽管模型精度有所提升,但较大的模型尺寸不仅影响推理速度,还增加了硬件部署的要求。因此,模型压缩成为一个热门话题。

模型压缩主要分为两种类型:一种是通过剪枝算法压缩网络结构,另一种是通过量化算法减小模型精度。NNI 目前提供了 AGP、L1Filter、Slim、Lottery Ticket、FPGM、QAT、DoReFa 等多种模型压缩算法。用户可以根据需求通过 NNI 的模型压缩接口实现自定义压缩算法。

相关算法介绍及使用方法请参阅:https://aka.ms/nnizc

结语

随着人工智能技术的不断发展,理论和建模方法也在持续演进。我们致力于为每一位研究员和算法工程师提供最好的工具,以推动人工智能领域的进步。

2020 年,我们将继续努力创新,力求使 NNI 提供全生命周期的自动化框架、更丰富的算法、更高效的分布式调参效率,进一步提升 NNI 的易用性和用户体验。

作为一个开源项目,我们期待大家为 NNI 提供新算法、新功能和新示例。如果您有任何反馈和建议,请访问 NNI 的 GitHub 社区:https://aka.ms/nniis

扫描下方二维码,访问 NNI 的中文文档。

https://aka.ms/nnizh

    本文来源:图灵汇
责任编辑: : 清风明月
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
微软概览开源新功能详解NNI机器自动工具学习
    下一篇