概述
特征存储是一个中央系统,用于计算、存储和提供机器学习模型使用的输入变量(特征)。它的存在是为了保证在训练和实时预测期间使用完全相同的特征值,从而消除臭名昭著的无声模型故障源。
特征存储是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。
深入探讨
模型不从原始数据中学习;而是从原始数据中学习。他们从“过去 30 天内的平均购买金额”或“自上次登录以来的时间”等特征中学习。如果没有特征存储,一个团队会在训练管道中计算这些特征,而另一个团队会在生产代码中重新实现它们,这两个团队就会出现分歧,这个问题称为训练服务偏差。特征存储通过两个同步层解决了这个问题:离线存储(保存多年训练历史的数据仓库)和在线存储(快速键值数据库,为实时请求提供以毫秒为单位的特征)。两者都由相同的特征定义填充。团队还可以获得一个共享目录,以便为一个模型构建的功能可以被另一个模型发现和重用,并且时间点正确性可以防止意外地对未来的数据进行训练。
技术洞察
特征存储解决的最难的问题是时间点连接。构建训练集时,您必须附加每个历史事件发生时的特征值,而不是当前值,否则模型会从数据泄漏中学习。功能存储每个值的时间戳,并对离线存储执行 as-of 联接。在线商店(通常是 Redis 或 DynamoDB)仅保存每个实体键的最新值,以便在推理期间进行不到 10 毫秒的查找。
掌握特征存储
特征存储是一个中央系统,用于计算、存储和提供机器学习模型使用的输入变量(特征)。它的存在是为了保证在训练和实时预测期间使用完全相同的特征值,从而消除臭名昭著的无声模型故障源。特征存储是一个技术构建块,会大规模影响模型质量、基础设施成本、延迟和可靠性。为了建立深入的理解,请将特征存储视为一种操作模型,而不是单个特征:定义期望的结果,澄清假设,并将系统可以可靠地执行的操作与仍需要专家判断的操作分开。
在实践中,使用特征存储的强大团队根据可靠性和成本优化架构、数据和基础设施选择。他们记录明确的成功标准,根据实际数据和工作流程进行测试,并根据观察到的失败模式而不是一次性基准测试胜利进行迭代。这就是理论理解转变为跨产品、政策和运营的持久能力的地方。
多年来,架构决策决定着性能和运营成本。与此同时,优化一个基准测试可以隐藏更广泛的系统弱点。最具弹性的方法是将实验速度与治理规则结合起来:运行试点、捕获证据、发布决策日志,并随着模型行为、用户期望和监管要求的发展不断更新保障措施。
战略影响
多年来,架构决策决定着性能和运营成本。
多年来,架构决策决定着性能和运营成本。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
更好的工程选择可以减少生产中的可靠性事故。
更好的工程选择可以减少生产中的可靠性事故。在高质量部署中,这会转化为可衡量的操作规则、所有权边界和定期审查仪式,以便团队可以增强信心,而不是扩大模糊性。
现实世界的实施
一家支付公司在在线商店中存储了 24 小时滚动交易速度特征,因此其欺诈模型可以在 10 毫秒内完成一次刷卡操作。
流媒体服务在特征存储中定义“最近 7 天的观看时间”一次,然后在推荐、流失和广告定位模型中重复使用它。
贷款平台使用时间点连接来构建训练数据,确保每个贷款决策只能看到该决策之前已知的申请人特征。
一款叫车应用程序提供从流式传输功能管道到预计到达时间 (ETA) 预测模型的实时高峰和驾驶员可用性功能。
实施模式
特征存储实践
一家支付公司在在线商店中存储了 24 小时滚动交易速度特征,因此其欺诈模型可以在 10 毫秒内完成一次刷卡操作。
一家支付公司在在线商店中存储滚动的 24 小时交易速度功能,因此其欺诈模型可以在 10 毫秒内完成一次刷卡。当团队预先定义质量阈值、为边缘情况保留人工升级路径并跟踪一段时间内的生产力增益和错误成本时,通常会获得更好的结果。
特征存储实践
流媒体服务在特征存储中定义“最近 7 天的观看时间”一次,然后在推荐、流失和广告定位模型中重复使用它。
流媒体服务在功能商店中定义一次“过去 7 天的观看时间”,然后在推荐、流失和广告定位模型中重复使用它。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
特征存储实践
贷款平台使用时间点连接来构建训练数据,确保每个贷款决策只能看到该决策之前已知的申请人特征。
贷款平台使用时间点连接来构建训练数据,确保每个贷款决策只能看到决策之前已知的申请人特征。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会得到更好的结果。
特征存储实践
一款叫车应用程序提供从流式传输功能管道到预计到达时间 (ETA) 预测模型的实时高峰和驾驶员可用性功能。
乘车应用程序提供从流式传输功能管道到其 ETA 预测模型的实时高峰和驾驶员可用性功能。当团队预先定义质量阈值、为边缘情况保留人工升级路径并随着时间的推移跟踪生产力增益和错误成本时,通常会获得更好的结果。
风险与防护栏
优化一项基准测试可以隐藏更广泛的系统弱点。
基础设施和维护成本常常被低估。
随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
实施路线图
在实施之前定义延迟、质量和成本目标。
在实施之前定义延迟、质量和成本目标。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在实际负载和数据条件下进行基准测试。
在实际负载和数据条件下进行基准测试。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
仪器监控错误、漂移和用户影响。
仪器监控错误、漂移和用户影响。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。
在扩展之前准备回滚和事件响应路径。
在扩展之前准备回滚和事件响应路径。将每个步骤视为证据门:如果不满足标准,则暂停推出,缩小差距,然后再扩大使用。