模型训练

该组件实现的EasyRec模型训练功能。

前提条件

已开通OSS并完成授权,详情请参见开通OSS服务云产品依赖与授权:Designer

组件配置

您可以使用以下任意一种方式,配置模型训练组件参数。

可视化配置参数

  • 输入桩

输入桩(从左到右)

建议上游组件

对应PAI命令参数

是否必选

负采样item特征表

说明

一般在DSSM等特定算法中使用负采样参数。

data_config.negative_sampler.input_path

easyrec配置文件

说明

需要配置文件所在的完整的OSS路径。

config

训练表

train_tables

评估表

eval_tables

fine_tune_checkpoint

说明

模型基于该Checkpoint继续训练。

  • 数据类型:OSS存储的模型

  • 支持的组件:OSS数据

edit_config_json中的train_config.fine_tune_checkpoint

分箱表

boundary_table

  • 组件参数

页签

参数

是否必选

描述

对应PAI命令参数

默认值

参数设置

模型路径

模型存储路径。

model_dir

工作流数据存储路径

EasyRec配置文件

如果不从输入桩输入config文件,可参考model_config,在下方编辑框填写config配置,保存至指定的OSS路径下。

config

选择用于训练和评估的目标列

选中是否是RTP FG模式时,支持配置该参数。

指定选择用于训练和评估的目标列。

拼装成selected_cols参数

用于训练和评估的权重列

选中是否是RTP FG模式时,支持配置该参数。

指定选择用于训练和评估的权重列。

用于训练和评估的特征列

选中是否是RTP FG模式时,支持配置该参数。

指定选择用于训练和评估的特征列。

指定算法版本

选中高级选项后,可以自定义EasyRec的执行版本。

  1. 首先参考文档EasyRec版本更新,生成一个EasyRecTAR包。

  2. 上传对应版本的TAR包到OSS路径,具体操作,请参见控制台上传文件

  3. 在这个参数中选中上传的TAR文件。

script

超参配置edit_config_json

选中高级选项后,将需要添加到EasyRec配置文件里的内容写到超参配置里,组件会将超参配置的内容,添加到EasyRec配置文件中。

edit_config_json

执行调优

ps数量

PS节点的数量。

完整的执行调优参数会拼装成cluster参数

2

ps CPU数量

PS申请的CPU数量,取值为1表示一个CPU核。

10

ps Memory数量(MB)

PS申请的内存,取值为100表示100 MB。

40000

Worker数量

Worker节点的数量。

6

Worker CPU数量

Worker申请的CPU数量,取值为1表示一个CPU核。

8

Worker Memory用量(单位为MB)

Worker申请的内存,取值为100表示100 MB。

40000

Worker GPU卡数

EasyRec训练中,一般不需要使用GPU。

0

PAI命令及说明

PAI -project algo_public -name easy_rec_ext 
    -Darn="acs:ram::xxxx:role/aliyunodpspaidefaultrole" 
    -Dbuckets="oss://rec_sln_demo/" 
    -Dcluster="{\"ps\": {\"count\": 2, \"cpu\": 1000, \"memory\": 40000}, \"worker\": {\"count\": 6, \"cpu\": 800, \"gpu\": 0, \"memory\": 40000}}" 
    -Dcmd="train" 
    -Dconfig="oss://rec_sln_demo/EasyRec/deploy/rec_sln_demo_dssm_recall_v1/rec_sln_demo_dssm_recall_v1.config" 
    -Deval_tables="odps://pai_hangzhou/tables/pai_temp_flow_26un8zq7v4goadi373_node_39w13qw9osm9rdbu0h_outputTable" 
    -Dlifecycle="28" 
    -Dmodel_dir="oss://rec_sln_demo/EasyRec/deploy/rec_sln_demo_dssm_recall_v1/20230425" 
    -DossHost="oss-cn-hangzhou-internal.aliyuncs.com" 
    -Dscript="oss://rec_sln_demo/easy_rec_ext_0.6.1_res.tar.gz" 
    -Dselected_cols="is_click,features" 
    -Dtables="odps://pai_hangzhou/tables/pai_temp_flow_26un8zq7v4goadi373_node_4ijqwcg7upzteu5036_outputTable,odps://pai_hangzhou/tables/pai_temp_flow_26un8zq7v4goadi373_node_39w13qw9osm9rdbu0h_outputTable,odps://pai_hangzhou/tables/pai_temp_flow_fty24i21e9dzvzj6a0_node_svxd0bqu2x7ep8furu_outputTable" 
    -Dtrain_tables="odps://pai_hangzhou/tables/pai_temp_flow_26un8zq7v4goadi373_node_4ijqwcg7upzteu5036_outputTable"
    -Dedit_config_json="{\"train_config.fine_tune_checkpoint\": \"oss://rec_sln_demo/EasyRec/deploy/rec_sln_demo_dssm_recall_v1/20230405/\", \"data_config.negative_sampler.input_path\": \"odps://pai_hangzhou/tables/pai_temp_flow_fty24i21e9dzvzj6a0_node_svxd0bqu2x7ep8furu_outputTable\"}" ;

参数名称

是否必选

描述

cmd

cmd配置为train时,表示执行模型训练。

config

训练用的EasyRec配置文件,配置文件所在的OSS全路径。

train_tables

训练表,格式为odps://{project}/tables/{表名},多个训练表之间使用半角逗号(,)分隔。

eval_tables

评估表,格式为odps://{project}/tables/{表名},多个评估表之间使用半角逗号(,)分隔。

arn

指定资源组授权,您可以登录PAI控制台,在开通和授权>全部云产品依赖页面的Designer区域,单击操作列下的查看授权信息,获取arn。

ossHost

OSS各地域Endpoint。如何获取Endpoint,请参见访问域名和数据中心

buckets

config所在的Bucket和保存模型的Bucket。如果有多个bucket,使用半角逗号(,)分隔,例如oss://xxxx/,oss://xxxx/

model_dir

模型目录,如果指定了model_dir将会覆盖Config里面的model_dir,一般在周期性调度的时候使用。

edit_config_json

使用JSON的方式对config的一些字段进行修改,例如:edit_config_json="{\"train_config.fine_tune_checkpoint\": \"oss://xxx/\"}"

script

指定EasyRec算法TAR文件。

selected_cols

表里面用于训练和评估的列, 有助于提高训练速度。

使用示例

  1. 准备以下数据集:

    • train: pai_online_project.easyrec_demo_taobao_train_data

    • test: pai_online_project.easyrec_demo_taobao_test_data

    说明

    原则上这两张表是您自己的ODPS表,为了方便测试,以上提供的两张表在任何地方都可以访问。

  2. 创建如下工作流。image..png

    区域

    描述

    配置读数据表-1表名参数为pai_online_project.easyrec_demo_taobao_train_data训练表

    配置读数据表-2表名参数为pai_online_project.easyrec_demo_taobao_test_data测试表

    • 上传configOSS上,并在参数EasyRec配置文件上选择该文件。

    • 在参数模型路径上选择模型存储路径。

  3. 运行工作流结束后,您可以查看输出的模型文件。

    您可以在模型路径参数配置的OSS路径下查看输出的模型文件。

  4. 查看Logview并进行日志分析。

    运行EasyRec命令时,Designer会打印Logview。您可以右键单击模型训练组件,在快捷菜单,单击查看日志,通过Logview快速查看模型训练效果或定位错误。

image..png

Worker运行页面,可以根据需要选择查看的Task实例及Worker对应的实例。

image..png

其中:

  • worker 0为训练worker(worker 0、worker 2~worker 7均为训练worker),单击StdErr列下的图标,即可查看训练进程。

  • worker1为评估worker,单击StdErr列下的图标,即可查看模型在评估集上的指标。

更完整的使用方式参考推荐算法定制-排序节点8_rec_sln_demo_rec_sln_demo_sorting_v2_train和推荐算法定制-向量召回节点12_rec_sln_demo_dssm_recall_v1_train。