运行命令¶
hfai bash¶
Usage:
hfai bash <experiment.sh> [<experiment_params>...] # 在本地运行,等同 bash
hfai bash <experiment.sh> [<experiment_params>...] -- [CLUSTER_OPTIONS] # 提交任务到萤火二号运行
hfai bash <experiment.sh> [<experiment_params>...] ++ [SIMULATE_OPTIONS] # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
--name <name>
指定任务的名字,不指定的话,不填默认为文件名
-n, --nodes <nodes>
用多少个节点跑,必填
-i, --image <image>
使用哪个镜像跑任务, 外部用户不填默认是我们内建的 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时, 从oss同步到集群的超时时间, 单位(s)
默认值: 1800
--oss_timeout <oss_timeout>
push时, 从本地上传分片到oss的超时时间, 单位(s)
默认值: 120
--token_expires <token_expires>
push时, 从本地上传到oss的sts token有效时间, 单位(s)
默认值: 1800
--part_mb_size <part_mb_size>
push时, 从本地上传到oss的分片大小, 单位(MB)
默认值: 100
Arguments
experiment.sh
远程运行的脚本
experiment_params...
远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致
Examples
hfai bash bert.sh -c large.yml -- -n 10 # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hfai bash bert.sh -c large.yml -- -n 1 # 使用萤火内建的 py38-202111 环境运行
hfai bash bert.sh -c large.yml # 本地运行
hfai bash bert.sh -c large.yml -- --nodes 1 # 使用萤火一节点
hfai bash bert.sh -c large.yml -- -n 1 -i default -e A=B -e C=D # 使用 default 镜像,配置环境变量
hfai bash bert.sh -c large.yml ++ --suspend_seconds 100 # 本地模拟100秒后打断
hfai exec¶
Usage:
hfai exec <experiment.exe> [<experiment_params>...] # 在本地运行,等同 exec
hfai exec <experiment.exe> [<experiment_params>...] -- [CLUSTER_OPTIONS] # 提交任务到萤火二号运行
hfai exec <experiment.exe> [<experiment_params>...] ++ [SIMULATE_OPTIONS] # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
--name <name>
指定任务的名字,不指定的话,不填默认为文件名
-n, --nodes <nodes>
用多少个节点跑,必填
-i, --image <image>
使用哪个镜像跑任务, 外部用户不填默认是我们内建的 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时, 从oss同步到集群的超时时间, 单位(s)
默认值: 1800
--oss_timeout <oss_timeout>
push时, 从本地上传分片到oss的超时时间, 单位(s)
默认值: 120
--token_expires <token_expires>
push时, 从本地上传到oss的sts token有效时间, 单位(s)
默认值: 1800
--part_mb_size <part_mb_size>
push时, 从本地上传到oss的分片大小, 单位(MB)
默认值: 100
Arguments
experiment.exe
远程运行的脚本
experiment_params...
远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致
Examples
hfai exec bert.exe -c large.yml -- -n 10 # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hfai exec bert.exe -c large.yml -- -n 1 # 使用萤火内建的 py38-202111 环境运行
hfai exec bert.exe -c large.yml # 本地运行
hfai exec bert.exe -c large.yml -- --nodes 1 # 使用萤火一节点
hfai exec bert.exe -c large.yml -- -n 1 -i default -e A=B -e C=D # 使用 default 镜像,配置环境变量
hfai exec bert.exe -c large.yml ++ --suspend_seconds 100 # 本地模拟100秒后打断
hfai python¶
Usage:
hfai python <experiment.py> [<experiment_params>...] # 在本地运行,等同 python
hfai python <experiment.py> [<experiment_params>...] -- [CLUSTER_OPTIONS] # 提交任务到萤火二号运行
hfai python <experiment.py> [<experiment_params>...] ++ [SIMULATE_OPTIONS] # 在本地模拟运行,会提供萤火二号一致的环境变量和表现
Cluster Options
--name <name>
指定任务的名字,不指定的话,不填默认为文件名
-n, --nodes <nodes>
用多少个节点跑,必填
-i, --image <image>
使用哪个镜像跑任务, 外部用户不填默认是我们内建的 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时, 从oss同步到集群的超时时间, 单位(s)
默认值: 1800
--oss_timeout <oss_timeout>
push时, 从本地上传分片到oss的超时时间, 单位(s)
默认值: 120
--token_expires <token_expires>
push时, 从本地上传到oss的sts token有效时间, 单位(s)
默认值: 1800
--part_mb_size <part_mb_size>
push时, 从本地上传到oss的分片大小, 单位(MB)
默认值: 100
Arguments
experiment.py
远程运行的脚本
experiment_params...
远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致
Examples
hfai python bert.py -c large.yml -- -n 10 # 使用萤火十个节点
HF_ENV_NAME=py38-202111 hfai python bert.py -c large.yml -- -n 1 # 使用萤火内建的 py38-202111 环境运行
hfai python bert.py -c large.yml # 本地运行
hfai python bert.py -c large.yml -- --nodes 1 # 使用萤火一节点
hfai python bert.py -c large.yml -- -n 1 -i default -e A=B -e C=D # 使用 default 镜像,配置环境变量
hfai python bert.py -c large.yml ++ --suspend_seconds 100 # 本地模拟100秒后打断
hfai run¶
根据 yaml 文件来运行一个任务,可以通过参数来覆盖配置; nodes、group、priority 参数可以覆盖 yml 里面的配置
Usage:
hfai run <experiment.yml> [OPTIONS]
Options:
-f, --follow
追加查看日志
-n, --nodes <nodes>
用多少个节点跑
-g, --group <group>
任务跑在哪个分组
-p, --priority <priority>
任务优先级,从低到高: 20, 30, 40, 50
Arguments
experiment.yml
创建任务的任务配置文件