在PAI-DLC环境训练EasyRec模型

更新时间:2025-02-11 02:54:46

1、进入阿里云人工智能平台PAI 分布式训练(DLC

2、创建任务

  • 填写镜像地址

区域

tf版本

资源

镜像地址

北京

tf1.12

cpu

mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py27-tf1.12-0.8.5

北京

tf1.15

cpu

mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py36-tf1.15-0.8.5

北京

tf2.12

cpu

mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py38-tf2.12-0.8.5

北京

tf2.12

gpu

mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py38-tf2.12-gpu-0.8.5

注意0.8.5指的是EasyRec版本。

  • 挂载OSS

OSS bucket 路径挂载在DLC上用于存储训练模型和config。如果训练数据在OSS上,也需要从OSS获取训练数据。如果训练数据在MaxCompute上,也可以直接从MaxCompute获取训练数据。

image

  • 任务命令

示例

cat  << EOF >> odps_conf
access_id=****************
access_key=****************
end_point=http://service.cn-hangzhou.maxcompute.aliyun.com/api

EOF

export ODPS_CONFIG_FILE_PATH=odps_conf
python -m easy_rec.python.train_eval --pipeline_config_path /mnt/data/dwd_avazu_ctr_deepmodel_ext.config --continue_train --train_input_path odps://pai_online_project/tables/dwd_avazu_ctr_deepmodel_train --eval_input_path odps://pai_online_project/tables/dwd_avazu_ctr_deepmodel_test --model_dir /mnt/data/dlc_demo/ --edit_config_json='{"data_config.num_epochs":1, "data_config.input_type":"OdpsInputV3"}'
  • 设置任务资源

根据数据量和模型大小选择适合的资源

根据MaxCompute训练的CU数量,选择核数相当的资源。或者参照下表进行估计

image

3、训练

配置完成点击完成就开始训练任务。

4、部署

训练模型成功,就可以将上面的DLC训练任务导入到DataWorks中做周期性调度,具体步骤如下:

步骤一:创建DLC任务

登录PAI控制台,进入分布式训练任务页面并创建DLC任务。

步骤二:创建PAI DLC节点

  1. 进入数据开发页面。

登录DataWorks控制台,单击左侧导航栏的数据建模与开发 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  1. 右键单击目标业务流程,选择新建节点 > 算法 > PAI DLC

  2. 新建节点对话框输入节点名称,单击确认,完成节点创建。后续您可在节点中进行对应任务的开发与配置。

在节点的编辑页面,从下拉列表中选择已创建的DLC任务。

任务载入后,DLC节点编辑器会根据PAI中该任务的配置生成相应节点代码,您可基于该代码编辑修改任务。更多详细内容,请参见开发PAI DLC任务

也可以直接编写DLC任务代码:

dlc submit tfjob \
    --name=dlc_test_clone${train_ymd} \
    --command='
cat  << EOF >> odps_conf
access_id=****************
access_key=****************
end_point=http://service.cn-hangzhou.maxcompute.aliyun.com/api

EOF

export ODPS_CONFIG_FILE_PATH=odps_conf
python -m easy_rec.python.train_eval \
--pipeline_config_path /mnt/data/dwd_avazu_ctr_deepmodel_ext.config \
--continue_train --train_input_path odps://pai_online_project/tables/dwd_avazu_ctr_deepmodel_train \
--eval_input_path odps://pai_online_project/tables/dwd_avazu_ctr_deepmodel_test \
--model_dir /mnt/data/dlc_demox${train_ymd}/ \
--edit_config_json='\''{"data_config.input_type":"OdpsInputV3"}'\''' \
    --workspace_id=${pai_workspace_id} \
    --priority=1 \
    --workers=3 \
    --worker_image=mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py36-tf1.15-0.8.5 \
    --worker_spec=ecs.g6.2xlarge \
    --ps=1 \
    --ps_image=mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py36-tf1.15-0.8.5 \
    --ps_spec=ecs.g6.2xlarge \
    --chief=true \
    --chief_image=mybigpai-public-registry.cn-beijing.cr.aliyuncs.com/easyrec/easyrec:py36-tf1.15-0.8.5 \
    --chief_spec=ecs.g6.large \
    --data_sources=${oss_sources_id}
  1. 说明

为避免使用DataWorks周期性调度DLC节点在PAI产生较多不易区分的同名任务,建议在任务名称中增加日期时间变量,并通过调度配置为该变量赋值时间调度参数,实现任务命名增加日期时间。详情请参见开发PAI DLC任务

步骤三:配置任务调度

单击节点编辑区域右侧的调度配置,在调度配置面板中,包含基础属性参数时间属性资源属性调度依赖等配置项。您可以在时间属性区域配置调度周期,后续DataWorks会根据配置的调度周期自动调度运行节点任务。详情请参见任务调度属性配置概述

说明

  • 您需设置节点的重跑属性和依赖的上游节点,才可提交节点。

  • 为避免使用DataWorks周期性调度DLC节点在PAI产生较多不易区分的同名任务,建议在DataWorks开发DLC任务时根据实际需要合理设置调度周期。

步骤四:调试任务代码

您可根据需要执行如下调试操作,查看任务是否符合预期。

  1. (可选)选择运行资源组、赋值自定义参数取值。

  • 单击工具栏的image.png图标,在参数对话框选择调试运行需使用的调度资源组。

  • 如您的任务代码中有使用调度参数变量,可在此处为变量赋值,用于调试。参数赋值逻辑详情请参见调度参数

  1. 保存并运行SQL语句。

单击工具栏的image.png图标,保存编写的SQL语句,单击image.png图标,运行创建的SQL任务。

  1. (可选)冒烟测试。

如您希望在开发环境进行冒烟测试,查看调度节点任务的执行是否符合预期,则可在节点提交时,或节点提交后执行冒烟测试,操作详情请参见执行冒烟测试

步骤五:提交发布任务

节点任务配置完成后,需执行提交发布操作,提交发布后节点即会根据调度配置内容进行周期性运行。

  1. 单击工具栏中的image.png图标,保存节点。

单击工具栏中的image.png图标,提交节点任务。

提交时需在提交新版本对话框中输入变更描述,并根据需要选择是否在节点提交后执行代码评审。

  1. 说明

  • 您需设置节点的重跑属性和依赖的上游节点,才可提交节点。

  • 代码评审可对任务的代码质量进行把控,防止由于任务代码有误,未经审核直接发布上线后出现任务报错。如进行代码评审,则提交的节点代码必须通过评审人员的审核才可发布,详情请参见代码评审

如您使用的是标准模式的工作空间,任务提交成功后,需单击节点编辑页面右上方的发布,将该任务发布至生产环境执行,操作请参见发布任务

步骤六:查看操作日志

任务提交发布后,会基于节点的配置周期性运行,您可单击编辑界面右上角的运维,进入运维中心查看周期任务的调度运行情况。详情请参见查看并管理周期任务

  • 本页导读 (1)
  • 1、进入阿里云人工智能平台PAI 分布式训练(DLC)
  • 2、创建任务
  • 3、训练
  • 4、部署
  • 步骤一:创建DLC任务
  • 步骤二:创建PAI DLC节点
  • 步骤三:配置任务调度
  • 步骤四:调试任务代码
  • 步骤五:提交发布任务
  • 步骤六:查看操作日志