MaxCompute 离线预测¶
前置条件:¶
模型训练
模型导出
离线预测¶
drop table if exists ctr_test_output;
pai -name easy_rec_ext
-Dcmd=predict
-Dcluster='{"worker" : {"count":5, "cpu":1600, "memory":40000, "gpu":100}}'
-Darn=acs:ram::1217060697188167:role/ev-ext-test-oss
-Dbuckets=oss://easyrec/
-Dsaved_model_dir=oss://easyrec/easy_rec_test/experiment/ctr_export/1597299619
-Dinput_table=odps://pai_online_project/tables/test_longonehot_4deepfm_20
-Doutput_table=odps://pai_online_project/tables/ctr_test_output
-Dexcluded_cols=label
-Dreserved_cols=ALL_COLUMNS
-Dbatch_size=1024
-DossHost=oss-cn-beijing-internal.aliyuncs.com;
save_modeld_dir: 导出的模型目录
output_table: 输出表,不需要提前创建,会自动创建
excluded_cols: 预测模型不需要的columns,比如labels
selected_cols: 预测模型需要的columns,selected_cols和excluded_cols不能同时使用
reserved_cols: 需要copy到output_table的columns, 和excluded_cols/selected_cols不冲突,如果指定ALL_COLUMNS,则所有的column都被copy到output_table
batch_size: minibatch的大小
-Darn: rolearn 注意这个的arn要替换成客户自己的。可以从dataworks的设置中查看arn。
-DossHost: ossHost地址
-Dbuckets: config所在的bucket和保存模型的bucket; 如果有多个bucket,逗号分割
如果是pai内部版,则不需要指定arn和ossHost, arn和ossHost放在-Dbuckets里面
-Dbuckets=oss://easyrec/?role_arn=acs:ram::xxx:role/ev-ext-test-oss&host=oss-cn-beijing-internal.aliyuncs.com
output_cols: output_name和类型, 如:
-Doutput_cols=”probs double”
如果有多列,用逗号分割, -Doutput_cols=’probs double,embedding string’
model_outputs: 导出saved_model时模型的导出字段,可以不指定,默认和output_cols一致
如果output_cols和model_outputs不一致时需要指定,如:
-Doutput_cols='score double' -Dmodel_outputs='probs'
如果有多列,用逗号分割
-Doutput_cols='scores double,v string' -Dmodel_outputs='probs,embedding'
ctr模型(num_class=1),导出字段:logits、probs,对应: sigmoid之前的值/概率
回归模型,导出字段: y,对应: 预测值
多分类模型,导出字段: logits/probs/y,对应: softmax之前的值/概率/类别id
lifecyle: output_table的lifecyle
输出表schema:¶
包含reserved_cols和output_cols