大数据上的机器学习流程
概述
机器学习在大数据平台上的落地是一条全链路:数据采集 → 特征工程 → 模型训练 → 模型评估 → 模型部署 → AB 测试。每一环都依赖大数据基础设施。本文讲透这条链路的每一步与工程化要点。
一、ML 全链路总览
链路:
数据采集 → 特征工程 → 模型训练
→ 模型评估 → 模型部署 → AB 测试
→ 监控 → 迭代(回到特征/训练)
每步都有对应平台能力支撑| 阶段 | 产出 | 关键基础设施 |
|---|---|---|
| 采集 | 原始数据 | Kafka/数仓 |
| 特征 | 特征集 | Spark/Feature Store |
| 训练 | 模型文件 | 训练平台/GPU |
| 评估 | 评估报告 | 实验管理 MLflow |
| 部署 | 在线服务 | 推理服务 |
| 验证 | 实验结论 | AB 平台 |
核心思想:
数据驱动闭环
每个环节可追溯、可回滚
模型像代码一样管理二、数据采集
2.1 数据来源
| 来源 | 数据 | 采集方式 |
|---|---|---|
| 业务库 | 订单/用户 | CDC(Canal/Debezium) |
| 埋点日志 | 行为 | 日志采集(Flume/Filebeat) |
| 外部数据 | 三方 | API/文件 |
| 消息 | 实时事件 | Kafka |
2.2 采集分层
分层:
ODS:原始落地
DWD:清洗明细
DWS:汇总指标
ADS:应用特征
特征数据常用 DWD 层
标签/指标用 DWS/ADS 层2.3 采集质量
质量要点:
完整性(缺字段/缺事件)
准确性(埋点正确性)
及时性(延迟对特征的影响)
一致性(多源对齐)
手段:
埋点规范
质量校验
血缘追踪三、特征工程
3.1 特征类型
| 类型 | 示例 | 处理 |
|---|---|---|
| 数值特征 | 金额/时长 | 归一化/离散化 |
| 类别特征 | 城市/渠道 | One-Hot/Embedding |
| 时序特征 | 近 7 天行为 | 窗口聚合 |
| 文本特征 | 标题 | TF-IDF/BERT |
| 交叉特征 | 城市×渠道 | 组合 |
3.2 特征处理流程
流程:
特征提取(从数据中算)
→ 特征转换(编码/归一化)
→ 特征选择(筛选重要特征)
→ 特征存储(Feature Store)
→ 特征消费(训练/推理)特征质量检查:
缺失率
方差(无效特征)
与目标相关性
分布漂移(训练 vs 在线)3.3 离线与在线一致性
关键问题:
训练用离线特征,推理用在线特征
两者不一致 → 效果打折
方案:
Feature Store 统一管理
同一套特征计算逻辑
在线特征实时计算(同口径)
定期对账(离线 vs 在线)四、模型训练
4.1 训练流程
流程:
数据准备(训练/验证/测试集)
→ 模型选择(算法)
→ 参数调优(超参搜索)
→ 模型训练(分布式)
→ 模型保存(版本管理)4.2 训练平台能力
| 能力 | 说明 |
|---|---|
| 数据读取 | 对接数仓/特征库 |
| 分布式训练 | 多机多卡 |
| 资源管理 | GPU 调度 |
| 实验追踪 | 记录参数/指标 |
| 版本管理 | 模型版本化 |
| 复现 | 记录数据/代码/环境 |
4.3 常用框架
传统 ML:
Spark MLlib(分布式)
XGBoost/LightGBM(表格数据强)
深度学习:
TensorFlow/PyTorch(GPU)
HuggingFace(NLP)选型:
表格数据 → GBDT/XGBoost
图像/NLP → 深度学习
大规模分布式 → Spark MLlib/参数服务器五、模型评估
5.1 评估指标
| 任务 | 指标 |
|---|---|
| 分类 | 准确率/精确率/召回/F1/AUC |
| 回归 | MAE/RMSE/R² |
| 排序 | AUC/NDCG/GAUC |
| 推荐 | 召回率/点击率/转化率 |
分类指标理解:
精确率:预测为正中真正
召回率:真正中被找到
F1:两者调和平均
AUC:排序能力(与阈值无关)5.2 评估方法
方法:
训练/验证/测试集划分
交叉验证
时序切分(时间穿越问题)
离线评估 vs 在线验证:
离线指标好 ≠ 线上效果好
最终以 AB 实验为准5.3 实验管理
MLflow 能力:
记录每次实验(参数/指标/代码)
模型注册与版本
对比实验效果
复现与回溯六、模型部署
6.1 部署方式
| 方式 | 说明 | 场景 |
|---|---|---|
| 在线推理 | API 实时预测 | 推荐/风控 |
| 批量推理 | 离线打分 | 报表/圈选 |
| 流式推理 | 实时流处理 | 实时推荐 |
| 嵌入式 | 端侧推理 | 移动端 |
6.2 在线服务架构
在线推理链路:
请求(特征)→ 特征服务 → 模型服务
→ 结果 → 业务
要点:
低延迟(P99)
高可用
特征与模型一致6.3 部署工程化
工程化:
模型服务化(TensorRT/ONNX 优化)
灰度发布(新模型小流量)
回滚机制
监控(延迟/错误/漂移)
自动重训(数据漂移触发)七、AB 测试
7.1 为什么要 AB
原因:
离线评估不完全可信
需要验证业务效果
原理:
用户分桶(实验组/对照组)
控制变量
统计显著性判断7.2 分桶设计
分桶:
用户维度分桶(稳定一致)
流量划分(小流量灰度)
避免干扰(同用户同组)
注意:
桶间干扰(网络效应)
样本量充足
显著性检验7.3 AB 流程
流程:
提出假设 → 设计实验
→ 小流量上线 → 收集数据
→ 显著性分析 → 全量/回滚
工具:
自建实验平台
统计检验(t 检验/卡方)八、MLOps 与监控
8.1 MLOps 理念
MLOps = ML + DevOps:
模型像软件一样交付
自动化训练/部署/监控
可复现、可回滚8.2 模型监控
| 监控项 | 说明 |
|---|---|
| 性能 | 延迟/吞吐 |
| 稳定性 | 错误率 |
| 数据漂移 | 特征分布变化 |
| 效果衰减 | 线上指标下滑 |
漂移处理:
检测到漂移 → 告警
触发重训
新旧模型灰度对比九、常见问题
9.1 离线效果好线上差
原因:
特征不一致(在线/离线)
数据分布漂移
评估偏差(样本问题)
排查:
对账特征
看漂移指标
小流量验证9.2 训练数据从哪里来
来源:
数仓分层数据(ODS/DWD)
特征库(复用特征)
埋点/日志
外部数据
关键:
数据血缘清晰
口径统一
质量可靠9.3 模型多久重训一次
策略:
定期重训(周/月)
触发式重训(漂移/效果下滑)
在线学习(实时更新,进阶)
权衡:
频率高 → 新鲜但成本高
频率低 → 便宜但滞后十、小结
大数据上的机器学习是一套工程化闭环:数据采集打底、特征工程提质、训练评估出模型、部署验证拿效果、监控迭代再优化。掌握每环节的产出与衔接,特别是特征一致性与模型监控这两个易踩坑点,才能让模型稳定地产生业务价值。