3. 特征平台架构概览:离线存储、在线存储、特征计算引擎、特征注册中心、样本生成管道
特征平台是支撑机器学习全生命周期特征生产与管理的核心基础设施。本章从架构视角拆解特征平台的五大核心组件:离线存储、在线存储、特征计算引擎、特征注册中心与样本生成管道。理解这些组件的职责与交互关系,是后续进行样本偏差校验的前提。
3.1 特征平台整体架构
特征平台采用分层解耦设计,将特征的生产、存储、分发与消费分离。下图展示了典型的特征平台架构及各组件间的数据流。
架构要点:特征注册中心是平台的“大脑”,统一管理特征元数据;离线存储与在线存储分别服务于训练与推理场景;样本生成管道从离线存储拉取特征与标签,产出训练数据集。
3.2 离线存储
离线存储用于保存大规模历史特征数据,支撑模型训练、离线评估与回溯分析。其核心要求是高吞吐、低成本与可回溯。
| 特性 | 说明 | 典型技术 |
|---|---|---|
| 数据格式 | 列式存储,高压缩比,支持分区 | Parquet / ORC |
| 存储介质 | 分布式文件系统或对象存储 | HDFS / S3 / OSS |
| 时间旅行 | 支持按时间戳回溯历史特征快照 | Delta Lake / Iceberg |
| 写入模式 | 批量覆盖或增量追加 | Spark / Hive SQL |
偏差校验关联:离线存储的时间分区完整性直接影响样本偏差校验的准确性。若某天分区数据缺失或损坏,将导致训练样本与在线分布产生系统性偏差。
3.3 在线存储
在线存储为实时推理提供低延迟的特征访问,通常使用键值存储系统。其核心指标是P99 延迟与高并发。
- 数据结构:特征以 <实体ID, 特征名> 为键,特征值为值,支持 TTL 自动过期。
- 更新策略:实时流计算引擎持续写入最新特征,覆盖旧值。
- 一致性模型:通常采用最终一致性,允许短时间窗口内的特征滞后。
- 容量规划:按特征数量 × 实体数量 × 平均特征大小估算内存/磁盘需求。
常见陷阱:在线存储与离线存储的特征值不一致是样本偏差的重要来源。例如,离线存储使用 T+1 的聚合特征,而在线存储使用实时特征,两者分布可能显著不同。
3.4 特征计算引擎
特征计算引擎负责将原始数据转换为特征值,支持批处理与流处理两种模式。
| 维度 | 批处理 | 流处理 |
|---|---|---|
| 计算框架 | Spark / Hive / Presto | Flink / Kafka Streams |
| 延迟 | 分钟 ~ 小时级 | 秒 ~ 分钟级 |
| 适用场景 | 历史特征回溯、批量训练样本生成 | 实时特征更新、在线推理 |
| 窗口计算 | 固定时间窗口(如过去 7 天) | 滑动时间窗口(如最近 1 小时) |
特征计算引擎通常遵循“定义即计算”的原则:特征在注册中心定义后,引擎自动生成批处理与流处理两套计算逻辑,确保离线与在线特征语义一致。
3.5 特征注册中心
特征注册中心是特征平台的元数据中心,管理特征的定义、血缘、版本与质量信息。
偏差校验关键能力:特征注册中心应记录每个特征的统计摘要(均值、方差、分位数、缺失率),并支持跨时间窗口的分布对比。当离线训练样本与在线推理请求的特征分布差异超过阈值时,自动触发告警。
3.6 样本生成管道
样本生成管道是连接离线存储与模型训练的桥梁。它从离线存储中拉取特征与标签,按指定时间范围拼接成训练样本集。
典型的样本生成流程包含以下步骤:
- 时间范围划定:确定训练窗口(如 2024-01-01 至 2024-01-31)。
- 标签获取:从标签表读取每个样本的 ground truth。
- 特征拼接:按实体 ID 和时间戳,从离线特征表左连接特征值。
- 特征过滤:剔除无效特征(如全缺失、零方差)。
- 样本采样:对正负样本进行比例控制或难例挖掘。
- 格式转换:输出为 TFRecord / Parquet / CSV 等训练框架兼容格式。
偏差校验核心关注点:样本生成管道中特征拼接的时间对齐是偏差的高发区。例如,使用未来特征预测当前标签(数据泄露),或使用过期特征导致特征分布偏移。建议在管道中嵌入时间戳校验与特征新鲜度检查。
3.7 组件交互与数据流
下表总结了五大组件在特征生命周期中的交互关系:
| 组件 | 上游 | 下游 | 交互协议 |
|---|---|---|---|
| 特征计算引擎 | 数据源层 | 离线存储、在线存储 | Spark / Flink 作业 |
| 离线存储 | 特征计算引擎 | 样本生成管道 | HiveQL / Spark SQL |
| 在线存储 | 特征计算引擎 | 在线推理服务 | Redis 协议 / gRPC |
| 特征注册中心 | 人工定义 / 自动发现 | 所有组件 | REST API / 消息队列 |
| 样本生成管道 | 离线存储 | 模型训练框架 | 文件系统 / 数据湖 |
架构演进建议:初期可先实现离线存储 + 样本生成管道的最小闭环,满足批量训练需求;随着业务发展,逐步引入在线存储与流计算引擎,最终以特征注册中心统一管理全链路特征元数据。