該組件實現的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。