运行命令¶
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>
用多少个节点跑,必填
-g, --group <group>
任务跑在哪个分组,不填默认为GPU分组
-p, --priority <priority>
任务优先级,内部用户选填从低到高: 20, 30, 40, 50, 外部用户不用填,使用默认优先级
-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
--git_push
是否将当前工作目录的改动临时push到远端临时分支用于启动任务, 更多细节参考 help 信息
默认值: False
--options <options>
指定任务的一些可选项,具体看 Extra Cluster Options
--input <input>
任务输入artifact,格式为name:version
--output <output>
任务输出artifact, 格式为name:version
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
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 --group jd_a100 --priority 40 # 使用萤火一节点,配置节点组,优先级(外部用户不用设置)
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 bash bert.sh -c large.yml ++ -ss 100 -ls 1
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>
用多少个节点跑,必填
-g, --group <group>
任务跑在哪个分组,不填默认为GPU分组
-p, --priority <priority>
任务优先级,内部用户选填从低到高: 20, 30, 40, 50, 外部用户不用填,使用默认优先级
-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
--git_push
是否将当前工作目录的改动临时push到远端临时分支用于启动任务, 更多细节参考 help 信息
默认值: False
--options <options>
指定任务的一些可选项,具体看 Extra Cluster Options
--input <input>
任务输入artifact,格式为name:version
--output <output>
任务输出artifact, 格式为name:version
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
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 --group jd_a100 --priority 40 # 使用萤火一节点,配置节点组,优先级(外部用户不用设置)
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 exec bert.exe -c large.yml ++ -ss 100 -ls 1
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>
用多少个节点跑,必填
-g, --group <group>
任务跑在哪个分组,不填默认为GPU分组
-p, --priority <priority>
任务优先级,内部用户选填从低到高: 20, 30, 40, 50, 外部用户不用填,使用默认优先级
-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
--git_push
是否将当前工作目录的改动临时push到远端临时分支用于启动任务, 更多细节参考 help 信息
默认值: False
--options <options>
指定任务的一些可选项,具体看 Extra Cluster Options
--input <input>
任务输入artifact,格式为name:version
--output <output>
任务输出artifact, 格式为name:version
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
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 --group jd_a100 --priority 40 # 使用萤火一节点,配置节点组,优先级(外部用户不用设置)
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 python bert.py -c large.yml ++ -ss 100 -ls 1
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
-i, --input <input>
任务输入artifact,格式为name:version
-o, --output <output>
任务输出artifact, 格式为name:version
Arguments
experiment.yml
创建任务的任务配置文件