静态训练与动态训练(Static vs Dynamic Training)
从广义上讲,训练模型的方式有两种:
1.静态训练/离线训练
(1) 一次训练 算法人员的一次模型训练完成,只训练模型一次,然后使用训练后的模型一段时间。
(2) 批量训练 多次不同参数等模型训练,使用批量训练和测试,对其进行迭代,直到达到良好效果。
(3) 仍然需要对输入进行监控
(4) 模型容易过时
2.动态训练/在线训练/实时训练
(1) 数据会不断进入系统,通过不断地更新系统将这些数据整合到模型中
(2) 随着时间推移不断为训练数据注入新数据,定期同步更新版本。
(3) 使用渐进式验证,而不是批量训练和测试。
(4) 需要监控、模型回滚和数据隔离功能
(5) 会根据变化作出相应调整,避免了过时问题
静态推理与动态推理(Static vs Dynamic Inference)
1.静态推理/离线推理/离线测试
(1) 使用 MapReduce 或类似方法批量进行所有可能的预测
(2) 记录到表格中,然后提供给缓存/查询表
(3) 优点:不需要过多担心推理成本
(4) 优点:可以使用批量方法
(5) 优点:可以在推送之前对数据预测执行后期验证
(6) 缺点:只能对我们知晓的数据进行预测,不适用于存在长尾的情况
(7) 缺点:更新可能延迟数小时或数天
2.动态推理/在线推理/实时预测
(1) 使用服务器根据需要进行预测
(2) 优点:可在新项目加入时对其进行预测,非常适合存在长尾的情况
(3) 缺点:计算量非常大,对延迟较为敏感,可能会限制模型的复杂度
(4) 缺点:监控需求更多
参考:https://www.pianshen.com/article/3061660490/