作者 | 宋驰

来源 | 微软研究院AI头条(ID: MSRAsia)

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 服务器,或通过 FrameworkController、KubeFlow、OpenPAI 等在 Kubernetes 下调度大规模集群;

支持机器学习生命周期中的多环节:特征工程、神经网络架构搜索(NAS)、超参调优和模型压缩等;

提供易用的命令行工具和友好的 WEB 用户界面

大量的示例能帮助你很快上手;

• 最后划重点,NNI的所有文档都有中文版

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

自动机器学习工具对比

NNI 入门与超参优化

机器学习和人工智能通过近些年的厚积薄发,已经形成不少经典的机器学习算法和深度学习网络,这些算法各有特点,在不同的数据集上所需要的超参也有所不同。而自动机器学习中的超参优化就是为了解决这个问题,通过启动多个实例来找到调优结果较好的组合。

NNI 的超参调优功能就是为这样的场景准备的。在超参搜索算法上,NNI 不仅提供了 TPE、SMAC、进化算法等优秀算法,还提供了遍历、批处理、随机、Hyperband 等十多种算法。另外,还支持自动终止低效实例,加速学习过程。

NNI 的安装基于 Python pip 命令,“pip install nni”即可一步完成。

NNI 的使用也非常简单:首先,定义好需要搜索的超参空间;然后,在需要调参的网络启动之前,通过 NNI 的接口读取参数并在训练中将精确度等指标传入 NNI;最后,配置好要使用的调参算法等,即可开始。

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

你也可以在这里找到所有示例:https://aka.ms/nnize

一图了解 NNI 使用

NNI 的超参调优不仅能用于机器学习,对于各类系统、数据库的繁杂参数都可以根据实际场景进行有针对性的调优。使用过程和超参调优非常类似,通过 Python 为系统传入不同的参数配置,然后将确定的调优指标(如读写速度,磁盘空间大小等)回调给 NNI 即可。

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

NNI 在运行中,可随时通过界面了解进度

分析超参之间的关联关系,快速发现规律

自动特征工程

特征工程是应用经典机器学习算法的前置步骤,通过特征工程,能让机器学习过程更快得到较好的结果。

前面介绍的 NNI 的超参调优功能,可直接应用于特征增强、自动特征选择等特征工程中的各个子领域。为使新手轻松上手,NNI 还内置了基于梯度和决策树的自动特征选择算法,同时还提供了扩展其它算法的接口。

NNI 团队还对自动特征工程的效果进行了对比,在流行的 colon-cancer、gisette、rcv1、neews20.binary、real-sim 等数据集上进行了测试。我们发现如果在成千上万个特征中仅选择前20个,决策树基本都能取得较好的结果,如果选出更多特征,会得到更好的效果。

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

神经网络结构搜索(NAS)

神经网络搜索(Neural Architecture Search,简称 NAS)通过自动搜索网络结构来获得较好的性能,在今年涌现了大量研究成果。NAS 算法多种多样,实现也各不相同。

为了促进 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 等9种模型压缩算法。用户也可根据需要,通过 NNI 的模型压缩接口来实现自己的压缩算法。

相关算法介绍及用法:https://aka.ms/nnizc

结语

随着人工智能的发展,理论和建模方法也始终在不断演进。立足于研究与应用的最前线,我们希望将最好用的工具提供给每一位研究员和算法工程师,加速人工智能领域的发展进步。

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

作为一个开源项目,我们期待大家为 NNI 添加新算法、功能、示例,也希望大家为 NNI 提出建议、报告问题,让我们为大家提供更好的工具,如果您有任何反馈与建议,欢迎在 GitHub 社区中告知我们。

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

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

(*本文为AI科技大本营转载文章,转载请联系原作者)

精彩推荐

推荐阅读

  • 11年艺术学习“转投”数学,他出版首本TensorFlow中文教材,成为蚂蚁金服技术大军一员

  • 知识图谱,下一代数据中台的核心技术

  • 新年首日涨姿势不能停:召回→排序→重排技术演进趋势深度总结

  • 迁移学习前沿研究亟需新鲜血液,深度学习理论不能掉链子

  • 详解GPU技术关键参数和应用场景

  • 链版“微信”,27 岁身价达 2.5 亿美元

  • 你真的懂云计算吗?

  • 互联网诞生记

  • “区块链岛”女记者调挖矿事件时惨遭暗杀,时隔2年依旧无法沉冤昭雪……

  • 你点的每个“在看”,我都认真当成了AI

微软开源的自动机器学习工具上新了:NNI概览及新功能详解相关推荐

  1. 台式计算机上的fn键是哪个,笔记本上fn是哪个键fn键功能详解【方法详解】

    最近有朋友问了小编fn是哪个键?其实这个很简单的,并且fn键还牵扯到许多的便捷功能,下面小编就来教教大家fn是哪个键,又应该如何使用fn键. 一.哪个是fn键 fn键很好找它就在笔记本键盘左下角ctr ...

  2. python自动填写小程序表单_python小程序实现刷票功能详解

    刷票一般要突破以下限制: 1.验证码识别 2.同一ip不可连续投票 解决办法 1.用tesseract工具,链接在此 https://code.google.com/p/tesseract-ocr/ ...

  3. 微软开源自动机器学习工具 – NNI安装与使用

    微软开源自动机器学习工具 – NNI安装与使用 NNI的众多特点 开启你的第一次NNI之旅 · 安装 · 三步准备实验 (1) 准备搜索空间 (2) 准备实验代码 (3)定义实验配置 · 一行命令开始 ...

  4. 微软nni_微软开源自动机器学习工具NNI安装与使用

    微软开源自动机器学习工具NNI安装与使用 发布时间:2018-12-29 11:51, 浏览次数:951 , 标签: NNI 微软开源自动机器学习工具 – NNI安装与使用 在机器学习建模时,除了准备 ...

  5. 中国电子与IBM携手构建健康云平台;微软推3款机器学习工具;【软件网每日新闻播报│第9-26期】

      小编点评 2015年,中国电子和微软成立合资公司, 中国电子占股51%, 国产操作系统错失先机, 内牛满面. 昨天, 中国电子又和IBM凑一起搭了个健康云平台, IBM抢占健康云的坑, 国产云该如 ...

  6. AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介、安装、使用方法之详细攻略

    AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介.安装.使用方法之详细攻略 目录 Ludwig的简介 Ludwig(无需编写代码/易于使用的界面和可视化自 ...

  7. 微软开源实验环境构建工具 SimuLand,模拟攻击者知识技能

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 微软开源一款工具,名为 "SimuLand",用于构建实验环境,供安全团队模拟攻击并验证微软安全产品的检测效果. Si ...

  8. 更多Windows Phone 8新功能详解

    本文核心部分来自PocketNow,评价部分援引自We Love Windows Phone .HK的西門的评论,下面我们就来看一下具体内容. PocketNow发放独家新闻,指他们看过一段由Wind ...

  9. endnotex7怎么导入中文文献_EndNote X7自动导入PDF功能详解 | 科研动力

    在Endnote X7 新功能简介一文中对于EndNote X7的自动导入PDF功能作了一简要介绍,但是有些人对于EndNote自动导入PDF的功能还是有疑问,本文就EndNote如何自动导入PDF功 ...

最新文章

  1. VoIP应用系统大盘点
  2. 【错误记录】Android Studio 编译报错 ( This Gradle plugin requires a newer IDE able to request IDE model leve )
  3. 关于VMware虚拟机的复制注意事项
  4. [批处理]使用Log.io监控日志变化
  5. 20145236《信息安全系统设计基础》第0周学习总结
  6. C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
  7. android SharedPreferences的使用优化
  8. 职场健康:缓解脖子酸
  9. 对软件工程的问题及个别软件的分析
  10. python ^ 与 - +是有运算的先后顺序的
  11. oracle 10g在redhat4.6上的安装
  12. java idle 机制_深入springboot原理——一步步分析springboot启动机制(starter机制)...
  13. python pycharm 无法import win32api、win32con、win32com、win32gui 问题一次解决!方法合集
  14. Network | Socket连接建立步骤
  15. stc12c5a60s AD转换获取土壤的湿度
  16. 数据保护/磁盘列阵RAID保护 IP段103.103.188.xxx
  17. 6月17日吃鸡服务器维护,英雄联盟6月17日更新了什么
  18. c语言建立26个字母的顺序表,线性表的操作建立一个含26个英文字母的数据元素的线性表并输出该表 爱问知识人...
  19. Vue3通过axios来读取本地json文件
  20. python小游戏——猜单词游戏(Hangman)

热门文章

  1. spring配置文件详解【总结】
  2. unity, monoDevelop ide 代码提示不起作用的解决方法
  3. Happy New Year 2016
  4. 【电子基础】模拟电路问答
  5. Google Voice开始发送邀请函
  6. Java并发:分布式应用限流 Redis + Lua 实践
  7. 树莓派装linux ros,树莓派安装Ubuntu16.04 MATE系统以及ROS(kinetic)的安装
  8. 暑期集训2:ACM基础算法 练习题B:CF-1008B
  9. UML与软件建模 第三次作业
  10. POJ 2828 Buy Tickets | 线段树的喵用