Release.md 13.7 KB
Newer Older
Chi Song's avatar
Chi Song committed
1
2
# 更改日志

Chi Song's avatar
Chi Song committed
3
## 发布 0.8 - 6/4/2019
Chi Song's avatar
Chi Song committed
4

Chi Song's avatar
Chi Song committed
5
### 主要功能
Chi Song's avatar
Chi Song committed
6
7

* 在 Windows 上支持 NNI 的 OpenPAI 和远程模式 
Chi Song's avatar
Chi Song committed
8
9
  * NNI 可在 Windows 上使用 OpenPAI 模式
  * NNI 可在 Windows 上使用 OpenPAI 模式
Chi Song's avatar
Chi Song committed
10
* GPU 的高级功能 
Chi Song's avatar
Chi Song committed
11
12
  * 在本机或远程模式上,可在同一个 GPU 上运行多个 Trial。
  * 在已经运行非 NNI 任务的 GPU 上也能运行 Trial
Chi Song's avatar
Chi Song committed
13
* 支持 Kubeflow v1beta2 操作符 
Chi Song's avatar
Chi Song committed
14
  * 支持 Kubeflow TFJob/PyTorchJob v1beta2
Chi Song's avatar
Chi Song committed
15
* [通过 NAS 编程接口](./GeneralNasInterfaces.md) 
Chi Song's avatar
Chi Song committed
16
17
18
19
20
  * 实现了 NAS 的编程接口,可通过 NNI Annotation 很容易的表达神经网络架构搜索空间
  * 提供新命令 `nnictl trial codegen` 来调试 NAS 代码生成部分
  * 提供 NAS 编程接口教程,NAS 在 MNIST 上的示例,用于 NAS 的可定制的随机 Tuner
* 支持在恢复 Experiment 时,同时恢复 Tuner 和 Advisor 的状态
* 在恢复 Experiment 时,Tuner 和 Advisor 会导入已完成的 Trial 的数据。
Chi Song's avatar
Chi Song committed
21
* Web 界面 
Chi Song's avatar
Chi Song committed
22
23
24
  * 改进拷贝 Trial 参数的设计
  * 在 hyper-parameter 图中支持 'randint' 类型
  * 使用 ComponentUpdate 来避免不必要的刷新
Chi Song's avatar
Chi Song committed
25

Chi Song's avatar
Chi Song committed
26
### Bug 修复和其它更新
Chi Song's avatar
Chi Song committed
27
28
29
30
31
32
33
34
35
36
37

* 修复 `nnictl update` 不一致的命令行风格
* SMAC Tuner 支持导入数据
* 支持 Experiment 状态从 ERROR 回到 RUNNING
* 修复表格的 Bug
* 优化嵌套搜索空间
* 优化 'randint' 类型,并支持下限
* [比较不同超参搜索调优算法](./CommunitySharings/HpoComparision.md)
* [NAS 算法的对比](./CommunitySharings/NasComparision.md)
* [Recommenders 上的实践](./CommunitySharings/NniPracticeSharing/RecommendersSvd.md)

Chi Song's avatar
Chi Song committed
38
39
40
41
42
## 发布 0.7 - 4/29/2018

### 主要功能

* [支持在 Windows 上使用 NNI](./WindowsLocalMode.md) 
Chi Song's avatar
Chi Song committed
43
  * NNI 可在 Windows 上使用本机模式
Chi Song's avatar
Chi Song committed
44
* [支持新的 Advisor: BOHB](./BohbAdvisor.md) 
Chi Song's avatar
Chi Song committed
45
  * 支持新的 BOHB Advisor,这是一个健壮而有效的超参调优算法,囊括了贝叶斯优化和 Hyperband 的优点
Chi Song's avatar
Chi Song committed
46
* [支持通过 nnictl 来导入导出 Experiment 数据](./Nnictl.md#experiment) 
Chi Song's avatar
Chi Song committed
47
48
  * 在 Experiment 执行完后,可生成分析结果报告
  * 支持将先前的调优数据导入到 Tuner 和 Advisor 中
Chi Song's avatar
Chi Song committed
49
* [可为 NNI Trial 任务指定 GPU](./ExperimentConfig.md#localConfig) 
Chi Song's avatar
Chi Song committed
50
  * 通过 gpuIndices 配置来为 Trial 任务指定GPU。如果 Experiment 配置文件中有 gpuIndices,则只有指定的 GPU 会被用于 NNI 的 Trial 任务。
Chi Song's avatar
Chi Song committed
51
* 改进 Web 界面 
Chi Song's avatar
Chi Song committed
52
53
54
55
  * 在 Web 界面上使用十进制格式的指标
  * 添加多阶段训练相关的提示
  * 可将超参复制为 Python dict 格式
  * 可将提前终止的 Trial 数据传入 Tuner。
Chi Song's avatar
Chi Song committed
56
* 为 nnictl 提供更友好的错误消息 
Chi Song's avatar
Chi Song committed
57
  * 为 YAML 文件格式错误提供更有意义的错误信息
Chi Song's avatar
Chi Song committed
58
59
60
61
62
63
64
65
66
67
68

### Bug 修复

* 运行 nnictl stop 的异步 Dispatcher 模式时,无法杀掉所有的 Python 线程
* nnictl --version 不能在 make dev-install 下使用
* OpenPAI 平台下所有的 Trial 任务状态都是 'WAITING'

## 发布 0.6 - 4/2/2019

### 主要功能

Chi Song's avatar
Chi Song committed
69
70
* [版本检查](https://github.com/Microsoft/nni/blob/master/docs/zh_CN/PaiMode.md#version-check) 
  * 检查 nniManager 和 trialKeeper 的版本是否一致
Chi Song's avatar
Chi Song committed
71
* [提前终止的任务也可返回最终指标](https://github.com/Microsoft/nni/issues/776) 
Chi Song's avatar
Chi Song committed
72
  * 如果 includeIntermediateResults 为 true,最后一个 Assessor 的中间结果会被发送给 Tuner 作为最终结果。 includeIntermediateResults 的默认值为 false。
Chi Song's avatar
Chi Song committed
73
* [分离 Tuner/Assessor](https://github.com/Microsoft/nni/issues/841) 
Chi Song's avatar
Chi Song committed
74
  * 增加两个管道来分离 Tuner 和 Assessor 的消息
Chi Song's avatar
Chi Song committed
75
76
77
78
79
80
81
82
83
84
85
86
* 使日志集合功能可配置
* 为所有 Trial 增加中间结果的视图

### Bug 修复

* [为 OpenPAI 增加 shmMB 配置](https://github.com/Microsoft/nni/issues/842)
* 修复在指标为 dict 时,无法显示任何结果的 Bug。
* 修复 hyperband 中浮点类型的计算问题
* 修复 SMAC Tuner 中搜索空间转换的错误
* 修复 Web 界面中解析 Experiment 的错误格式
* 修复 Metis Tuner 冷启动时的错误

Chi Song's avatar
Chi Song committed
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
## 发布 0.5.2 - 3/4/2019

### 改进

* 提升 Curve fitting Assessor 的性能。

### 文档

* 发布中文文档网站:https://nni.readthedocs.io/zh/latest/
* 调试和维护:https://nni.readthedocs.io/en/latest/HowToDebug.html
* Tuner、Assessor 参考:https://nni.readthedocs.io/en/latest/sdk_reference.html#tuner

### Bug 修复和其它更新

* 修复了在某些极端条件下,不能正确存储任务的取消状态。
* 修复在使用 SMAC Tuner 时,解析搜索空间的错误。
* 修复 CIFAR-10 样例中的 broken pipe 问题。
* 为本地训练服务和 NNI 管理器添加单元测试。
* 为远程服务器、OpenPAI 和 Kubeflow 训练平台在 Azure 中增加集成测试。
* 在 OpenPAI 客户端中支持 Pylon 路径。

Chi Song's avatar
Chi Song committed
108
109
110
111
## 发布 0.5.1 - 1/31/2018

### 改进

Chi Song's avatar
Chi Song committed
112
* [日志目录](https://github.com/Microsoft/nni/blob/v0.5.1/docs/zh_CN/ExperimentConfig.md)可配置。
Chi Song's avatar
Chi Song committed
113
* 支持[不同级别的日志](https://github.com/Microsoft/nni/blob/v0.5.1/docs/zh_CN/ExperimentConfig.md),使其更易于调试。
Chi Song's avatar
Chi Song committed
114
115
116

### 文档

Chi Song's avatar
Chi Song committed
117
* 重新组织文档,新的主页位置:https://nni.readthedocs.io/zh/latest/
Chi Song's avatar
Chi Song committed
118
119
120
121

### Bug 修复和其它更新

* 修复了 Python 虚拟环境中安装的 Bug,并重构了安装逻辑。
Chi Song's avatar
Chi Song committed
122
* 修复了在最新的 OpenPAI 下存取 HDFS 失败的问题。
Chi Song's avatar
Chi Song committed
123
124
* 修复了有时刷新 stdout 会造成 Experiment 崩溃的问题。

Chi Song's avatar
Chi Song committed
125
126
127
128
129
130
## 发布 0.5.0 - 01/14/2019

### 主要功能

#### 支持新的 Tuner 和 Assessor

Chi Song's avatar
Chi Song committed
131
* 支持新的 [Metis Tuner](MetisTuner.md)**在线**超参调优的场景下,Metis 算法已经被证明非常有效。
Chi Song's avatar
Chi Song committed
132
* 支持 [ENAS customized tuner](https://github.com/countif/enas_nni)。由 GitHub 社区用户所贡献。它是神经网络的搜索算法,能够通过强化学习来学习神经网络架构,比 NAS 的性能更好。
Chi Song's avatar
Chi Song committed
133
134
* 支持 [Curve fitting (曲线拟合)Assessor](CurvefittingAssessor.md),通过曲线拟合的策略来实现提前终止 Trial。
* 进一步支持 [Weight Sharing(权重共享)](./AdvancedNas.md):为 NAS Tuner 通过 NFS 来提供权重共享。
Chi Song's avatar
Chi Song committed
135
136
137

#### 改进训练平台

Chi Song's avatar
Chi Song committed
138
* [FrameworkController 训练平台](./FrameworkControllerMode.md): 支持使用在 Kubernetes 上使用 FrameworkController。 
Chi Song's avatar
Chi Song committed
139
140
141
  * FrameworkController 是 Kubernetes 上非常通用的控制器(Controller),能用来运行基于各种机器学习框架的分布式作业,如 TensorFlow,Pytorch, MXNet 等。
  * NNI 为作业定义了统一而简单的规范。
  * 如何使用 FrameworkController 的 MNIST 样例。
Chi Song's avatar
Chi Song committed
142
143
144
145

#### 改进用户体验

* 为 OpenPAI, Kubeflow 和 FrameworkController 模式提供更好的日志支持。 
Chi Song's avatar
Chi Song committed
146
147
  * 改进后的日志架构能将尝试的 stdout/stderr 通过 HTTP POST 方式发送给 NNI 管理器。 NNI 管理器将 Trial 的 stdout/stderr 消息存储在本地日志文件中。
  * 在 WEB 界面上显示 Trial 日志的链接。
Chi Song's avatar
Chi Song committed
148
149
150
151
152
153
154
155
* 支持将最终结果显示为键值对。

## 发布 0.4.1 - 12/14/2018

### 主要功能

#### 支持新的 Tuner

Chi Song's avatar
Chi Song committed
156
* 支持新的 [network morphism](NetworkmorphismTuner.md) Tuner。
Chi Song's avatar
Chi Song committed
157
158
159

#### 改进训练平台

Chi Song's avatar
Chi Song committed
160
161
*[Kubeflow 训练平台](KubeflowMode.md)的依赖从 kubectl CLI 迁移到 [Kubernetes API](https://kubernetes.io/docs/concepts/overview/kubernetes-api/) 客户端。
* Kubeflow 训练平台支持 [Pytorch-operator](https://github.com/kubeflow/pytorch-operator)
Chi Song's avatar
Chi Song committed
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
* 改进将本地代码文件上传到 OpenPAI HDFS 的性能。
* 修复 OpenPAI 在 WEB 界面的 Bug:当 OpenPAI 认证过期后,Web 界面无法更新 Trial 作业的状态。

#### 改进 NNICTL

* 在 nnictl 和 WEB 界面中显示 NNI 的版本信息。 可使用 **nnictl -v** 来显示安装的 NNI 版本。

#### 改进 WEB 界面

* 在 Experiment 运行中可修改并发数量
* 增加指向 NNI Github 的反馈链接,可直接创建问题
* 可根据指标,定制选择(最大或最小)的前 10 个 Trial。
* 为 dispatcher 和 nnimanager 提供下载日志的功能
* 为指标数值图提供自动缩放的数轴
* 改进 Annotation,支持在搜索空间中显示实际的选项

Chi Song's avatar
Chi Song committed
178
### 新示例
Chi Song's avatar
Chi Song committed
179
180
181
182
183
184
185
186
187

* [FashionMnist](https://github.com/Microsoft/nni/tree/master/examples/trials/network_morphism),使用 network morphism Tuner
* 使用 PyTorch 的[分布式 MNIST 样例](https://github.com/Microsoft/nni/tree/master/examples/trials/mnist-distributed-pytorch)

## 发布 0.4 - 12/6/2018

### 主要功能

* [Kubeflow 训练服务](./KubeflowMode.md) 
Chi Song's avatar
Chi Song committed
188
189
190
  * 支持 tf-operator
  * 使用 Kubeflow 的[分布式 Trial 样例](https://github.com/Microsoft/nni/tree/master/examples/trials/mnist-distributed/dist_mnist.py)
* [网格搜索 Tuner](GridsearchTuner.md)
Chi Song's avatar
Chi Song committed
191
* [Hyperband Tuner](HyperbandAdvisor.md)
Chi Song's avatar
Chi Song committed
192
* 支持在 MAC 上运行 NNI Experiment
Chi Song's avatar
Chi Song committed
193
* Web 界面 
Chi Song's avatar
Chi Song committed
194
195
196
197
198
199
200
  * 支持 hyperband Tuner
  * 移除 tensorboard 按钮
  * 显示 Experiment 的错误消息
  * 显示搜索空间和 Trial 配置的行号
  * 支持通过指定的 Trial id 来搜索
  * 显示 Trial 的 hdfsLogPath
  * 下载 Experiment 参数
Chi Song's avatar
Chi Song committed
201
202
203
204

### 其它

* 异步调度
Chi Song's avatar
Chi Song committed
205
206
* 更新 Docker 文件,增加 pytorch 库
* 重构 'nnictl stop' 过程,发送 SIGTERM 给 NNI 管理器进程,而不是调用停止 Restful API.
Chi Song's avatar
Chi Song committed
207
* 修复 OpenPAI 训练服务的 Bug 
Chi Song's avatar
Chi Song committed
208
209
210
211
  * 在 NNI 管理器中为 OpenPAI 集群配置文件支持 IP 配置(nniManagerIp),来修复用户计算机没有 eth0 设备的问题。
  * codeDir 中的文件数量上限改为1000,避免用户无意中填写了 root 目录。
  * 移除 OpenPAI 作业的 stdout 日志中无用的 ‘metrics is empty’。 在新指标被记录时,仅输出有用的消息,来减少用户检查 OpenPAI Trial 输出时的困惑。
  * 在 Trial keeper 的开始增加时间戳。
Chi Song's avatar
Chi Song committed
212
213
214
215
216
217

## 发布 0.3.0 - 11/2/2018

### NNICTL 的新功能和更新

* 支持同时运行多个 Experiment。
Chi Song's avatar
Chi Song committed
218
219
220
221
222
223
  
  在 v0.3 以前,NNI 仅支持一次运行一个 Experiment。 此版本开始,用户可以同时运行多个 Experiment。 每个 Experiment 都需要一个唯一的端口,第一个 Experiment 会像以前版本一样使用默认端口。 需要为其它 Experiment 指定唯一端口:
  
  ```bash
  nnictl create --port 8081 --config <config file path>
  ```
Chi Song's avatar
Chi Song committed
224

Chi Song's avatar
Chi Song committed
225
* 支持更新最大 Trial 的数量。 使用 `nnictl update --help` 了解详情。 或参考 [NNICTL](Nnictl.md) 查看完整帮助。
Chi Song's avatar
Chi Song committed
226
227
228
229
230
231

### API 的新功能和更新

* <span style="color:red"><strong>不兼容的改动</strong></span>:nn.get_parameters() 改为 nni.get_next_parameter。 所有以前版本的样例将无法在 v0.3 上运行,需要重新克隆 NNI 代码库获取新样例。 如果在自己的代码中使用了 NNI,也需要相应的更新。

* 新 API **nni.get_sequence_id()**。 每个 Trial 任务都会被分配一个唯一的序列数字,可通过 nni.get_sequence_id() API 来获取。
Chi Song's avatar
Chi Song committed
232
233
234
235
  
  ```bash
  git clone -b v0.3 https://github.com/Microsoft/nni.git
  ```
Chi Song's avatar
Chi Song committed
236
237

* **nni.report_final_result(result)** API 对结果参数支持更多的数据类型。
Chi Song's avatar
Chi Song committed
238
239
240
241
242
243
  
  可用类型:
  
  * int
  * float
  * 包含有 'default' 键值的 dict,'default' 的值必须为 int 或 float。 dict 可以包含任何其它键值对。
Chi Song's avatar
Chi Song committed
244

Chi Song's avatar
Chi Song committed
245
### 支持新的 Tuner
Chi Song's avatar
Chi Song committed
246
247
248

* **Batch Tuner(批处理调参器)** 会执行所有超参组合,可被用来批量提交 Trial 任务。

Chi Song's avatar
Chi Song committed
249
### 新示例
Chi Song's avatar
Chi Song committed
250

Chi Song's avatar
Chi Song committed
251
* 公开的 NNI Docker 映像:
Chi Song's avatar
Chi Song committed
252
253
254
255
  
  ```bash
  docker pull msranni/nni:latest
  ```
Chi Song's avatar
Chi Song committed
256

Chi Song's avatar
Chi Song committed
257
* 新的 Trial 样例: [NNI Sklearn 样例](https://github.com/Microsoft/nni/tree/master/examples/trials/sklearn)
Chi Song's avatar
Chi Song committed
258
259
260
261
262
263
264
265
266
267
268
269
270

* 新的竞赛样例:[Kaggle Competition TGS Salt](https://github.com/Microsoft/nni/tree/master/examples/trials/kaggle-tgs-salt)

### 其它

* 界面重构,参考[网页文档](WebUI.md),了解如何使用新界面。
* 持续集成:NNI 已切换到 Azure pipelines。
* [0.3.0 的已知问题](https://github.com/Microsoft/nni/labels/nni030knownissues)

## 发布 0.2.0 - 9/29/2018

### 主要功能

Chi Song's avatar
Chi Song committed
271
* 支持 [OpenPAI](https://github.com/Microsoft/pai) (又称 pai) 训练服务 (参考[这里](./PaiMode.md)来了解如何在 OpenPAI 下提交 NNI 任务) 
Chi Song's avatar
Chi Song committed
272
273
  * 支持 pai 模式的训练服务。 NNI Trial 可发送至 OpenPAI 集群上运行
  * NNI Trial 输出 (包括日志和模型文件) 会被复制到 OpenPAI 的 HDFS 中。
Chi Song's avatar
Chi Song committed
274
* 支持 [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) Tuner (参考[这里](SmacTuner.md),了解如何使用 SMAC Tuner) 
Chi Song's avatar
Chi Song committed
275
  * [SMAC](https://www.cs.ubc.ca/~hutter/papers/10-TR-SMAC.pdf) 基于 Sequential Model-Based Optimization (SMBO). 它会利用使用过的结果好的模型(高斯随机过程模型),并将随机森林引入到 SMBO 中,来处理分类参数。 NNI 的 SMAC 通过包装 [SMAC3](https://github.com/automl/SMAC3) 来支持。
Chi Song's avatar
Chi Song committed
276
277
* 支持将 NNI 安装在 [conda](https://conda.io/docs/index.html) 和 Python 虚拟环境中。
* 其它 
Chi Song's avatar
Chi Song committed
278
279
  * 更新 ga squad 样例与相关文档
  * 用户体验改善及 Bug 修复
Chi Song's avatar
Chi Song committed
280
281
282
283
284
285
286
287
288
289
290
291

### 已知问题

[0.2.0 的已知问题](https://github.com/Microsoft/nni/labels/nni020knownissues)

## 发布 0.1.0 - 9/10/2018 (首个版本)

首次发布 Neural Network Intelligence (NNI)。

### 主要功能

* 安装和部署 
Chi Song's avatar
Chi Song committed
292
293
  * 支持 pip 和源代码安装
  * 支持本机(包括多 GPU 卡)训练和远程多机训练模式
Chi Song's avatar
Chi Song committed
294
* Tuner ,Assessor 和 Trial 
Chi Song's avatar
Chi Song committed
295
296
297
298
  * 支持的自动机器学习算法包括: hyperopt_tpe, hyperopt_annealing, hyperopt_random, 和 evolution_tuner。
  * 支持 Assessor(提前终止)算法包括:medianstop。
  * 提供 Python API 来自定义 Tuner 和 Assessor
  * 提供 Python API 来包装 Trial 代码,以便能在 NNI 中运行
Chi Song's avatar
Chi Song committed
299
* Experiment 
Chi Song's avatar
Chi Song committed
300
301
  * 提供命令行工具 'nnictl' 来管理 Experiment
  * 提供网页界面来查看并管理 Experiment
Chi Song's avatar
Chi Song committed
302
* 持续集成 
Chi Song's avatar
Chi Song committed
303
  * 使用 Ubuntu 的 [travis-ci](https://github.com/travis-ci) 来支持持续集成
Chi Song's avatar
Chi Song committed
304
* 其它 
Chi Song's avatar
Chi Song committed
305
  * 支持简单的 GPU 任务调度
Chi Song's avatar
Chi Song committed
306
307
308
309

### 已知问题

[0.1.0 的已知问题](https://github.com/Microsoft/nni/labels/nni010knownissues)