如图,使用机器学习PAI的Ftrl在线学习,如果模型是离线+在线更新,当每天离线部分的 feature_pipelineModel 和 initModel 训练完成,在线部分怎么获取到更新?请问这个怎么更新,有没有案例
如果模型采用离线训练获得初备模型,然后在线继续学习更新模型,可以这么做:
离线训练获取 feature_pipelineModel 和 initModel
将这两个模型保存,作为离线训练后的初始模型
在线学习部分:
设置Ftrl在线学习Op,加载离线训练后的初始模型
Copy
FtrlPredictStreamOp ftrl = new FtrlPredictStreamOp();
ftrl.setInitModel(initModel);
从数据流中获取特征向量,预测并更新模型
Copy
RowData result = ftrl.predictAndUpdate(test_stream_data);
每隔一段时间,保存最新模型替换初始模型
Copy
ftrl.saveModel(modelPath);
也就是说,在线学习Op需要加载离线训练结束后的初始模型,然后每次更新就可以获取模型的最新状态。
定期保存模型可以保存学习后的知识。下次启动时,可以直接加载最新在线学习过的模型进行预测。
所以关键是:
初始化时加载离线模型
学习过程中不断更新模型
定期保存模型获得更新
这就实现了离线+在线混合训练的效果。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。