README_zh_CN.md 11.1 KB
Newer Older
Chi Song's avatar
Chi Song committed
1
<p align="center">
2
<img src="docs/img/nni_logo.png" width="300"/>
Chi Song's avatar
Chi Song committed
3
4
5
6
</p>

* * *

Chi Song's avatar
Chi Song committed
7
[![MIT 许可证](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE) [![生成状态](https://msrasrg.visualstudio.com/NNIOpenSource/_apis/build/status/Microsoft.nni)](https://msrasrg.visualstudio.com/NNIOpenSource/_build/latest?definitionId=6) [![问题](https://img.shields.io/github/issues-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen) [![Bug](https://img.shields.io/github/issues/Microsoft/nni/bug.svg)](https://github.com/Microsoft/nni/issues?q=is%3Aissue+is%3Aopen+label%3Abug) [![拉取请求](https://img.shields.io/github/issues-pr-raw/Microsoft/nni.svg)](https://github.com/Microsoft/nni/pulls?q=is%3Apr+is%3Aopen) [![版本](https://img.shields.io/github/release/Microsoft/nni.svg)](https://github.com/Microsoft/nni/releases) [![进入 https://gitter.im/Microsoft/nni 聊天室提问](https://badges.gitter.im/Microsoft/nni.svg)](https://gitter.im/Microsoft/nni?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![文档状态](https://readthedocs.org/projects/nni/badge/?version=latest)](https://nni.readthedocs.io/en/latest/?badge=latest)
Chi Song's avatar
Chi Song committed
8

9
[English](README.md)
Chi Song's avatar
Chi Song committed
10
11
12

NNI (Neural Network Intelligence) 是自动机器学习(AutoML)的工具包。 它通过多种调优的算法来搜索最好的神经网络结构和(或)超参,并支持单机、本地多机、云等不同的运行环境。

Chi Song's avatar
Chi Song committed
13
### **NNI [v0.7](https://github.com/Microsoft/nni/releases) 已发布!**
Chi Song's avatar
Chi Song committed
14
15

<p align="center">
16
  <a href="#nni-v05-has-been-released"><img src="docs/img/overview.svg" /></a>
Chi Song's avatar
Chi Song committed
17
18
19
20
21
22
23
</p>

<table>
  <tbody>
    <tr align="center" valign="bottom">
      <td>
        <b>支持的框架</b>
24
        <img src="docs/img/bar.png"/>
Chi Song's avatar
Chi Song committed
25
26
27
      </td>
      <td>
        <b>调优算法</b>
28
        <img src="docs/img/bar.png"/>
Chi Song's avatar
Chi Song committed
29
30
31
      </td>
      <td>
        <b>训练服务</b>
32
        <img src="docs/img/bar.png"/>
Chi Song's avatar
Chi Song committed
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
      </td>
    </tr>
    <tr/>
    <tr valign="top">
      <td>
        <ul>
          <li>PyTorch</li>
          <li>TensorFlow</li>
          <li>Keras</li>
          <li>MXNet</li>
          <li>Caffe2</li>
          <li>CNTK (Python 语言)</li>
          <li>Chainer</li>
          <li>Theano</li>
        </ul>
      </td>
      <td>
50
        <a href="docs/zh_CN/Builtin_Tuner.md">Tuner(调参器)</a>
Chi Song's avatar
Chi Song committed
51
        <ul>
52
53
54
55
56
57
58
59
60
61
62
          <li><a href="docs/zh_CN/Builtin_Tuner.md#TPE">TPE</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Random">Random Search(随机搜索)</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Anneal">Anneal(退火算法)</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Evolution">Naive Evolution(进化算法)</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#SMAC">SMAC</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Batch">Batch(批处理)</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Grid">Grid Search(遍历搜索)</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#Hyperband">Hyperband</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#NetworkMorphism">Network Morphism</a></li>
          <li><a href="examples/tuners/enas_nni/README_zh_CN.md">ENAS</a></li>
          <li><a href="docs/zh_CN/Builtin_Tuner.md#NetworkMorphism#MetisTuner">Metis Tuner</a></li>
Chi Song's avatar
Chi Song committed
63
64
          <li><a href="docs/zh_CN/Builtin_Tuner.md#BOHB">BOHB</a></li>
        </ul>
65
          <a href="docs/zh_CN/Builtin_Assessors.md#assessor">Assessor(评估器)</a> 
Chi Song's avatar
Chi Song committed
66
        <ul>
67
68
          <li><a href="docs/zh_CN/Builtin_Assessors.md#Medianstop">Median Stop</a></li>
          <li><a href="docs/zh_CN/Builtin_Assessors.md#Curvefitting">Curve Fitting</a></li>
Chi Song's avatar
Chi Song committed
69
70
71
72
        </ul>
      </td>
      <td>
      <ul>
Chi Song's avatar
Chi Song committed
73
        <li><a href="docs/zh_CN/LocalMode.md">本地计算机</a></li>
74
75
76
77
        <li><a href="docs/zh_CN/RemoteMachineMode.md">远程计算机</a></li>
        <li><a href="docs/zh_CN/PAIMode.md">OpenPAI</a></li>
        <li><a href="docs/zh_CN/KubeflowMode.md">Kubeflow</a></li>
        <li><a href="docs/zh_CN/FrameworkControllerMode.md">基于 Kubernetes(AKS 等等)的 FrameworkController</a></li>
Chi Song's avatar
Chi Song committed
78
79
80
81
82
83
84
85
      </ul>
      </td>
    </tr>
  </tbody>
</table>

## **使用场景**

86
* 在本机尝试使用不同的自动机器学习(AutoML)算法来训练模型。
Chi Song's avatar
Chi Song committed
87
88
* 在分布式环境中加速自动机器学习(如:远程 GPU 工作站和云服务器)。
* 定制自动机器学习算法,或比较不同的自动机器学习算法。
89
* 在机器学习平台中支持自动机器学习。
Chi Song's avatar
Chi Song committed
90
91
92
93
94
95
96

## 相关项目

以开发和先进技术为目标,[Microsoft Research (MSR)](https://www.microsoft.com/en-us/research/group/systems-research-group-asia/) 发布了一些开源项目。

* [OpenPAI](https://github.com/Microsoft/pai):作为开源平台,提供了完整的 AI 模型训练和资源管理能力,能轻松扩展,并支持各种规模的私有部署、云和混合环境。
* [FrameworkController](https://github.com/Microsoft/frameworkcontroller):开源的通用 Kubernetes Pod 控制器,通过单个控制器来编排 Kubernetes 上所有类型的应用。
97
* [MMdnn](https://github.com/Microsoft/MMdnn):一个完整、跨框架的解决方案,能够转换、可视化、诊断深度神经网络模型。 MMdnn 中的 "MM" 表示model management(模型管理),而 "dnn" 是 deep neural network(深度神经网络)的缩写。 我们鼓励研究人员和学生利用这些项目来加速 AI 开发和研究。
Chi Song's avatar
Chi Song committed
98
99
100

## **安装和验证**

Chi Song's avatar
Chi Song committed
101
102
103
104
105
106
在 Windows 本机模式下,并且是第一次使用 PowerShell 来运行脚本,需要**使用管理员权限**运行一次下列命令:

```bash
    Set-ExecutionPolicy -ExecutionPolicy Unrestricted
```

Chi Song's avatar
Chi Song committed
107
108
**通过 pip 命令安装**

Chi Song's avatar
Chi Song committed
109
110
111
* 当前支持 Linux,MacOS 和 Windows(本机模式),在 Ubuntu 16.04 或更高版本,MacOS 10.14.1 以及 Windows 10.1809 上进行了测试。 在 `python >= 3.5` 的环境中,只需要运行 `pip install` 即可完成安装。

Linux 和 MacOS
Chi Song's avatar
Chi Song committed
112
113

```bash
Chi Song's avatar
Chi Song committed
114
115
116
117
118
119
120
python3 -m pip install --upgrade nni
```

Windows

```bash
python -m pip install --upgrade nni
Chi Song's avatar
Chi Song committed
121
122
123
124
125
```

注意:

* 如果需要将 NNI 安装到自己的 home 目录中,可使用 `--user`,这样也不需要任何特殊权限。
Chi Song's avatar
Chi Song committed
126
* 当前 NNI 在 Windows 上仅支持本机模式。 强烈推荐使用 Anaconda 在 Windows 上安装 NNI。
127
* 如果遇到如`Segmentation fault` 这样的任何错误请参考[常见问题](docs/zh_CN/FAQ.md)
Chi Song's avatar
Chi Song committed
128
129
130

**通过源代码安装**

Chi Song's avatar
Chi Song committed
131
132
133
134
* 当前支持 Linux(Ubuntu 16.04 或更高版本),MacOS(10.14.1)以及 Windows 10(1809 版)下的本机模式。 

Linux 和 MacOS

Chi Song's avatar
Chi Song committed
135
136
137
*`python >= 3.5` 的环境中运行命令: `git``wget`,确保安装了这两个组件。

```bash
Chi Song's avatar
Chi Song committed
138
139
140
141
142
143
144
145
146
147
148
149
150
    git clone -b v0.7 https://github.com/Microsoft/nni.git
    cd nni
    source install.sh
```

Windows

*`python >=3.5` 的环境中运行命令: `git``PowerShell`,确保安装了这两个组件。

```bash
  git clone -b v0.7 https://github.com/Microsoft/nni.git
  cd nni
  powershell ./install.ps1
Chi Song's avatar
Chi Song committed
151
152
```

153
参考[安装 NNI](docs/zh_CN/Installation.md) 了解系统需求。
Chi Song's avatar
Chi Song committed
154

Chi Song's avatar
Chi Song committed
155
156
参考 [NNI Windows 本机模式](docs/zh_CN/WindowsLocalMode.md),了解更多信息。

Chi Song's avatar
Chi Song committed
157
158
159
160
**验证安装**

以下示例 Experiment 依赖于 TensorFlow 。 在运行前确保安装了 **TensorFlow**

Chi Song's avatar
Chi Song committed
161
* 通过克隆源代码下载示例。
Chi Song's avatar
Chi Song committed
162
163

```bash
Chi Song's avatar
Chi Song committed
164
    git clone -b v0.7 https://github.com/Microsoft/nni.git
Chi Song's avatar
Chi Song committed
165
166
```

Chi Song's avatar
Chi Song committed
167
168
169
Linux 和 macOS

* 运行 MNIST 示例。
Chi Song's avatar
Chi Song committed
170
171
172
173
174

```bash
    nnictl create --config nni/examples/trials/mnist/config.yml
```

Chi Song's avatar
Chi Song committed
175
176
177
178
179
180
181
182
Windows

* 运行 MNIST 示例。

```bash
    nnictl create --config nni/examples/trials/mnist/config_windows.yml
```

Chi Song's avatar
Chi Song committed
183
184
* 在命令行中等待输出 `INFO: Successfully started experiment!`。 此消息表明 Experiment 已成功启动。 通过命令行输出的 `Web UI url` 来访问 Experiment 的界面。

Chi Song's avatar
Chi Song committed
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
```text
INFO: Starting restful server...
INFO: Successfully started Restful server!
INFO: Setting local config...
INFO: Successfully set local config!
INFO: Starting experiment...
INFO: Successfully started experiment!
-----------------------------------------------------------------------
The experiment id is egchD4qy
The Web UI urls are: http://223.255.255.1:8080   http://127.0.0.1:8080
-----------------------------------------------------------------------

You can use these commands to get more information about the experiment
-----------------------------------------------------------------------
         commands                       description

1. nnictl experiment show        show the information of experiments
2. nnictl trial ls               list all of trial jobs
3. nnictl top                    monitor the status of running experiments
4. nnictl log stderr             show stderr log content
5. nnictl log stdout             show stdout log content
6. nnictl stop                   stop an experiment
7. nnictl trial kill             kill a trial job by id
8. nnictl --help                 get help information about nnictl
-----------------------------------------------------------------------
```

* 在浏览器中打开 `Web UI url`,可看到下图的 Experiment 详细信息,以及所有的 Trial 任务。 查看[这里](docs/zh_CN/WebUI.md)的更多页面。
Chi Song's avatar
Chi Song committed
213
214
215
216
217
218
219
220

<table style="border: none">
    <th><img src="./docs/img/webui_overview_page.png" alt="drawing" width="395"/></th>
    <th><img src="./docs/img/webui_trialdetail_page.png" alt="drawing" width="410"/></th>
</table>

## **文档**

221
222
* [NNI 概述](docs/zh_CN/Overview.md)
* [快速入门](docs/zh_CN/QuickStart.md)
Chi Song's avatar
Chi Song committed
223
224
225

## **入门**

226
227
228
229
* [安装 NNI](docs/zh_CN/Installation.md)
* [使用命令行工具 nnictl](docs/zh_CN/NNICTLDOC.md)
* [使用 NNIBoard](docs/zh_CN/WebUI.md)
* [如何定义搜索空间](docs/zh_CN/SearchSpaceSpec.md)
Chi Song's avatar
Chi Song committed
230
* [如何编写 Trial 代码](docs/zh_CN/Trials.md)
231
232
233
* [如何选择 Tuner、搜索算法](docs/zh_CN/Builtin_Tuner.md)
* [配置 Experiment](docs/zh_CN/ExperimentConfig.md)
* [如何使用 Annotation](docs/zh_CN/Trials.md#nni-python-annotation)
Chi Song's avatar
Chi Song committed
234
235
236

## **教程**

Chi Song's avatar
Chi Song committed
237
* [在本机运行 Experiment (支持多 GPU 卡)](docs/zh_CN/LocalMode.md)
238
239
240
241
242
243
244
245
* [在多机上运行 Experiment](docs/zh_CN/RemoteMachineMode.md)
* [在 OpenPAI 上运行 Experiment](docs/zh_CN/PAIMode.md)
* [在 Kubeflow 上运行 Experiment。](docs/zh_CN/KubeflowMode.md)
* [尝试不同的 Tuner](docs/zh_CN/tuners.rst)
* [尝试不同的 Assessor](docs/zh_CN/assessors.rst)
* [实现自定义 Tuner](docs/zh_CN/Customize_Tuner.md)
* [实现自定义 Assessor](docs/zh_CN/Customize_Assessor.md)
* [使用进化算法为阅读理解任务找到好模型](examples/trials/ga_squad/README_zh_CN.md)
Chi Song's avatar
Chi Song committed
246
247
248
249
250
251
252

## **贡献**

欢迎贡献代码或提交建议,可在 [GitHub issues](https://github.com/Microsoft/nni/issues) 跟踪需求和 Bug。

推荐新贡献者从标有 **good first issue** 的简单需求开始。

253
如要安装 NNI 开发环境,参考: [配置 NNI 开发环境](docs/zh_CN/SetupNNIDeveloperEnvironment.md)
Chi Song's avatar
Chi Song committed
254

255
在写代码之前,请查看并熟悉 NNI 代码贡献指南:[贡献](docs/zh_CN/CONTRIBUTING.md)
Chi Song's avatar
Chi Song committed
256

257
我们正在编写[如何调试](docs/zh_CN/HowToDebug.md) 的页面,欢迎提交建议和问题。
Chi Song's avatar
Chi Song committed
258
259
260

## **许可协议**

261
代码库遵循 [MIT 许可协议](LICENSE)