微软开源的自动机器学习工具上新了:NNI概览及新功能详解
作者 | 宋驰
来源 | 微软研究院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概览及新功能详解相关推荐
- 台式计算机上的fn键是哪个,笔记本上fn是哪个键fn键功能详解【方法详解】
最近有朋友问了小编fn是哪个键?其实这个很简单的,并且fn键还牵扯到许多的便捷功能,下面小编就来教教大家fn是哪个键,又应该如何使用fn键. 一.哪个是fn键 fn键很好找它就在笔记本键盘左下角ctr ...
- python自动填写小程序表单_python小程序实现刷票功能详解
刷票一般要突破以下限制: 1.验证码识别 2.同一ip不可连续投票 解决办法 1.用tesseract工具,链接在此 https://code.google.com/p/tesseract-ocr/ ...
- 微软开源自动机器学习工具 – NNI安装与使用
微软开源自动机器学习工具 – NNI安装与使用 NNI的众多特点 开启你的第一次NNI之旅 · 安装 · 三步准备实验 (1) 准备搜索空间 (2) 准备实验代码 (3)定义实验配置 · 一行命令开始 ...
- 微软nni_微软开源自动机器学习工具NNI安装与使用
微软开源自动机器学习工具NNI安装与使用 发布时间:2018-12-29 11:51, 浏览次数:951 , 标签: NNI 微软开源自动机器学习工具 – NNI安装与使用 在机器学习建模时,除了准备 ...
- 中国电子与IBM携手构建健康云平台;微软推3款机器学习工具;【软件网每日新闻播报│第9-26期】
小编点评 2015年,中国电子和微软成立合资公司, 中国电子占股51%, 国产操作系统错失先机, 内牛满面. 昨天, 中国电子又和IBM凑一起搭了个健康云平台, IBM抢占健康云的坑, 国产云该如 ...
- AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介、安装、使用方法之详细攻略
AI之AutoML:Ludwig(无需编写代码/易于使用的界面和可视化自动机器学习工具)的简介.安装.使用方法之详细攻略 目录 Ludwig的简介 Ludwig(无需编写代码/易于使用的界面和可视化自 ...
- 微软开源实验环境构建工具 SimuLand,模拟攻击者知识技能
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 微软开源一款工具,名为 "SimuLand",用于构建实验环境,供安全团队模拟攻击并验证微软安全产品的检测效果. Si ...
- 更多Windows Phone 8新功能详解
本文核心部分来自PocketNow,评价部分援引自We Love Windows Phone .HK的西門的评论,下面我们就来看一下具体内容. PocketNow发放独家新闻,指他们看过一段由Wind ...
- endnotex7怎么导入中文文献_EndNote X7自动导入PDF功能详解 | 科研动力
在Endnote X7 新功能简介一文中对于EndNote X7的自动导入PDF功能作了一简要介绍,但是有些人对于EndNote自动导入PDF的功能还是有疑问,本文就EndNote如何自动导入PDF功 ...
最新文章
- VoIP应用系统大盘点
- 【错误记录】Android Studio 编译报错 ( This Gradle plugin requires a newer IDE able to request IDE model leve )
- 关于VMware虚拟机的复制注意事项
- [批处理]使用Log.io监控日志变化
- 20145236《信息安全系统设计基础》第0周学习总结
- C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
- android SharedPreferences的使用优化
- 职场健康:缓解脖子酸
- 对软件工程的问题及个别软件的分析
- python ^ 与 - +是有运算的先后顺序的
- oracle 10g在redhat4.6上的安装
- java idle 机制_深入springboot原理——一步步分析springboot启动机制(starter机制)...
- python pycharm 无法import win32api、win32con、win32com、win32gui 问题一次解决!方法合集
- Network | Socket连接建立步骤
- stc12c5a60s AD转换获取土壤的湿度
- 数据保护/磁盘列阵RAID保护 IP段103.103.188.xxx
- 6月17日吃鸡服务器维护,英雄联盟6月17日更新了什么
- c语言建立26个字母的顺序表,线性表的操作建立一个含26个英文字母的数据元素的线性表并输出该表 爱问知识人...
- Vue3通过axios来读取本地json文件
- python小游戏——猜单词游戏(Hangman)
热门文章
- spring配置文件详解【总结】
- unity, monoDevelop ide 代码提示不起作用的解决方法
- Happy New Year 2016
- 【电子基础】模拟电路问答
- Google Voice开始发送邀请函
- Java并发:分布式应用限流 Redis + Lua 实践
- 树莓派装linux ros,树莓派安装Ubuntu16.04 MATE系统以及ROS(kinetic)的安装
- 暑期集训2:ACM基础算法 练习题B:CF-1008B
- UML与软件建模 第三次作业
- POJ 2828 Buy Tickets | 线段树的喵用