上新了,NNI!微软开源自动机器学习工具NNI概览及新功能详解
作者头像
  • wu228994
  • 2019-12-27 06:40:20 8

NNI:推动自动机器学习发展的利器

2018年9月,微软亚洲研究院推出了NNI(Neural Network Intelligence),该项目在GitHub上获得了3.8K星标,成为最受欢迎的自动机器学习(AutoML)开源项目之一。

作为专门为研究人员和算法工程师设计的自动机器学习工具和框架,NNI在过去的一年里持续迭代更新。团队发布了稳定的API版本1.0,并不断引入最新的算法,增强了对各种分布式训练环境的支持。

NNI的最新版本在机器学习的各个阶段都提供了全面的支持,包括特征工程、神经网络架构搜索(NAS)、超参调优以及模型压缩等步骤,都可以通过自动机器学习算法实现。

无论是初学者还是经验丰富的专家,NNI都能提供强大的支持。本文将详细介绍NNI最新版本的各项功能,帮助大家更好地理解和使用这一自动机器学习工具。

概述

自动机器学习近年来备受关注,各种自动机器学习工具层出不穷,各有优缺点。有的专注于算法但不支持分布式训练;有的功能强大但缺乏友好的用户界面;有的仅限于特定领域;还有些只能在云端运行。

微软的自动深度学习工具NNI具有以下优势:

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

完整中文文档请访问:https://aka.ms/nnizh

NNI入门与超参优化

随着机器学习和人工智能的发展,经典算法和深度学习网络已广泛应用。然而,不同数据集所需的超参数设置各不相同,超参优化正是为了解决这个问题,通过启动多个实例找到最优参数组合。

NNI的超参调优功能特别适用于此类场景。在超参搜索算法方面,NNI不仅提供了TPE、SMAC、进化算法等优秀算法,还支持遍历、批处理、随机、Hyperband等多种算法。此外,还支持自动终止低效实例,加速学习过程。

NNI的安装非常简单,只需一条命令:“pip install nni”。

使用NNI也非常简便:首先定义搜索的超参空间;然后在训练前通过NNI的接口读取参数并传递目标值(如准确率);最后配置调参算法即可开始。

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

自动特征工程

特征工程是应用经典机器学习算法的重要步骤,通过特征工程,可以加快机器学习过程,获得更好的结果。

NNI的超参调优功能可以直接应用于特征增强和自动特征选择等任务。为了便于新手入门,NNI内置了基于梯度和决策树的自动特征选择算法,并提供了扩展其他算法的接口。

NNI团队对自动特征工程进行了对比测试,在colon-cancer、gisette、rcv1、neews20.binary、real-sim等数据集上验证了其效果。实验表明,在成千上万的特征中选择前20个,决策树通常能取得较好结果,而选择更多特征则会有更好的表现。

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

神经网络结构搜索(NAS)

神经网络结构搜索(Neural Architecture Search,简称NAS)旨在通过自动搜索网络结构来提高性能。近年来,关于NAS的研究成果层出不穷,算法种类繁多。

为了促进NAS的创新和发展,NNI实现了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添加新算法、新功能和新示例,并欢迎大家提出建议和报告问题。如果您有任何反馈或建议,欢迎在GitHub社区中告诉我们。

NNI的GitHub社区:https://aka.ms/nniis

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

NNI中文文档链接:https://aka.ms/nnizh

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