【重磅】微软开源自动机器学习工具 - NNI
【重磅】微软开源自动机器学习工具 - NNI
在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到模型最佳效果的过程了。即使是对于有经验的算法工程师和数据科学家,有时候也很难把握其中的规律,只能多次尝试,找到较好的超参组合。而对于初学者来说,要花更多的时间和精力。
自动机器学习这两年成为了热门领域,着力解决超参调试过程的挑战,通过超参选择算法和强大的算力来加速超参搜索的过程。
NNI (Neural Network Intelligence) 是微软开源的自动机器学习工具。与当前的各种自动机器学习服务或工具相比,有非常独特的价值。本文先介绍一下 NNI 的特点,然后在后续的安装、使用章节详细介绍如何上手。

支持私有部署。云服务中的自动机器学习直接提供了自动机器学习的服务,不仅包含了自动机器学习的功能,也包含了算力。如果团队或个人已经有了很强的算力资源,就需要支持私有部署的自动学习工具了。
NNI 支持私有部署。整个部署也很简单,使用 pip 即可完成安装。
分布式调度。NNI 可以在单机上完成试验,也支持以下两种分布式调度方案:
- GPU 远程服务器。通过 SSH 控制多台 GPU 服务器协同完成试验,并能够计划每个试验所需要的 GPU 的数量。
- OpenPAI。通过 OpenPAI,NNI 的试验可以在独立的 Docker 中运行,支持多样的实验环境。在计算资源规划上,不仅能指定 GPU 资源,还能制定 CPU,内存资源。
超参搜索的直接支持。当前,大部分自动机器学习服务与工具都是在某个任务上使用,比如图片分类。这样的好处是,普通用户只要有标记数据,就能训练出一个高质量的平台,不需要任何模型训练方面的知识。但这需要对每个训练任务进行定制,将模型训练的复杂性包装起来。
与大部分现有的自动机器学习服务与工具不同,NNI 需要用户提供训练代码,并指定超参的搜索范围。这样的好处在于,NNI 几乎是通用的工具,任何训练任务都可以使用 NNI 来进行超参搜索。但另一方面,NNI 的通用性,也带来了一定的使用门槛。使用 NNI 需要有基本的模型训练的经验。

兼容已有代码。NNI 使用时,可以通过注释的方法来进行无侵入式的改动。不会影响代码原先的用途。通过注释方式支持 NNI 后,代码还可以单独运行。
易于扩展。NNI 的设计上有很强的可扩展性。通过下面这些扩展性,能将系统与算法相隔离,把系统复杂性都包装起来。
Tuner 接口,可以轻松实现新的超参调试算法。研究人员可以使用 NNI 来试验新的超参搜索方法,比如在强化学习时,在 Tuner 中支持 off-policy 来探索比较好的超参组合,在 Trial 里进行 on-policy 的实际验证。也可以使用 Tuner 和训练代码相配合,支持复杂的超参搜索方法。如,实现 ENAS ,将 Tuner 作为 Control,在多个 Trial 中并行试验。
Accessor 接口,可以加速参数搜索,将表现不好的超参组合提前结束。
NNI 还提供了可扩展的集群接口,可以定制对接的计算集群。方便连接已经部署的计算集群。
可视化界面。在启动一次超参搜索试验后,就可以通过可视化界面来查看试验进展,并帮助超参结果,洞察更多信息。
首页,可以看到当前试验的进展情况,搜索参数和效果最好的一些超参组合。

优化进度页面可以看到按时序排列的精度或损失值(此图为精度)。可以看到,时间越靠后(右侧),精度高的越多。这说明选择的超参探索算法随着时间能找到一些好的超参空间继续探索。

- 通过超参的分布图来直观地看到哪些超参值会明显比较好,或者看出它们之间的关联。通过下面的颜色图就能直观地看到红色(即精度较高的超参组合)线条所表达的丰富信息。如:
- 卷积核大一些会表现较好。
- 全连接层大了不一定太好。也许是所需要的训练时间增加了,训练速度太慢造成的。
- 而学习率小一些(小于0.03),表现基本都不错。
- ReLU 比 tanh 等其它激活函数也好不少。
- ...

通过试验状态页面,能看到每个试验的时间长度以及具体的超参组合。

通过控制页面还可以实时的增加试验的超参组合,或者调整超参的范围。

最后,再贴一次地址:https://github.com/microsoft/nni
使用方法和更多详情,可参考 GitHub 的官网,有问题或 bug 可以直接提 Issue。
【重磅】微软开源自动机器学习工具 - NNI的更多相关文章
- zz【重磅】微软开源自动机器学习工具 - NNI
[重磅]微软开源自动机器学习工具 - NNI 在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到模型最佳效果的过程了.即使是对于有经验的算法工程师和数据科学家,有时候也很难把握其中 ...
- 微软开源自动机器学习工具NNI安装与使用
微软开源自动机器学习工具 – NNI安装与使用 在机器学习建模时,除了准备数据,最耗时耗力的就是尝试各种超参组合,找到最佳模型的过程了.对于初学者来说,常常是无从下手.即使是对于有经验的算法工程师 ...
- NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具
NNI (Neurol Network Intelligence) 是微软开源的自动机器学习工具 https://www.cnblogs.com/ms-uap/p/9719071.html [重磅]微 ...
- 微软推 Azure 机器学习工具:Algorithm Cheat Sheet
微软推 Azure 机器学习工具:Algorithm Cheat Sheet [日期:2015-05-15] 来源:CSDN 作者:Linux [字体:大 中 小] Azure Machine ...
- 微软开源的 AI 工具,让旧照片焕发新生
原文地址:Bringing Old Photos Back to Life 原文作者:Ziyu Wan 译者 & 校正:HelloGitHub-小鱼干 & 鸭鸭 写在前面 在 GitH ...
- 秒杀Sublime Text的微软开源代码编辑工具Visual Studio Code
1. 下载链接: https://code.visualstudio.com/ 2. 秒开一个ASP.NET网站源码 3.编辑CSS颜色支持 4.Git支持 5.常用快捷键 Ctrl+Shift+P ...
- 自动机器学习(AutoML)
自动机器学习(AutoML) 不再需要苦恼于学习各种机器学习的算法 目录: 一.为什么需要自动机器学习 二.超参数优化 Hyper-parameter Optimization 三.元学习 Meta ...
- 蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单
来自:开源最前线(ID:OpenSourceTop) 综合自:AI前线.https://github.com/sql-machine-learning/sqlflow 5月6日,蚂蚁金服副 CTO 胡 ...
- ethr 微软开源的tcp udp http 网络性能测试工具
ethr 是微软开源的tcp udp http 网络性能测试工具包包含的server 以及 client 我们可以远程测试 同时对于https icmp 的支持也在开发中,tcp 协议支持连接.带宽. ...
随机推荐
- jquery 获取jquery对象的标签类型
//jquery 对象 $("#"+控件id)[0] //查看控件类型 $("#"+控件id)[0].type 实例1: < select id=&qu ...
- SSM-MyBatis-08:Mybatis中SqlSession的commit方法为什么会造成事物的提交
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 如题目所示,本小章节讨论为什么SqlSession的commit会造成事物的提交 首先先看SqlSessi ...
- sap 内表
内表的目的在ABAP/4中,主要使用表格.表格是R/3系统中的关键数据结构.长期使用的数据存储在关系数据库表格中.关于如何读取和处理数据库表格的详细信息,参见读取并处理数据库表.除了数据库表格,还可以 ...
- charles模拟手机流量网速
找到proxy--throttle settings 勾选enable throttling,设置手机上网网速 选择throttle preset,有设置好的一些网速,可以随便选 也可以设置2G网络, ...
- Python hashlib 无法打印
# !/user/bin/python # -*- coding: utf-8 -*- import hashlib # 可提供MD5算法 , 防止内页被篡改 (若内页未被篡改, MD5的值是不变的) ...
- Linux.安装phantomjs
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, ...
- PACKAGE-INFO.JAVA 作用及用法详解
转自http://strong-life-126-com.iteye.com/blog/806246 及http://blog.sina.com.cn/s/blog_93dc666c0101gzlr. ...
- Mac下安装git
gti下载地址 https://git-scm.com/downloads 一步一步来就完事了.安装完以后执行 git version 查看是否更新到了该版本
- MySQL 大表优化方案
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...
- bzoj 1189 紧急疏散 网络流
二分答案,网络流判断 将每个门拆点,每个人连向每个门的dis~当前解 然后跑最大流,如果等于人数,即为可行解 #include<cstdio> #include<iostream&g ...