带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(5) https://developer.aliyun.com/article/1246863?groupCode=taobaotech
模型实时训练
模型的训练环节使用xDeepCTR框架在AOP平台上进行。
对比使用批样本训练模型,使用流样本训练模型在配置文件上需要做以下两处改动:
1. 在主入口类文件main_op_aop.py中指定ODL模型从哪个全量训练的模型版本进行参数初始化
2. 在训练配置user_params.json中指定使用流样本数据源,并配置实时参数推送的hook
下面以xDeepCTR中内置的MMOE模型为例说明从离线学习切换为在线学习的主要改动:
模型参数初始化
实时训练的模型数据源为swift样本,在入口文件中将source配置为空串即可,AOP会加载user_params.json中指定的数据源进行训练。
通过train_from_model和train_from_version参数可以指定ODL模型初始化时的参数来自于哪个模型和对应的版本。
from aop import odps_table, tf_train, AOPClient if __name__ == '__main__': fg_path = './ihome_rank_model_fg.json' user_params_path = "./user_params.json" algo_conf_path = './algo_conf.json' running_config_path = "./running_config.json" repo_name = 'xDeepCTR' zip_name = './' + repo_name + '.zip' model_path = repo_name + '/xdeepctr/models/multitask/mmoe.py' model_name = "ihome_rank_demo_mmoe_odl" ACCESS_ID = 'XXXX' ACCESS_KEY = 'YYYY' source = ""#source为空串即可 train = tf_train(source, fg_config=fg_path, model_path=model_path, model_name=model_name, user_params=user_params_path, train_from_model='ihome_rank_demo_mmoe',#使用ihome_rank_demo_mmoe模型的最新版 本来初始化 train_from_version='NEWEST', # NEW NEWEST ps_num=2, worker_num=3, ) with AOPClient(model_name) as client: client.add_code(zip_name) client.add_resource(algo_conf_path) client.add_debug_version("aop_version_tf112") client.add_runconf(running_config_path) client.run(train)
带你读《2022技术人的百宝黑皮书》——基于特征全埋点的精排ODL实践总结(7) https://developer.aliyun.com/article/1246860?groupCode=taobaotech