Shortcuts

运行命令

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

    创建任务的任务配置文件