Shortcuts

任务管理

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>

    任务优先级,从低到高: 0, 10, 20, 30, 40, 50, 外部用户不用填,使用默认优先级

  • -i, --image <image>

    使用哪个镜像跑任务, 不填默认是我们内建的 ubuntu2024-cu113-ext, 也可以通过 hfai images 自定义镜像

  • -e, --environments <environments>

    任务运行中需要的环境变量,举例,-e A=X -e B=Y; 则定义了 A, B 两个环境变量

  • --detach

    是否在后台启动任务

  • -f, --force

    push时, 是否强制推送并覆盖远端目录, 默认值为False

Simulate Options

  • -ss, --suspend_seconds <suspend_seconds>

    模拟任务在多少秒时候打断

  • -ls, --life_state <life_state>

    传入任务的 whole_life_state flag 值

  • --no_inherit

    上传到集群的任务是否使用当前的hf_env环境(默认为使用)

  • --no_checksum

    push时, 是否对文件禁用checksum, 默认值为False

  • --no_zip

    push时, 是否禁用workspace打包上传, 默认值为False

  • --no_diff

    push时, 是否禁用差量上传, 如是, 本地和远端不一致文件将被强制覆盖, 默认值为False

  • --list_timeout <list_timeout>

    push时, 遍历集群工作区的超时时间, 单位(s)

    default

    300

  • --sync_timeout <sync_timeout>

    push时, 从oss同步到集群的超时时间, 单位(s)

    default

    1800

  • --oss_timeout <oss_timeout>

    push时, 从本地上传分片到oss的超时时间, 单位(s)

    default

    120

  • --token_expires <token_expires>

    push时, 从本地上传到oss的sts token有效时间, 单位(s)

    default

    1800

  • --part_mb_size <part_mb_size>

    push时, 从本地上传到oss的分片大小, 单位(MB)

    default

    100

Arguments

  • experiment.py

    远程运行的脚本

  • experiment_params...

    远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致

Examples

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 -g jd_a100 -p 40
hfai python bert.py -c large.yml ++ --suspend_seconds 100 --life_state 1
hfai python bert.py -c large.yml ++ -ss 100 -ls 1

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>

    任务优先级,从低到高: 0, 10, 20, 30, 40, 50, 外部用户不用填,使用默认优先级

  • -i, --image <image>

    使用哪个镜像跑任务, 不填默认是我们内建的 ubuntu2024-cu113-ext, 也可以通过 hfai images 自定义镜像

  • -e, --environments <environments>

    任务运行中需要的环境变量,举例,-e A=X -e B=Y; 则定义了 A, B 两个环境变量

  • --detach

    是否在后台启动任务

  • -f, --force

    push时, 是否强制推送并覆盖远端目录, 默认值为False

Simulate Options

  • -ss, --suspend_seconds <suspend_seconds>

    模拟任务在多少秒时候打断

  • -ls, --life_state <life_state>

    传入任务的 whole_life_state flag 值

  • --no_inherit

    上传到集群的任务是否使用当前的hf_env环境(默认为使用)

  • --no_checksum

    push时, 是否对文件禁用checksum, 默认值为False

  • --no_zip

    push时, 是否禁用workspace打包上传, 默认值为False

  • --no_diff

    push时, 是否禁用差量上传, 如是, 本地和远端不一致文件将被强制覆盖, 默认值为False

  • --list_timeout <list_timeout>

    push时, 遍历集群工作区的超时时间, 单位(s)

    default

    300

  • --sync_timeout <sync_timeout>

    push时, 从oss同步到集群的超时时间, 单位(s)

    default

    1800

  • --oss_timeout <oss_timeout>

    push时, 从本地上传分片到oss的超时时间, 单位(s)

    default

    120

  • --token_expires <token_expires>

    push时, 从本地上传到oss的sts token有效时间, 单位(s)

    default

    1800

  • --part_mb_size <part_mb_size>

    push时, 从本地上传到oss的分片大小, 单位(MB)

    default

    100

Arguments

  • experiment.sh

    远程运行的脚本

  • experiment_params...

    远程运行的脚本脚本需要的一系列参数,可输入多项,与本地运行的时候一致

Examples

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 -g jd_a100 -p 40
hfai bash bert.sh -c large.yml ++ --suspend_seconds 100 --life_state 1
hfai bash bert.sh -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

Arguments

  • experiment.yml

    创建任务的任务配置文件

hfai list

列出用户任务列表, 用户要查看第几页的任务列表

Usage:

hfai list [OPTIONS]

Options:

  • -p, --page <page>

    列出用户任务列表, 用户要查看第几页的任务列表

  • -ps, --page_size <page_size>

    用户指定一页的任务列表有多少条任务

hfai logs

查看任务日志

Usage:

hfai logs <experiment> [OPTIONS]

Options:

  • -f, --follow

    追加查看日志

  • -r, --rank <rank>

    指定查看第几个节点的日志

  • -t, --exp_type <exp_type>

    配合 <experiment> 使用,默认 auto 会尝试解析

Arguments

  • experiment

    用于检索的任务,可以是任务名、是任务ID,也可以是提交的任务配置文件

hfai status

查询任务状态

Usage:

hfai status <experiment> [OPTIONS]

Options:

  • -j, --json

    将任务状态转换成 json 格式,是否以json形式查看

  • -t, --exp_type <exp_type>

    配合 <experiment> 使用,默认 auto 会尝试解析

Arguments

  • experiment

    用于检索的任务,可以是任务名、是任务ID,也可以是提交的任务配置文件

hfai stop

关闭任务状态

Usage:

hfai stop <experiment> [OPTIONS]

Options:

  • -t, --exp_type <exp_type>

    配合 <experiment> 使用,默认 auto 会尝试解析

Arguments

  • experiment

    用于检索的任务,可以是任务名、是任务ID,也可以是提交的任务配置文件