运行命令¶
hai-cli python¶
Usage:
hai-cli python <experiment.py> [<experiment_params>...]                        # 在本地运行,等同 python
hai-cli python <experiment.py> [<experiment_params>...] -- [CLUSTER_OPTIONS]   # 提交任务到萤火二号运行
hai-cli python <experiment.py> [<experiment_params>...] ++ [SIMULATE_OPTIONS]  # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
- --name <name>- 指定任务的名字,不指定的话,不填默认为文件名 
- -n, --nodes <nodes>- 用多少个节点跑,必填 
- -i, --image <image>- 使用哪个镜像跑任务, 默认采用当前镜像,否则内部用户默认cuda_11,外部用户默认 ubuntu2024-cu113-ext, 也可以通过 hfai images 自定义镜像 
- -e, --environments <environments>- 任务运行中需要的环境变量,举例,-e A=X -e B=Y; 则定义了 A, B 两个环境变量 
- -f, --follow- 是否追加查看日志 - 默认值: False 
- --no_inherit- 上传到集群的任务是否使用当前的hf_env环境 - 默认值: False 
- --options <options>- 指定任务的一些可选项,具体看 Extra Cluster Options 
Simulate Options
- -ss, --suspend_seconds <suspend_seconds>- 模拟任务在多少秒时候打断 
- -ls, --life_state <life_state>- 传入任务的 whole_life_state flag 值 
Environment Variables
- HF_ENV_NAME=<var>用于显示指定在萤火上以什么环境运行, 可选萤火内建的:py38-202111, 或用户自建的虚拟环境
- HF_ENV_OWNER=<var>若使用他人构建的虚拟环境,需要指定该环境的所属者,可以通过 haienv list 查看
Workspace Options
- --force- push时, 是否强制推送并覆盖远端目录 - 默认值: False 
- --no_checksum- push时, 是否对文件禁用checksum - 默认值: False 
- --no_hfignore- push时, 是否忽略.hfignore规则 - 默认值: False 
- --no_zip- push时, 是否禁用workspace打包上传 
- --no_diff- push时, 是否禁用差量上传, 如是, 本地和远端不一致文件将被强制覆盖, 默认值为False 
- --list_timeout <list_timeout>- push时, 遍历集群工作区的超时时间, 单位(s) - 默认值: 300 
- --sync_timeout <sync_timeout>- push时, 从云端同步到集群的连接超时时间, 单位(s) - 默认值: 1800 
- --cloud_connect_timeout <cloud_connect_timeout>- push时, 从本地上传分片到云端的超时时间, 单位(s) - 默认值: 120 
- --token_expires <token_expires>- push时, 从本地上传到云端的sts token有效时间, 单位(s) - 默认值: 1800 
- --part_mb_size <part_mb_size>- push时, 从本地上传到云端的分片大小, 单位(MB) - 默认值: 100 
- --proxy <proxy>- push时, 从本地上传到云端时使用的代理url 
Arguments
- experiment.py- 远程运行的脚本 
- experiment_params...- 远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致 
Examples
hai-cli python bert.py -c large.yml -- -n 10  # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hai-cli python bert.py -c large.yml -- -n 1  # 使用萤火内建的 py38-202111 环境运行
hai-cli python bert.py -c large.yml  # 本地运行
hai-cli python bert.py -c large.yml -- --nodes 1  # 使用萤火一节点
hai-cli python bert.py -c large.yml -- -n 1 -i default -e A=B -e C=D  # 使用 default 镜像,配置环境变量
hai-cli python bert.py -c large.yml ++ --suspend_seconds 100  # 本地模拟100秒后打断
hai-cli bash¶
Usage:
hai-cli bash <experiment.sh> [<experiment_params>...]                        # 在本地运行,等同 bash
hai-cli bash <experiment.sh> [<experiment_params>...] -- [CLUSTER_OPTIONS]   # 提交任务到萤火二号运行
hai-cli bash <experiment.sh> [<experiment_params>...] ++ [SIMULATE_OPTIONS]  # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
- --name <name>- 指定任务的名字,不指定的话,不填默认为文件名 
- -n, --nodes <nodes>- 用多少个节点跑,必填 
- -i, --image <image>- 使用哪个镜像跑任务, 默认采用当前镜像,否则内部用户默认cuda_11,外部用户默认 ubuntu2024-cu113-ext, 也可以通过 hfai images 自定义镜像 
- -e, --environments <environments>- 任务运行中需要的环境变量,举例,-e A=X -e B=Y; 则定义了 A, B 两个环境变量 
- -f, --follow- 是否追加查看日志 - 默认值: False 
- --no_inherit- 上传到集群的任务是否使用当前的hf_env环境 - 默认值: False 
- --options <options>- 指定任务的一些可选项,具体看 Extra Cluster Options 
Simulate Options
- -ss, --suspend_seconds <suspend_seconds>- 模拟任务在多少秒时候打断 
- -ls, --life_state <life_state>- 传入任务的 whole_life_state flag 值 
Environment Variables
- HF_ENV_NAME=<var>用于显示指定在萤火上以什么环境运行, 可选萤火内建的:py38-202111, 或用户自建的虚拟环境
- HF_ENV_OWNER=<var>若使用他人构建的虚拟环境,需要指定该环境的所属者,可以通过 haienv list 查看
Workspace Options
- --force- push时, 是否强制推送并覆盖远端目录 - 默认值: False 
- --no_checksum- push时, 是否对文件禁用checksum - 默认值: False 
- --no_hfignore- push时, 是否忽略.hfignore规则 - 默认值: False 
- --no_zip- push时, 是否禁用workspace打包上传 
- --no_diff- push时, 是否禁用差量上传, 如是, 本地和远端不一致文件将被强制覆盖, 默认值为False 
- --list_timeout <list_timeout>- push时, 遍历集群工作区的超时时间, 单位(s) - 默认值: 300 
- --sync_timeout <sync_timeout>- push时, 从云端同步到集群的连接超时时间, 单位(s) - 默认值: 1800 
- --cloud_connect_timeout <cloud_connect_timeout>- push时, 从本地上传分片到云端的超时时间, 单位(s) - 默认值: 120 
- --token_expires <token_expires>- push时, 从本地上传到云端的sts token有效时间, 单位(s) - 默认值: 1800 
- --part_mb_size <part_mb_size>- push时, 从本地上传到云端的分片大小, 单位(MB) - 默认值: 100 
- --proxy <proxy>- push时, 从本地上传到云端时使用的代理url 
Arguments
- experiment.sh- 远程运行的脚本 
- experiment_params...- 远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致 
Examples
hai-cli bash bert.sh -c large.yml -- -n 10  # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hai-cli bash bert.sh -c large.yml -- -n 1  # 使用萤火内建的 py38-202111 环境运行
hai-cli bash bert.sh -c large.yml  # 本地运行
hai-cli bash bert.sh -c large.yml -- --nodes 1  # 使用萤火一节点
hai-cli bash bert.sh -c large.yml -- -n 1 -i default -e A=B -e C=D  # 使用 default 镜像,配置环境变量
hai-cli bash bert.sh -c large.yml ++ --suspend_seconds 100  # 本地模拟100秒后打断
hai-cli exec¶
Usage:
hai-cli exec <experiment.exe> [<experiment_params>...]                        # 在本地运行,等同 exec
hai-cli exec <experiment.exe> [<experiment_params>...] -- [CLUSTER_OPTIONS]   # 提交任务到萤火二号运行
hai-cli exec <experiment.exe> [<experiment_params>...] ++ [SIMULATE_OPTIONS]  # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
- --name <name>- 指定任务的名字,不指定的话,不填默认为文件名 
- -n, --nodes <nodes>- 用多少个节点跑,必填 
- -i, --image <image>- 使用哪个镜像跑任务, 默认采用当前镜像,否则内部用户默认cuda_11,外部用户默认 ubuntu2024-cu113-ext, 也可以通过 hfai images 自定义镜像 
- -e, --environments <environments>- 任务运行中需要的环境变量,举例,-e A=X -e B=Y; 则定义了 A, B 两个环境变量 
- -f, --follow- 是否追加查看日志 - 默认值: False 
- --no_inherit- 上传到集群的任务是否使用当前的hf_env环境 - 默认值: False 
- --options <options>- 指定任务的一些可选项,具体看 Extra Cluster Options 
Simulate Options
- -ss, --suspend_seconds <suspend_seconds>- 模拟任务在多少秒时候打断 
- -ls, --life_state <life_state>- 传入任务的 whole_life_state flag 值 
Environment Variables
- HF_ENV_NAME=<var>用于显示指定在萤火上以什么环境运行, 可选萤火内建的:py38-202111, 或用户自建的虚拟环境
- HF_ENV_OWNER=<var>若使用他人构建的虚拟环境,需要指定该环境的所属者,可以通过 haienv list 查看
Workspace Options
- --force- push时, 是否强制推送并覆盖远端目录 - 默认值: False 
- --no_checksum- push时, 是否对文件禁用checksum - 默认值: False 
- --no_hfignore- push时, 是否忽略.hfignore规则 - 默认值: False 
- --no_zip- push时, 是否禁用workspace打包上传 
- --no_diff- push时, 是否禁用差量上传, 如是, 本地和远端不一致文件将被强制覆盖, 默认值为False 
- --list_timeout <list_timeout>- push时, 遍历集群工作区的超时时间, 单位(s) - 默认值: 300 
- --sync_timeout <sync_timeout>- push时, 从云端同步到集群的连接超时时间, 单位(s) - 默认值: 1800 
- --cloud_connect_timeout <cloud_connect_timeout>- push时, 从本地上传分片到云端的超时时间, 单位(s) - 默认值: 120 
- --token_expires <token_expires>- push时, 从本地上传到云端的sts token有效时间, 单位(s) - 默认值: 1800 
- --part_mb_size <part_mb_size>- push时, 从本地上传到云端的分片大小, 单位(MB) - 默认值: 100 
- --proxy <proxy>- push时, 从本地上传到云端时使用的代理url 
Arguments
- experiment.exe- 远程运行的脚本 
- experiment_params...- 远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致 
Examples
hai-cli exec bert.exe -c large.yml -- -n 10  # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hai-cli exec bert.exe -c large.yml -- -n 1  # 使用萤火内建的 py38-202111 环境运行
hai-cli exec bert.exe -c large.yml  # 本地运行
hai-cli exec bert.exe -c large.yml -- --nodes 1  # 使用萤火一节点
hai-cli exec bert.exe -c large.yml -- -n 1 -i default -e A=B -e C=D  # 使用 default 镜像,配置环境变量
hai-cli exec bert.exe -c large.yml ++ --suspend_seconds 100  # 本地模拟100秒后打断
hai-cli run¶
根据 yaml 文件来运行一个任务,可以通过参数来覆盖配置; nodes、group、priority 参数可以覆盖 yml 里面的配置
Usage:
hai-cli run <experiment.yml> [OPTIONS]
Options:
- -f, --follow- 追加查看日志 
- -n, --nodes <nodes>- 用多少个节点跑 
- -g, --group <group>- 任务跑在哪个分组 
- -p, --priority <priority>- 任务优先级,从低到高: 20, 30, 40, 50 
Arguments
- experiment.yml- 创建任务的任务配置文件