Unverified Commit fbf4668b authored by Chi Song's avatar Chi Song Committed by GitHub
Browse files

update Chinese file path as en_US (#764)

parent 7242098e
...@@ -26,7 +26,7 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为 ...@@ -26,7 +26,7 @@ NNI 支持在 [Kubeflow](https://github.com/kubeflow/kubeflow)上运行,称为
## 设计 ## 设计
![](./img/kubeflow_training_design.png) Kubeflow 训练服务会实例化一个 kubernetes 客户端来与 Kubernetes 集群的 API 服务器交互。 ![](../img/kubeflow_training_design.png) Kubeflow 训练服务会实例化一个 kubernetes 客户端来与 Kubernetes 集群的 API 服务器交互。
对于每个 Trial,会上传本机 codeDir 路径(在 nni_config.yml 中配置)中的所有文件,包括 parameter.cfg 这样的生成的文件到存储卷中。 当前支持两种存储卷:[nfs](https://en.wikipedia.org/wiki/Network_File_System)[Azure 文件存储](https://azure.microsoft.com/en-us/services/storage/files/),需要在 NNI 的 YAML 文件中进行配置。 当文件准备好后,Kubeflow 训练服务会调用 Kubernetes 的 API 来创建 Kubeflow 作业 ([tf-operator](https://github.com/kubeflow/tf-operator) 作业或 [pytorch-operator](https://github.com/kubeflow/pytorch-operator) 作业) ,并将存储卷挂载到作业的 pod 中。 Kubeflow 作业的输出文件,例如 stdout, stderr, trial.log 以及模型文件,也会被复制回存储卷。 NNI 会在网页中显示每个 Trial 的存储卷的 URL,以便浏览日志和输出文件。 对于每个 Trial,会上传本机 codeDir 路径(在 nni_config.yml 中配置)中的所有文件,包括 parameter.cfg 这样的生成的文件到存储卷中。 当前支持两种存储卷:[nfs](https://en.wikipedia.org/wiki/Network_File_System)[Azure 文件存储](https://azure.microsoft.com/en-us/services/storage/files/),需要在 NNI 的 YAML 文件中进行配置。 当文件准备好后,Kubeflow 训练服务会调用 Kubernetes 的 API 来创建 Kubeflow 作业 ([tf-operator](https://github.com/kubeflow/tf-operator) 作业或 [pytorch-operator](https://github.com/kubeflow/pytorch-operator) 作业) ,并将存储卷挂载到作业的 pod 中。 Kubeflow 作业的输出文件,例如 stdout, stderr, trial.log 以及模型文件,也会被复制回存储卷。 NNI 会在网页中显示每个 Trial 的存储卷的 URL,以便浏览日志和输出文件。
...@@ -185,7 +185,7 @@ Kubeflow 模式的配置有下列主键: ...@@ -185,7 +185,7 @@ Kubeflow 模式的配置有下列主键:
* gpuNum * gpuNum
* image * image
* 必填。 在 kubeflow 模式中,Kubernetes 会安排 Trial 程序在 [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/) 中执行。 此键用来指定 Trial 程序的 pod 使用的 Docker 映像。 * 必填。 在 kubeflow 模式中,Kubernetes 会安排 Trial 程序在 [Pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/) 中执行。 此键用来指定 Trial 程序的 pod 使用的 Docker 映像。
* [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [msranni/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI Experiment 所依赖的所有 Python 包,Node 模块和 JavaScript。 生成此 Docker 映像的文件在[这里](https://github.com/Microsoft/nni/tree/master/deployment/Dockerfile.build.base)。 可以直接使用此映像,或参考它来生成自己的映像。 * [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [msranni/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI Experiment 所依赖的所有 Python 包,Node 模块和 JavaScript。 生成此 Docker 映像的文件在[这里](https://github.com/Microsoft/nni/tree/master/deployment/docker/Dockerfile)。 可以直接使用此映像,或参考它来生成自己的映像。
* apiVersion * apiVersion
* 必填。 Kubeflow 的 API 版本。 * 必填。 Kubeflow 的 API 版本。
* ps (可选)。 此部分用于配置 TensorFlow 的 parameter 服务器角色。 * ps (可选)。 此部分用于配置 TensorFlow 的 parameter 服务器角色。
......
...@@ -14,7 +14,7 @@ nnictl 支持的命令: ...@@ -14,7 +14,7 @@ nnictl 支持的命令:
* [nnictl update](#update) * [nnictl update](#update)
* [nnictl trial](#trial) * [nnictl trial](#trial)
* [nnictl top](#top) * [nnictl top](#top)
* [nnictl experiment show](#experiment) * [nnictl experiment](#experiment)
* [nnictl config](#config) * [nnictl config](#config)
* [nnictl log](#log) * [nnictl log](#log)
* [nnictl webui](#webui) * [nnictl webui](#webui)
...@@ -88,7 +88,7 @@ nnictl 支持的命令: ...@@ -88,7 +88,7 @@ nnictl 支持的命令:
2. 如果没有指定 id,并且当前有运行的 Experiment,则会停止该 Experiment,否则会输出错误信息。 2. 如果没有指定 id,并且当前有运行的 Experiment,则会停止该 Experiment,否则会输出错误信息。
3. 如果 id 以 * 结尾,nnictl 会停止所有匹配此通配符的 Experiment。 3. 如果 id 以 * 结尾,nnictl 会停止所有匹配此通配符的 Experiment。
4. 如果 id 不存在,但匹配了某个Experiment 的 id 前缀,nnictl 会停止匹配的Experiment 。 4. 如果 id 不存在,但匹配了某个Experiment 的 id 前缀,nnictl 会停止匹配的Experiment 。
5. 如果 id 不存在,但匹配多个 Experiment id 的前缀,nnictl 会输出这些 id 的信息。 5. 如果 id 不存在,但匹配多个 Experiment id 的前缀,nnictl 会输出这些 id 的信息。
6. 可使用 'nnictl stop all' 来停止所有的 Experiment。 6. 可使用 'nnictl stop all' 来停止所有的 Experiment。
<a name="update"></a> <a name="update"></a>
...@@ -414,9 +414,9 @@ nnictl 支持的命令: ...@@ -414,9 +414,9 @@ nnictl 支持的命令:
* 选项 * 选项
| 参数及缩写 | 是否必需 | 默认值 | 说明 | | 参数及缩写 | 是否必需 | 默认值 | 说明 |
| ----- | ----- | --- | ----------- | | ----- | ----- | --- | --------------------- |
| id | False | | 需要设置的实验的 id | | id | False | | 需要设置的 Experiment 的 id |
<a name="package"></a> <a name="package"></a>
......
...@@ -53,7 +53,7 @@ paiConfig: ...@@ -53,7 +53,7 @@ paiConfig:
* 必填。 Trial 程序的内存需求,必须为正数。 * 必填。 Trial 程序的内存需求,必须为正数。
* image * image
* 必填。 在 pai 模式中,Trial 程序由 OpenPAI 在 [Docker 容器](https://www.docker.com/)中安排运行。 此键用来指定 Trial 程序的容器使用的 Docker 映像。 * 必填。 在 pai 模式中,Trial 程序由 OpenPAI 在 [Docker 容器](https://www.docker.com/)中安排运行。 此键用来指定 Trial 程序的容器使用的 Docker 映像。
* [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [nnimsra/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI Experiment 所依赖的所有 Python 包,Node 模块和 JavaScript。 生成此 Docker 映像的文件在[这里](https://github.com/Microsoft/nni/tree/master/deployment/Dockerfile.build.base)。 可以直接使用此映像,或参考它来生成自己的映像。 * [Docker Hub](https://hub.docker.com/) 上有预制的 NNI Docker 映像 [nnimsra/nni](https://hub.docker.com/r/msranni/nni/)。 它包含了用来启动 NNI Experiment 所依赖的所有 Python 包,Node 模块和 JavaScript。 生成此 Docker 映像的文件在[这里](https://github.com/Microsoft/nni/tree/master/deployment/docker/Dockerfile)。 可以直接使用此映像,或参考它来生成自己的映像。
* dataDir * dataDir
* 可选。 指定了 Trial 用于下载数据的 HDFS 数据目录。 格式应为 hdfs://{your HDFS host}:9000/{数据目录} * 可选。 指定了 Trial 用于下载数据的 HDFS 数据目录。 格式应为 hdfs://{your HDFS host}:9000/{数据目录}
* outputDir * outputDir
...@@ -64,15 +64,15 @@ paiConfig: ...@@ -64,15 +64,15 @@ paiConfig:
nnictl create --config exp_pai.yml nnictl create --config exp_pai.yml
来在 pai 模式下启动 Experiment。 NNI 会为每个 Trial 创建 OpenPAI 作业,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](./img/nni_pai_joblist.jpg) 来在 pai 模式下启动 Experiment。 NNI 会为每个 Trial 创建 OpenPAI 作业,作业名称的格式为 `nni_exp_{experiment_id}_trial_{trial_id}`。 可以在 OpenPAI 集群的网站中看到 NNI 创建的作业,例如: ![](../img/nni_pai_joblist.jpg)
注意:pai 模式下,NNIManager 会启动 RESTful 服务,监听端口为 NNI 网页服务器的端口加1。 例如,如果网页端口为`8080`,那么 RESTful 服务器会监听在 `8081`端口,来接收运行在 Kubernetes 中的 Trial 作业的指标。 因此,需要在防火墙中启用端口 `8081` 的 TCP 协议,以允许传入流量。 注意:pai 模式下,NNIManager 会启动 RESTful 服务,监听端口为 NNI 网页服务器的端口加1。 例如,如果网页端口为`8080`,那么 RESTful 服务器会监听在 `8081`端口,来接收运行在 Kubernetes 中的 Trial 作业的指标。 因此,需要在防火墙中启用端口 `8081` 的 TCP 协议,以允许传入流量。
当一个 Trial 作业完成后,可以在 NNI 网页的概述页面(如:http://localhost:8080/oview)中查看 Trial 的信息。 当一个 Trial 作业完成后,可以在 NNI 网页的概述页面(如:http://localhost:8080/oview)中查看 Trial 的信息。
在 Trial 列表页面中展开 Trial 信息,点击如下的 logPath: ![](./img/nni_webui_joblist.jpg) 在 Trial 列表页面中展开 Trial 信息,点击如下的 logPath: ![](../img/nni_webui_joblist.jpg)
接着将会打开 HDFS 的 WEB 界面,并浏览到 Trial 的输出文件: ![](./img/nni_trial_hdfs_output.jpg) 接着将会打开 HDFS 的 WEB 界面,并浏览到 Trial 的输出文件: ![](../img/nni_trial_hdfs_output.jpg)
在输出目录中可以看到三个文件:stderr, stdout, 以及 trial.log 在输出目录中可以看到三个文件:stderr, stdout, 以及 trial.log
......
...@@ -183,28 +183,28 @@ trial: ...@@ -183,28 +183,28 @@ trial:
Experiment 相关信息会显示在界面上,配置和搜索空间等。 可通过 **Download** 按钮来`下载信息和参数`。 可以在运行中或结束后,随时下载 Experiment 的结果。 Experiment 相关信息会显示在界面上,配置和搜索空间等。 可通过 **Download** 按钮来`下载信息和参数`。 可以在运行中或结束后,随时下载 Experiment 的结果。
![](./img/QuickStart1.png) ![](../img/QuickStart1.png)
前 10 个 Trial 结果也会列在 Overview 页面中,可以在 "Trials Detail" 部分浏览所有的 Trial。 前 10 个 Trial 结果也会列在 Overview 页面中,可以在 "Trials Detail" 部分浏览所有的 Trial。
![](./img/QuickStart2.png) ![](../img/QuickStart2.png)
#### 查看 Trial 详情页面 #### 查看 Trial 详情页面
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。 点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。
![](./img/QuickStart3.png) ![](../img/QuickStart3.png)
点击 "Hyper Parameter" 标签查看图像。 点击 "Hyper Parameter" 标签查看图像。
* 可选择百分比查看最好的 Trial。 * 可选择百分比查看最好的 Trial。
* 选择两个轴来交换位置。 * 选择两个轴来交换位置。
![](./img/QuickStart4.png) ![](../img/QuickStart4.png)
点击 "Trial Duration" 标签来查看柱状图。 点击 "Trial Duration" 标签来查看柱状图。
![](./img/QuickStart5.png) ![](../img/QuickStart5.png)
下面是所有 Trial 的状态。 包括: 下面是所有 Trial 的状态。 包括:
...@@ -213,11 +213,11 @@ Experiment 相关信息会显示在界面上,配置和搜索空间等。 可 ...@@ -213,11 +213,11 @@ Experiment 相关信息会显示在界面上,配置和搜索空间等。 可
* Kill: 可终止正在运行的任务。 * Kill: 可终止正在运行的任务。
* 支持搜索某个特定的 Trial。 * 支持搜索某个特定的 Trial。
![](./img/QuickStart6.png) ![](../img/QuickStart6.png)
* 中间结果图 * 中间结果图
![](./img/QuickStart7.png) ![](../img/QuickStart7.png)
## 相关主题 ## 相关主题
......
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
nnictl create --port 8081 --config <config file path> nnictl create --port 8081 --config <config file path>
``` ```
* 支持更新最大 Trial 的数量。 使用 `nnictl update --help` 了解详情。 或参考 [NNICTL 说明](NNICTLDOC.md)查看完整帮助。 * 支持更新最大 Trial 的数量。 使用 `nnictl update --help` 了解详情。 或参考 [NNICTL](NNICTLDOC.md) 查看完整帮助。
### API 的新功能和更新 ### API 的新功能和更新
...@@ -137,7 +137,7 @@ ...@@ -137,7 +137,7 @@
* float * float
* 包含有 'default' 键值的 dict,'default' 的值必须为 int 或 float。 dict 可以包含任何其它键值对。 * 包含有 'default' 键值的 dict,'default' 的值必须为 int 或 float。 dict 可以包含任何其它键值对。
### 支持新的 Tuner ### 新的内置 Tuner
* **Batch Tuner(批处理调参器)** 会执行所有超参组合,可被用来批量提交 Trial 任务。 * **Batch Tuner(批处理调参器)** 会执行所有超参组合,可被用来批量提交 Trial 任务。
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:maxdepth: 3 :maxdepth: 3
命令行<NNICTLDOC> 命令行<NNICTLDOC>
Python API<sdk_reference>
Annotation<AnnotationSpec> Annotation<AnnotationSpec>
配置<ExperimentConfig> 配置<ExperimentConfig>
搜索空间<SearchSpaceSpec> 搜索空间<SearchSpaceSpec>
\ No newline at end of file
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
6. ADD-SKIP (在随机层之间一致). 6. ADD-SKIP (在随机层之间一致).
7. REMOVE-SKIP (移除随机跳过). 7. REMOVE-SKIP (移除随机跳过).
![](https://github.com/Microsoft/nni/tree/master/examples/trials/ga_squad/ga_squad.png) ![](../../examples/trials/ga_squad/ga_squad.png)
### 新版本 ### 新版本
...@@ -130,7 +130,7 @@ paiConfig: ...@@ -130,7 +130,7 @@ paiConfig:
将默认值改为个人账户和服务器信息。 包括 `nniManagerIp`, `dataDir`, `outputDir`, `userName`, `passWord``host` 将默认值改为个人账户和服务器信息。 包括 `nniManagerIp`, `dataDir`, `outputDir`, `userName`, `passWord``host`
在 "trial" 部分中,如果需要使用 GPU 来进行架构搜索,可将 `gpuNum``0` 改为 `1`。 根据训练时长,可以增加 `maxTrialNum``maxExecDuration` 在 "Trial" 部分中,如果需要使用 GPU 来进行架构搜索,可将 `gpuNum``0` 改为 `1`。 根据训练时长,可以增加 `maxTrialNum``maxExecDuration`
`trialConcurrency` 是并发运行的 Trial 的数量。如果将 `gpuNum` 设置为 1,则需要与 GPU 数量一致。 `trialConcurrency` 是并发运行的 Trial 的数量。如果将 `gpuNum` 设置为 1,则需要与 GPU 数量一致。
......
...@@ -64,7 +64,7 @@ searchSpacePath: /path/to/your/search_space.json ...@@ -64,7 +64,7 @@ searchSpacePath: /path/to/your/search_space.json
参考 [这里](ExperimentConfig.md) 进一步了解如何配置实验。 参考 [这里](ExperimentConfig.md) 进一步了解如何配置实验。
*参考[这里](sdk_reference.md),了解更多 NNI API 例如`nni.get_sequence_id()` * 参考[这里](https://nni.readthedocs.io/en/latest/sdk_reference.html),了解更多 NNI API (例如 `nni.get_sequence_id()`)
<a name="nni-annotation"></a> <a name="nni-annotation"></a>
......
...@@ -7,17 +7,17 @@ ...@@ -7,17 +7,17 @@
* 查看 Experiment 的配置和搜索空间内容。 * 查看 Experiment 的配置和搜索空间内容。
* 支持下载 Experiment 结果。 * 支持下载 Experiment 结果。
![](./img/webui-img/over1.png) ![](../img/webui-img/over1.png)
* 查看最好结果的 Trial。 * 查看最好结果的 Trial。
![](./img/webui-img/over2.png) ![](../img/webui-img/over2.png)
## 查看任务默认指标 ## 查看任务默认指标
点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。 点击 "Default Metric" 来查看所有 Trial 的点图。 悬停鼠标来查看默认指标和搜索空间信息。
![](./img/accuracy.png) ![](../img/accuracy.png)
## 查看超参 ## 查看超参
...@@ -26,13 +26,13 @@ ...@@ -26,13 +26,13 @@
* 可选择百分比查看最好的 Trial。 * 可选择百分比查看最好的 Trial。
* 选择两个轴来交换位置。 * 选择两个轴来交换位置。
![](./img/hyperPara.png) ![](../img/hyperPara.png)
## 查看 Trial 运行时间 ## 查看 Trial 运行时间
点击 "Trial Duration" 标签来查看柱状图。 点击 "Trial Duration" 标签来查看柱状图。
![](./img/trial_duration.png) ![](../img/trial_duration.png)
## 查看 Trial 状态 ## 查看 Trial 状态
...@@ -40,14 +40,14 @@ ...@@ -40,14 +40,14 @@
* Trial 详情:Trial 的 id,持续时间,开始时间,结束时间,状态,精度和搜索空间。 * Trial 详情:Trial 的 id,持续时间,开始时间,结束时间,状态,精度和搜索空间。
![](./img/webui-img/detail-local.png) ![](../img/webui-img/detail-local.png)
* 如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。 * 如果在 OpenPAI 或 Kubeflow 平台上运行,还可以看到 hdfsLog。
![](./img/webui-img/detail-pai.png) ![](../img/webui-img/detail-pai.png)
* Kill: 可终止正在运行的任务。 * Kill: 可终止正在运行的任务。
* 支持搜索某个特定的 Trial。 * 支持搜索某个特定的 Trial。
* 中间结果图。 * 中间结果图。
![](./img/intermediate.png) ![](../img/intermediate.png)
\ No newline at end of file \ No newline at end of file
Assessor(评估器) Assessor(评估器)
============== ==================
为了节省计算资源,在 NNI 中可通过创建 **Assessor**,来配置提前终止策略。 为了节省计算资源,在 NNI 中可通过创建 **Assessor**,来配置提前终止策略。
Assessor 从 Trial 中接收中间结果,并通过指定的算法决定此 Trial 是否应该终止。 一旦 Trial 满足了提前终止策略(这表示 Assessor 认为最终结果不会太好),Assessor 会终止此 Trial,并将其状态标志为 `"EARLY_STOPPED"`。 Assessor 从 Trial 中接收中间结果,并通过指定的算法决定此 Trial 是否应该终止。 一旦 Trial 满足了提前终止策略(这表示 Assessor 认为最终结果不会太好),Assessor 会终止此 Trial,并将其状态标志为 `"EARLY_STOPPED"`。
这是 MNIST 在使用了 'Curvefitting' Assessor 的 'maximize' 模式后的实验结果,可以看到 Assessor 成功的将大量最终结果不好的 Trial **提前结束**。 使用 Assessor,能在相同的计算资源下,得到更好的结果。 这是 MNIST 在使用了 'Curvefitting' Assessor 的 'maximize' 模式后的实验结果,可以看到 Assessor 成功的将大量最终结果不好的 Trial **提前结束** 。 使用 Assessor,能在相同的计算资源下,得到更好的结果。
*实现代码:config_assessor.yml <https://github.com/Microsoft/nni/blob/master/examples/trials/mnist/config_assessor.yml>* *实现代码:config_assessor.yml <https://github.com/Microsoft/nni/blob/master/examples/trials/mnist/config_assessor.yml>*
.. image:: ./img/Assessor.png .. image:: ../img/Assessor.png
与 Tuner 类似,可使用内置的 Assessor,也可以自定义 Assessor。 参考下列教程,获取详细信息: 与 Tuner 类似,可使用内置的 Assessor,也可以自定义 Assessor。 参考下列教程,获取详细信息:
......
# Batch Tuner # Batch Tuner
## Batch Tuner(批处理调参器) ## Batch Tuner(批调参器)
Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner 仅支持[搜索空间](../../../../../docs/SearchSpaceSpec.md)中的 choice。 Batch Tuner 能让用户简单的提供几组配置(如,超参选项的组合)。 当所有配置都执行完后,Experiment 即结束。 Batch Tuner [搜索空间](SearchSpaceSpec.md)只支持 `choice`
建议场景:如果 Experiment 配置已确定,可通过 choice 将它们罗列到搜索空间文件中运行即可。 建议场景:如果 Experiment 配置已确定,可通过 choice 将它们罗列到搜索空间文件中运行即可。
\ No newline at end of file
...@@ -51,7 +51,7 @@ python3 -m pip install torchvision ...@@ -51,7 +51,7 @@ python3 -m pip install torchvision
*实现代码:[main.py](https://github.com/Microsoft/nni/blob/master/examples/trials/cifar10_pytorch/main.py)* *实现代码:[main.py](https://github.com/Microsoft/nni/blob/master/examples/trials/cifar10_pytorch/main.py)*
也可以直接使用以前的代码来修改,参考:[如何编写 Trial](./Trials.md) 还可直接修改现有的代码来支持 NNI,参考:[如何编写 Trial](Trials.md)
**配置** **配置**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment