From bcc737b212a153fb3f1cb2ac6a924a2a332c0925 Mon Sep 17 00:00:00 2001 From: chenhuil Date: Mon, 19 Aug 2024 09:36:54 +0000 Subject: [PATCH] quick start doc update Signed-off-by: chenhuil --- .../quick_start/source_code_start.md | 176 +++++++++++++++++- 1 file changed, 175 insertions(+), 1 deletion(-) diff --git a/docs/mindspore/source_zh_cn/mindformers/quick_start/source_code_start.md b/docs/mindspore/source_zh_cn/mindformers/quick_start/source_code_start.md index 8499efe533..c32b8522b0 100644 --- a/docs/mindspore/source_zh_cn/mindformers/quick_start/source_code_start.md +++ b/docs/mindspore/source_zh_cn/mindformers/quick_start/source_code_start.md @@ -1,3 +1,177 @@ # 调用源码启动 -[![查看源文件](https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/master/resource/_static/logo_source.svg)](https://gitee.com/mindspore/docs/blob/master/docs/mindspore/source_zh_cn/mindformers/quick_start/source_code_start.md) \ No newline at end of file +## 准备工作 +### - 修改配置文件 +- 修改配置文件`configs/{model_name}/run_{model_name}_***.yaml`中数据集路径 + + +## 启动模式 +### 单卡启动 +1. 统一接口启动,根据模型的config配置,完成任意模型的单卡训练、微调、评估、推理流程。 +2. `run_mindformer.py` 位于mindformer的根目录下 +训练启动,run_mode支持train、finetune、eval、predict四个关键字,以分别完成模型训练、评估、推理功能,默认使用配置文件中的run_mode + +```shell +python run_mindformer.py --config {CONFIG_PATH} --run_mode {train/finetune/eval/predict} +``` +## 多卡启动 +MindSpore提供了msrun命令,用于自动拉起多卡训练。Mindformers基于msrun命令,封装了一键启动的训练脚本msrun_launcher.sh +- 使用 `scripts/msrun_launcher.sh` 脚本进行多卡启动 + +### 单机多卡 + +```shell +# 1. 单机多卡快速启动方式,默认8卡启动 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" + +# 2. 单机多卡快速启动方式,仅设置使用卡数即可 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" WORKER_NUM + +# 3. 单机多卡自定义启动方式 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + WORKER_NUM MASTER_PORT LOG_DIR JOIN CLUSTER_TIME_OUT + ``` + +- 使用示例 + + ```shell + # 单机多卡快速启动方式,默认8卡启动 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" + + # 单机多卡快速启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" 8 + + # 单机多卡自定义启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" \ + 8 8118 output/msrun_log False 300 + ``` + + +### 多机多卡 + +多机多卡执行脚本进行分布式训练需要分别在不同节点运行脚本,并将参数MASTER_ADDR设置为主节点的ip地址, +所有节点设置的ip地址相同,不同节点之间仅参数NODE_RANK不同。 + + ```shell + # 多机多卡自定义启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + WORKER_NUM LOCAL_WORKER MASTER_ADDR MASTER_PORT NODE_RANK LOG_DIR JOIN CLUSTER_TIME_OUT + ``` + +- 使用示例 + + ```shell + # 节点0,节点ip为192.168.1.1,作为主节点,总共8卡且每个节点4卡 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + 8 4 192.168.1.1 8118 0 output/msrun_log False 300 + + # 节点1,节点ip为192.168.1.2,节点0与节点1启动命令仅参数NODE_RANK不同 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + 8 4 192.168.1.1 8118 1 output/msrun_log False 300 + ```# 调用源码启动 + +## 准备工作 +### - 修改配置文件 +- 修改配置文件`configs/{model_name}/run_{model_name}_***.yaml`中数据集路径 + + +## 启动模式 +### 单卡启动 +1. 统一接口启动,根据模型的config配置,完成任意模型的单卡训练、微调、评估、推理流程。 +2. `run_mindformer.py` 位于mindformer的根目录下 +训练启动,run_mode支持train、finetune、eval、predict四个关键字,以分别完成模型训练、评估、推理功能,默认使用配置文件中的run_mode + +```shell +python run_mindformer.py --config {CONFIG_PATH} --run_mode {train/finetune/eval/predict} +``` +## 多卡启动 +MindSpore提供了msrun命令,用于自动拉起多卡训练。Mindformers基于msrun命令,封装了一键启动的训练脚本msrun_launcher.sh +- 使用 `scripts/msrun_launcher.sh` 脚本进行多卡启动 + +### 单机多卡 + +```shell +# 1. 单机多卡快速启动方式,默认8卡启动 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" + +# 2. 单机多卡快速启动方式,仅设置使用卡数即可 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" WORKER_NUM + +# 3. 单机多卡自定义启动方式 +bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + WORKER_NUM MASTER_PORT LOG_DIR JOIN CLUSTER_TIME_OUT + ``` + +- 使用示例 + + ```shell + # 单机多卡快速启动方式,默认8卡启动 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" + + # 单机多卡快速启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" 8 + + # 单机多卡自定义启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config path/to/xxx.yaml \ + --run_mode finetune" \ + 8 8118 output/msrun_log False 300 + ``` + + +### 多机多卡 + +多机多卡执行脚本进行分布式训练需要分别在不同节点运行脚本,并将参数MASTER_ADDR设置为主节点的ip地址, +所有节点设置的ip地址相同,不同节点之间仅参数NODE_RANK不同。 + + ```shell + # 多机多卡自定义启动方式 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + WORKER_NUM LOCAL_WORKER MASTER_ADDR MASTER_PORT NODE_RANK LOG_DIR JOIN CLUSTER_TIME_OUT + ``` + +- 使用示例 + + ```shell + # 节点0,节点ip为192.168.1.1,作为主节点,总共8卡且每个节点4卡 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + 8 4 192.168.1.1 8118 0 output/msrun_log False 300 + + # 节点1,节点ip为192.168.1.2,节点0与节点1启动命令仅参数NODE_RANK不同 + bash scripts/msrun_launcher.sh "run_mindformer.py \ + --config {CONFIG_PATH} \ + --run_mode {train/finetune/eval/predict}" \ + 8 4 192.168.1.1 8118 1 output/msrun_log False 300 + ``` \ No newline at end of file -- Gitee