3. 特征平台架构基础:离线特征存储、在线特征服务、特征血缘追踪、特征版本管理
特征平台是支撑机器学习全生命周期的基础设施,它将特征从原始数据加工、存储、服务到治理的完整链路标准化。理解特征平台的四大核心组件——离线特征存储、在线特征服务、特征血缘追踪与特征版本管理——是构建样本偏差校验工具的前提。只有架构清晰,才能精准定位偏差产生的环节。
3.1 离线特征存储
离线特征存储用于批量计算和存储历史特征数据,主要服务于模型训练、离线评估和回溯分析。其核心特点是高吞吐、低成本和时间旅行能力。
| 维度 | 说明 | 典型技术 |
|---|---|---|
| 存储介质 | 分布式文件系统或对象存储 | HDFS、S3、OSS |
| 存储格式 | 列式存储,高压缩比 | Parquet、ORC |
| 计算引擎 | 批量ETL与特征工程 | Spark、Hive、Flink Batch |
| 时间维度 | 支持按时间分区回溯 | 分区表、时间戳索引 |
偏差校验要点:离线特征存储中的时间窗口截断错误、分区遗漏或数据回溯不一致,是训练-服务偏差的常见根源。校验工具需对比离线表与在线服务在相同时间点的特征取值分布。
3.2 在线特征服务
在线特征服务为模型推理提供低延迟、高并发的实时特征获取能力。它通常以KV存储或特征缓存的形式存在,要求毫秒级响应和高可用。
- 特征预加载:将高频特征从离线预计算并加载到在线缓存(如Redis、Memcached)。
- 实时计算:对窗口聚合、实时统计类特征进行流式计算(如Flink、Spark Streaming)。
- 特征获取API:提供统一的gRPC或HTTP接口,支持批量获取与单点查询。
常见偏差陷阱:在线服务因缓存过期、数据未及时更新或特征拼接逻辑与离线不一致,导致线上特征分布偏移。校验工具应定期对在线特征进行抽样快照,与离线特征进行KS/PSI检验。
3.3 特征血缘追踪
特征血缘记录了特征从原始数据源经过ETL、特征工程到最终存储的全链路依赖关系。它是偏差溯源的关键工具。
- 数据源血缘:记录特征来源于哪个原始表、哪个字段、哪个时间分区。
- 转换逻辑血缘:记录特征经过的SQL、UDF、聚合窗口等计算逻辑。
- 下游消费血缘:记录特征被哪些模型、哪些在线服务所使用。
实践建议:在特征平台中引入OpenLineage或自研血缘解析引擎,将血缘信息以有向无环图(DAG)的形式存储。当校验工具检测到特征分布异常时,可沿血缘路径快速定位到上游数据变更或逻辑错误。
3.4 特征版本管理
特征版本管理确保特征的定义、计算逻辑和存储格式可追溯、可回滚。它是避免因特征变更导致样本偏差的“安全网”。
| 版本要素 | 管理内容 | 偏差校验关联 |
|---|---|---|
| 特征Schema | 特征名称、类型、维度、取值范围 | Schema变更导致特征值截断或类型转换偏差 |
| 计算逻辑 | 特征工程代码、参数、依赖库版本 | 逻辑变更未同步到在线服务引发训练-服务偏差 |
| 存储快照 | 离线特征表的版本标签与时间戳 | 训练集与线上特征来自不同版本导致分布偏移 |
| 发布记录 | 上线时间、变更人、审批记录 | 未记录变更导致偏差排查困难 |
3.5 架构协同与偏差校验切入点
四个组件并非孤立运行,而是形成闭环:
- 离线→在线同步:离线特征通过批处理或流处理同步到在线服务,同步延迟和一致性是偏差高发区。
- 血缘→版本联动:血缘追踪记录特征变更的上下文,版本管理记录变更的快照,两者结合可精确回放特征历史。
- 校验工具集成:偏差校验工具应接入血缘元数据获取特征依赖,接入版本管理获取特征历史,接入离线/在线存储进行分布对比。
架构级校验策略:在离线特征存储与在线特征服务之间设置“一致性校验网关”,每次特征同步后自动触发抽样对比。若PSI超过阈值(如0.1),则自动告警并阻断模型上线流程,直到偏差原因被定位和修复。