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