EMR-HPO

GetStarted

  • 下载安装automl包

wget http://easyrec.oss-cn-beijing.aliyuncs.com/releases/pai_automl-0.0.1rc1-py3-none-any.whl
pip install pai_automl-0.0.1rc1-py3-none-any.whl

启动调优

python -m easy_rec.python.hpo.emr_hpo --hyperparams hyperparams.json  --config_path ./dwd_avazu_ctr_deepmodel.config --exp_dir hdfs:///user/easy_rec_test/experiment/hpo_test

参数说明

  • –config_path easyrec训练配置文件

  • –exp_dir 调优实验目录

  • –debug 保留本地临时目录

  • –metric_name  调优的指标,默认是auc,其它可选指标[参考../eval.md)

  • –max_parallel   同一时刻可以并行跑的实验数目,默认4

  • –total_trial_num  总共跑多少组实验,默认6

  • –el_submit_params el_submit指定PS/Worker资源的一些参数,包括-t x -m x [-pn x -pc x -pm x] -wn x -wc x -wm x -wg x 默认值

-t standalone -m local -wn 1 -wc 6 -wm 20000 -wg 1
  • –hyperparams 参数空间配置空间

hyperparams设置

[
  {
    "type": "Categorical",
    "name": "feature_config.features[input_names[0]=field1].embedding_dim",
    "candidates": ["16", "32", "48", "64", "80"]
  }
]
  • name: easy_rec pipeline_config里面的参数名称,注意要用全路径

    feature_config.features[input_names[0]=field_name1].embedding_dim

    • 由于feature_config.features是一个数组,所以需要用到选择器,根据属性值选择部分特征:

image.png

  - input_names[0]=field_name1是选择器
  - 也支持数字作为选择器, 如: feature_config.features[**0**], feature_config.features[**1**]
  - 支持使用:选择所有的特征,如:
     - feature_config.features[:]选择全部特征
     - feature_config.features[5:]选择index从5开始的特征
     - feature_config.features[:13]选择index从0到12的特征
     - feature_config.features[3:12]选择index从3到11的特征
  - 支持使用>=, <=, >, <选择特征,如:
     - feature_config.features[inputs_names[0]>=click_]选择名称排在"click_"后面的特征
  - 注意: 属性值里面不能有="'等操作符.
  • 关联参数设置

有些参数的值是关联的,比如对于deepfm算法,所有的embedding_dim必须是一样的

  • name里面可以指定多个要调整的参数名称,用”;”分割feature_config.features[input_names[0]=field1].embedding_dim;feature_config.features[input_names[0]=field20].embedding_dim

  • 如果name里面包含了多个参数名称,那么candidates也需要有多个参数值,用”;”分割如”32;32”

  • candidates: 候选值

  • type: 候选值类型, 支持Categorical, Integer, Real

    • Integer类型

{
  "type": "Integer",
  "name": "weeks",
  "min_value": 0,
  "max_value": 5
}
  • Real类型

{
  "type": "Real",
  "name": "epsilon",
  "min_value": 0.0001,
  "max_value": 0.1
 }

调优结果

  • LOG信息

image.png 一共做了5组实验,可以看到embedding_dim越小越好。

  • 实验目录信息(exp_dir): hdfs:///user/easy_rec_test/experiment/hpo_test_v8

image.png

  • 如果设置了–debug,那么将会保留本地临时目录: /tmp/emr_easy_rec_hpo_1600519258

    rewrite_[0-4].json定义了每组实验的参数 image.png image.png