PAI-TF是深度学习计算框架,支持多种模型训练。本文为您介绍PAI-TF任务涉及的命令参数和相关IO参数。

PAI-TF命令参数

您可以在Dataworks SQL节点及MaxCompute的命令行客户端使用PAI命令发起任务,PAI命令及其参数如下。
# 实际使用中,需要根据业务需求设置参数。
pai -name tensorflow1120_ext
    -project algo_public
    -Dscript= 'oss://<bucket_name>.<oss_host>.aliyuncs.com/*.tar.gz'
    -DentryFile='entry_file.py'
    -Dbuckets='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
    -Dtables='odps://prj_name/tables/table_name'
    -Doutputs='odps://prj_name/tables/table_name'
    -DcheckpointDir='oss://<bucket_name>.<oss_host>.aliyuncs.com/<path>'
    -Dcluster="{\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}"
    -Darn="acs:ram::******:role/aliyunodpspaidefaultrole"
    -DossHost="oss-cn-beijing-internal.aliyuncs.com"
参数说明如下表所示。
参数 描述 示例 默认值 是否必选
script 用于指定要执行的TF算法脚本,script的格式为file:///path/to/fileproject_name/resources/resource_namefile:///path/to/file为绝对路径。
TensorFlow模型文件(python)。文件类型如下:
  • 本地文件
  • 本地的tar包(gzip压缩,扩展名为tar.gz)
  • python文件
格式为oss://..aliyuncs.com/.tar.gzoss://..aliyuncs.com/*.py
oss://demo-yuze.oss-cn-beijing-internal.aliyuncs.com/deepfm/deepfm.tar.gz
entryFile 如果script是一个tar包,则需通过该参数指定入口脚本。 main.py 如果script是单个脚本,则无需配置该参数。
buckets 输入bucket。

如果使用多个bucket,则需要以逗号隔开,每个bucket须以/结尾。

oss://..aliyuncs.com/
tables 输入表,如果使用多个表,则需要以逗号隔开。 odps:///tables/
outputs 输出表,如果使用多个表,则需要以逗号隔开。 odps:///tables/“”odps:///tables/
gpuRequired 该参数决定运行script参数所指定的训练脚本的服务器是否需要GPU。

默认为一张卡,200表示申请2张卡。该功能只适用于单机训练任务,多机任务请参考Cluster。如果想运行单机CPU,可以将gpuRequired参数值设置为0(该功能只支持TensorFlow1120)。

100 yes
说明 表示使用PAI命令提交训练任务后,PAI命令中指定的训练脚本将在有GPU的服务器上执行。
checkpointDir TF checkpoint目录 oss://..aliyuncs.com/
cluster 分布式运行信息,详情请参见下面的分布式命令参数表格 {\"ps\":{\"count\":1},\"worker\":{\"count\":2,\"gpu\":100}}
enableDynamicCluster 指定是否打开单个worker节点failover的功能。

当该参数设置为true时,worker节点出现故障时会被重新拉起,训练job不会因此而失败。

  • true
  • false
false
jobName 您需要指定实验名称,用于在后期更好的分析历史所有该实验的性能指标。

参数建议是一个有意义的字符串,避免为test之类的字符串。

jk_wdl_online_job
maxHungTimeBeforeGCInSeconds 提交作业时新增-DmaxHungTimeBeforeGCInSeconds参数,用于设置自动回收需要观察到GPU挂起状态的最大持续时间。

该参数设置为0时,则关闭该功能。

3600 3600
分布式PAI-TF支持cluster参数,您可以通过该参数指定PS和Worker数目。cluster的格式为JSON,引号需要转义,示例如下。
{
  "ps": {
    "count": 2
  },
  "worker": {
    "count": 4
  }
}
其中JSON包含两个key,即psworker,每个key又分别包含如下信息。
参数 描述 默认值 是否必选
count psworker的数量。
gpu psworker申请的GPU数量,取值100表示一张GPU卡。如果workergpu配置为0,则系统会将其自动配置为100,以保障调度。 ps对应的gpu默认值为0,worker对应的gpu默认值为100。
cpu psworker申请的CPU数量,取值100表示一张CPU卡。 600
memory psworker申请的内存,取值100表示100 MB。 30000

IO参数

IO相关参数如下表所示。
参数 描述
tables 用于指定需要读取的Table路径。
outputs 用于指定写入的Table路径,如果需要指定多个路径,可以使用逗号分割。
  • 非分区表Table路径格式:odps://<prj_name>/tables/<table_name>
  • 分区表Table路径格式:odps://<proj_name>tables/<table_name>/<pt_key1=v1>
  • 多级分区表Table路径格式:odps://<prj_name>tables/<table_name>/<pt_key1=v1>/<pt_key2=v2>
buckets 用于指定算法将要读取的OSS bucket。

与其他MaxCompute的IO不同,使用OSS需要配置role_arnhost

您可以登录PAI Console,进入进入机器学习,在机器学习PAI页面的左侧导航栏,单击设置,单击基本设置页面的OSS访问授权,获取role_arn

checkpointDir 用于指定算法写入的OSS bucket。