该组件实现的EasyRec模型训练功能。
前提条件
已开通OSS并完成授权,详情请参见开通OSS服务和云产品依赖与授权:Designer。
组件配置
您可以使用以下任意一种方式,配置模型训练组件参数。
可视化配置参数
输入桩
输入桩(从左到右) | 建议上游组件 | 对应PAI命令参数 | 是否必选 |
负采样item特征表 说明 一般在DSSM等特定算法中使用负采样参数。 | data_config.negative_sampler.input_path | 否 | |
easyrec配置文件 |
说明 需要配置文件所在的完整的OSS路径。 | config | 否 |
训练表 | train_tables | 是 | |
评估表 | eval_tables | 是 | |
fine_tune_checkpoint 说明 模型基于该Checkpoint继续训练。 |
| 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的执行版本。
| 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 | 是 | 训练表,格式为 |
eval_tables | 是 | 评估表,格式为 |
arn | 是 | 指定资源组授权,您可以登录PAI控制台,在开通和授权>全部云产品依赖页面的Designer区域,单击操作列下的查看授权信息,获取arn。 |
ossHost | 是 | OSS各地域Endpoint。如何获取Endpoint,请参见访问域名和数据中心。 |
buckets | 是 | config所在的Bucket和保存模型的Bucket。如果有多个bucket,使用半角逗号(,)分隔,例如 |
model_dir | 是 | 模型目录,如果指定了model_dir将会覆盖Config里面的model_dir,一般在周期性调度的时候使用。 |
edit_config_json | 否 | 使用JSON的方式对config的一些字段进行修改,例如: |
script | 否 | 指定EasyRec算法TAR文件。 |
selected_cols | 否 | 表里面用于训练和评估的列, 有助于提高训练速度。 |
使用示例
准备以下数据集:
train: pai_online_project.easyrec_demo_taobao_train_data
test: pai_online_project.easyrec_demo_taobao_test_data
说明原则上这两张表是您自己的ODPS表,为了方便测试,以上提供的两张表在任何地方都可以访问。
创建如下工作流。
区域
描述
①
配置读数据表-1的表名参数为
pai_online_project.easyrec_demo_taobao_train_data训练表
。②
配置读数据表-2的表名参数为
pai_online_project.easyrec_demo_taobao_test_data测试表
。③
上传config到OSS上,并在参数EasyRec配置文件上选择该文件。
在参数模型路径上选择模型存储路径。
运行工作流结束后,您可以查看输出的模型文件。
您可以在模型路径参数配置的OSS路径下查看输出的模型文件。
查看Logview并进行日志分析。
运行EasyRec命令时,Designer会打印Logview。您可以右键单击模型训练组件,在快捷菜单,单击查看日志,通过Logview快速查看模型训练效果或定位错误。
在Worker运行页面,可以根据需要选择查看的Task实例及Worker对应的实例。
其中:
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。