Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[doc] update pai_nni_hpo,hpo_res,hpo_pai docs to fix some problems #413

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/source/automl/hpo_pai.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ accessKeySecret= xxx

- --selected_cols 表里面用于训练和评估的列, 有助于提高训练速度

- --cluster 定义PS的数目和worker的数目,有一个worker将被用于评估, 其它的worker用于训练.
- --cluster 定义PS的数目和worker的数目,有一个worker将被用于评估, 其它的worker用于训练

```bash
--cluster='{"ps":{"count":1, "cpu":1000}, "worker" : {"count":3, "cpu":1000, "gpu":100, "memory":40000}}'
Expand Down Expand Up @@ -118,7 +118,7 @@ accessKeySecret= xxx
feature_config.features[input_names[0]=field1].embedding_dim;
feature_config.features[input_names[0]=field2].embedding_dim
```
- 如果name里面包含了多个参数名称,那么candidates也需要有多个参数值,用";"分割如"32;32"
- 如果name里面包含了多个参数名称,那么candidates也需要有多个参数值,用";"分割,如"32;32"
- candidates: 候选值
- type: 候选值类型, 支持Categorical, Integer, Real
- Integer类型
Expand All @@ -132,7 +132,7 @@ accessKeySecret= xxx
}
```

- Real类型
- Real类型

```json
{
Expand Down
14 changes: 6 additions & 8 deletions docs/source/automl/hpo_res.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@

### 查看Trial详情页面

点击Trials detail按钮,您可以在此页面中看到整个实验过程中,每个trial的结果情况
点击Trials detail按钮,您可以在此页面中看到整个实验过程中每个trial的结果情况
其中succeeded代表此次trial成功运行,earlystop表示该组参数运行结果不太好,被提前停止了。停止策略可以查看pai_nni/core/pai_assessor.PaiAssessor,当然也可以根据业务情况去修改。
![image.png](../../images/automl/pai_nni_detail.jpg)

### 查看作业日志详情

点击每个Trial No,可以看到每个参数Trial的日志、参数详情,报错和输出可以点击以下3个按钮。
点击每个Trial No,可以看到每个参数Trial的日志和参数详情,报错和输出可以点击以下3个按钮。
![image.png](../../images/automl/pai_nni_log.jpg)

### 手动停止某组实验超参
Expand All @@ -27,7 +27,7 @@

### 多目标default metric查看

假设用户配置的metric_config为如下,那么UI中Default metric中显示3项;该组trial最终的metric
假设用户配置的metric_config如下,那么UI中Default metric中显示3项;该组trial最终的metric

- default=auc\*0.5+accuracy\*0.5
- auc即为最终的auc值
Expand All @@ -48,7 +48,7 @@ accuracy=0.5

### 多组参数比较

点击Trail NO,选中后,点击compare, 就可以查看对应参数的相关信
点击Trail NO,选中后,点击compare, 就可以查看对应参数的相关信息
![image.png](../../images/automl/nni-compare.png)

### 多组实验查看
Expand All @@ -60,7 +60,7 @@ accuracy=0.5

可以使用自定义参数,也可以使用该功能重启失败的trial。
点击复制这个按钮,然后跳出Customized trial,点击提交/或者修改即可,此处是新增一组参数,应该记得调高MaxTrialNo
注意该功能在2.10目前有问题;需要nni\<=2.9
注意该功能在2.10目前有问题;需要nni\<=2.9
![image.png](../../images/automl/retry_trial.jpg)

### 失败续跑
Expand All @@ -77,9 +77,7 @@ cmd=PAI -name xxx

### 一键重试失败的Trial

当用户确认失败原因为没有资源,或者算法偶现失败等原因时,想采取重试策略,可以使用该API发起多个失败的Trial一起重试。在内部其实是将NNI最大运行次数增大,并发数保持不变;并且是新增了多个Trial,每个Trial的参数和之前失败的Trial保持一致。

注意该功能在2.10目前有问题;需要nni\<=2.9
当用户确认失败原因为没有资源,或者算法偶现失败等原因时,想采取重试策略,可以使用该API发起多个失败的Trial一起重试。在内部其实是将NNI最大运行次数增大,并发数保持不变;并且是新增了多个Trial,每个Trial的参数和之前失败的Trial保持一致(注意该功能在2.10目前有问题;需要nni\<=2.9)

- experiment_id: 重试的实验ID(必选)

Expand Down
32 changes: 16 additions & 16 deletions docs/source/automl/pai_nni_hpo.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# PAI-NNI-HPO

HPO是对模型参数、训练超参数(opt、lr)等进行自动搜索调优的一个工具,从而获取较优参数,提升模型效果。可以大大地节省算法同学调参的时间,聚焦在建模和业务上。我们对NNI、PAI产品和算法等进行集成,支持多平台0代码修改调参,并做了加速、监控、调度、续跑等功能增强
HPO是一个对模型参数、训练超参数(opt、lr)等进行自动搜索调优的工具,从而获取较优参数,提升模型效果。可以大大地节省算法同学调参的时间,聚焦在建模和业务上。我们对NNI、PAI产品和算法等进行集成,支持多平台0代码修改调参,并对加速、监控、调度、续跑等功能做了增强

[NNI参考](https://nni.readthedocs.io/en/stable/hpo/overview.html)

Expand All @@ -20,8 +20,8 @@ java环境:如果需要运行MC的PAI命令,需要java8
source install_hpo_tools.sh $1 $2
```

- 第一个参数为下载examples的位置,默认下载在输入路径下面的examples下; 如果没写目录,默认生成在根目录下。
- 第二个参数为aliyun/eflops/mac-dlc/mac-arm-dlc,用来控制安装dlc的版本,如果没写,则默认安装aliyun版本的dlc
- 第一个参数为下载examples的位置,默认下载在输入路径下面的examples下,如果为空,则默认生成在根目录下
- 第二个参数为aliyun/eflops/mac-dlc/mac-arm-dlc,用来控制安装dlc的版本,如果为空,则默认安装aliyun版本的dlc

##### Linux

Expand Down Expand Up @@ -90,14 +90,14 @@ ls $(pwd)/search
docker exec -ti $container_id /bin/bash
cd /HpoTools/test/search

### 查看具体案例 去本地修改$(pwd)/search下面的实验配置,第2章节
### 查看具体案例 去容器/HpoTools/test/search 启动调优,第3章节
### 查看具体案例 去本地UI查看调优结果,第4章节
### 查看具体案例去本地修改$(pwd)/search下面的实验配置,见第2章节
### 查看具体案例去容器/HpoTools/test/search 启动调优,见第3章节
### 查看具体案例去本地UI查看调优结果,见第4章节
```

### 配置

HPO启动配置包含exp.yml. trial.ini, search_space.json三个模块。
HPO启动配置包含exp.yml,trial.ini,search_space.json三个模块。

HPO的启动命令是:

Expand All @@ -106,10 +106,10 @@ nnictl create --config exp.yml
```

- 启动入口为exp.yml
- 通过trialCommand: python3 -m hpo_tools.core.utils.run --config=./trial.ini 连接用户的具体的启动任务
- 通过字段searchSpaceFile: search_space.json 连接 search_space.json;
- 通过trialCommand: python3 -m hpo_tools.core.utils.run --config=./trial.ini 连接用户的具体的启动任务
- 通过字段searchSpaceFile: search_space.json 连接 search_space.json

配置案例均可以在安装目录examples/search目录下,细节请参考[HPO配置介绍](./hpo_config.md)
配置案例均可以在安装目录examples/search目录下找到,细节请参考[HPO配置介绍](./hpo_config.md)

#### exp.yml 示例

Expand All @@ -135,7 +135,7 @@ assessor:

#### trial.ini 示例

可以查看安装目录下examples/search/maxcompute_easyrec/trial.ini,执行在PAI MaxCompute平台
可以查看安装目录下examples/search/maxcompute_easyrec/trial.ini的配置文件,执行在PAI MaxCompute平台

```
[oss_config]
Expand Down Expand Up @@ -183,7 +183,7 @@ metric_dict={'auc':1}

#### trial_local.ini 示例

可以查看安装目录下examples/local_easyrec/trial.ini其中执行的命令的是在本地的,而不是在PAI MaxCompute平台
可以查看安装目录下examples/local_easyrec/trial.ini的配置文件,其中执行的命令是在本地的,而不是在PAI MaxCompute平台

```
[params_config]
Expand All @@ -207,8 +207,8 @@ metric_dict={'auc':1}

[NNI Local配置参考手册](https://nni.readthedocs.io/zh/stable/reference/experiment_config.html#localconfig)

- 如果想将任务执行在GPU上,则使用config_local_gpu.yml,配置了GPU相关的信息
- 如果想将任务执行在CPU上,则使用config_local.yml
- 如果想在GPU上执行任务,则使用config_local_gpu.yml,其中配置了GPU的相关信息
- 如果想在CPU上执行任务,则使用config_local.yml
![image.png](../../images/automl/nni_local.jpg)

#### 配置超参搜索空间search_space.json
Expand Down Expand Up @@ -263,7 +263,7 @@ finetune搜索高级用法参考[HPO finetune](./finetune_config.md)
### 启动调优

```bash
nnictl create --config config.yml --port=8780
nnictl create --config config.yml --port 8780
```

其中port可以是机器上任意未使用的端口号。需要注意的是,NNI实验不会自动退出,如果需要关闭实验请运行nnictl stop主动关闭。如果遇到问题,请查看FAQ。
Expand All @@ -278,7 +278,7 @@ nnictl create --config config.yml --port=8780

### HPO调优结果

点击生成的URL,例如http://127.0.0.1:8780,可以看到webUI
点击生成的URL,可以看到webUI,例如http://127.0.0.1:8780
![image.png](../../images/automl/pai_nni_overview.jpg)
查看调优结果没问题后,可以调整最大Trial运行数量MaxTrialNo和并发度Concurrency。
如果需要更详细的调优结果,可查看[HPO调优结果](./hpo_res.md)
Expand Down
Loading