概述
当模型从离线学习的特征与其在生产中实际接收的特征不同时,就会发生训练/服务偏差,从而悄悄地破坏准确性。发现并防止这种不匹配是现实机器学习中最困难、最重要的工作之一。
在线和离线功能服务偏差是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。
深入探讨
模型根据大批量历史数据进行“离线”训练,然后实时“在线”提供预测。当这两条路径以不同的方式计算特征时,就会出现偏差。常见原因:单独的代码(Python 批处理作业与 Java 服务)微妙地不一致;时间泄漏,离线训练意外地使用了在预测时尚不可用的信息;以及过时的在线功能,其中诸如“过去一小时的订单”之类的值被缓存并过期。该模型在离线评估中看起来很棒,但在实时评估中表现不佳,因为它看到的输入不再与其训练的内容相匹配。检测偏差需要记录在线提供的确切特征,并将其分布与训练集进行比较,同时防止它有利于两条路径的单一共享定义。
技术洞察
核心防御是时间点正确性:在构建训练数据时,您必须将每个标签与当时存在的特征值连接起来,而不是与未来的数据连接,否则模型会在离线状态下“作弊”并在在线状态下失败。特征存储通过时间旅行连接和共享转换层来强制执行此操作,因此相同的计算支持批量(离线)和低延迟在线存储。记录所服务的功能使团队可以统计比较在线与离线分布以检测偏差。
掌控在线和离线功能服务偏差
当模型从离线学习的特征与其在生产中实际接收的特征不同时,就会发生训练/服务偏差,从而悄悄地破坏准确性。发现并防止这种不匹配是现实机器学习中最困难、最重要的工作之一。在线和离线功能服务偏差是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将在线和离线功能服务偏差视为一种操作模型,而不是单个功能:定义期望的结果,澄清假设,并将系统可以可靠地完成的任务与仍需要专家判断的任务分开。
在实践中,强大的团队使用在线和离线功能服务倾斜来根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。
多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。
战略影响
多年来,架构决策决定着性能和运营成本。
多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
更好的工程选择可以减少生产中的可靠性事故。
更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
现实世界的实施
一款拼车应用发现其 ETA 模型实时降级,因为在线“当前路况”功能在训练时使用了新值,被缓存了 10 分钟。
欺诈团队发现离线准确性因泄漏而被夸大:训练加入了“退款”标志,该标志仅在其预测的交易发生后才存在。
ML 平台团队记录生产中提供的每个功能,并每晚运行作业,将其分布与训练数据进行比较,以发出偏差警报。
推荐团队通过使用服务于训练和实时 API 的单个特征存储定义替换两个单独的特征脚本来消除偏差。
实施模式
实践中的在线和离线功能服务偏差
一款拼车应用发现其 ETA 模型实时降级,因为在线“当前路况”功能在训练时使用了新值,被缓存了 10 分钟。
一款乘车共享应用程序发现其 ETA 模型实时降级,因为在线“当前流量”功能被缓存了 10 分钟,而训练使用了新值。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。
实践中的在线和离线功能服务偏差
欺诈团队发现离线准确性因泄漏而被夸大:训练加入了“退款”标志,该标志仅在其预测的交易发生后才存在。
欺诈团队发现离线准确性因泄漏而被夸大:训练加入了“退款”标志,该标志仅在交易后才存在,它预测团队在预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时通常会获得更好的结果。
实践中的在线和离线功能服务偏差
ML 平台团队记录生产中提供的每个功能,并每晚运行作业,将其分布与训练数据进行比较,以发出偏差警报。
机器学习平台团队会记录生产中提供的每个功能,并在夜间运行作业,将其分布与训练数据进行比较,以发出偏差警报。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。
实践中的在线和离线功能服务偏差
推荐团队通过使用服务于训练和实时 API 的单个特征存储定义替换两个单独的特征脚本来消除偏差。
推荐团队通过使用服务于培训和实时 API 的单个功能存储定义替换两个单独的功能脚本来消除偏差。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在实际负载和数据条件下进行基准测试。
在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
仪器监控错误、漂移和用户影响。
仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在扩展之前准备回滚和事件响应路径。
在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。