第18章 §04 · ML 系统设计 · 讲解稿¶
承接: Ch18 §03 基础设施 → §04 系统设计方法 篇幅: ~4000 字
一 · 一句话总览¶
ML 系统设计 = 数据 + 训练 + 部署 + 监控 4 大子系统的工程化集成。Chip Huyen《Designing Machine Learning Systems》是事实标准。
二 · Chip Huyen 框架 (5 阶段)¶
2.1 阶段 1: 项目目标¶
业务目标 (Business Objective): - 例: 减少欺诈损失 30% - 例: 推荐 CTR 提升 5%
ML 目标 (ML Objective): - 模型指标: precision/recall/AUC - 失败成本: 假阳性 vs 假阴性
约束: - 延迟 < 100 ms - 推理成本 < $0.001/query - 数据合规 (GDPR / HIPAA)
2.2 阶段 2: 数据¶
来源: - 用户行为 (日志 / 点击) - 业务数据 (DB) - 外部数据 (天气 / 节日)
标签: - 人工标注 (昂贵) - 隐式反馈 (点击 / 购买) - 弱监督 (规则 + 模型)
处理: - 清洗 (缺失值 / 异常) - 特征工程 (聚合 / 编码 / 嵌入) - 切分 (train / val / test)
2.3 阶段 3: 建模¶
流程:
模型选择: - 表格: XGBoost / LightGBM / CatBoost - 图像: ViT / ConvNeXt - 序列: Transformer / Mamba - 多模态: CLIP / LLaVA
超参搜索: - Grid / Random / Bayesian - Ray Tune / Optuna
2.4 阶段 4: 服务¶
离线训练 → 在线服务:
在线推理 3 种: - Online: 实时 (推荐 / 搜索) - Batch: 离线算好 (广告 CTR) - Streaming: 微批 (Kafka + Flink)
2.5 阶段 5: 监控¶
4 类监控: 1. 数据漂移: PSI / KL 散度 2. 模型性能: 实时 AUC / CTR 3. 系统: 延迟 / 错误率 / QPS 4. 业务: 转化 / 留存
三 · 数据漂移检测¶
3.1 漂移类型¶
- 概念漂移 (Concept Drift): P(Y|X) 变化
- 特征漂移 (Feature Drift): P(X) 变化
- 标签漂移 (Label Drift): P(Y) 变化
3.2 检测方法¶
PSI (Population Stability Index):
PSI = Σ (p_new - p_ref) × ln(p_new / p_ref)
PSI < 0.1: 无漂移
0.1 ≤ PSI < 0.2: 轻微漂移
PSI ≥ 0.2: 严重漂移 → 触发重训
KL 散度:
KS 检验 (连续变量): - 计算两分布最大差 - p < 0.05 → 显著漂移
四 · 在线学习 (Online Learning)¶
4.1 何时需要¶
- 推荐系统 / 广告 CTR (数据快速变化)
- 金融市场
- 实时风控
4.2 架构¶
4.3 FTRL (Google)¶
Follow The Regularized Leader: - 在线逻辑回归 - Google Play / 广告 CTR 标准
4.4 Bandit 算法¶
- ε-greedy
- UCB
- Thompson Sampling
- 探索 vs 利用
五 · A/B 测试¶
5.1 核心概念¶
- 对照组 (A): 当前模型 / 规则
- 实验组 (B): 新模型
- 随机化: 用户 hash 取模
5.2 评估指标¶
| 指标类型 | 例子 | 计算 |
|---|---|---|
| 比率 | CTR / 转化率 | z-test |
| 均值 | 客单价 / 时长 | t-test |
| 中位数 | 延迟 | Wilcoxon |
| 分位数 | P99 延迟 | Bootstrap |
5.3 统计功效¶
- α (显著性): 0.05
- β (1 - 功效): 0.2
- 样本量: 与 effect size 反比
公式 (简化):
5.4 高级¶
- 多臂老虎机 (MAB): 流量自动分配到最优
- 分层实验: 同一用户同时多实验
- Holdout: 长期 5% 用户不参与任何实验
六 · 模型回滚与金丝雀¶
6.1 部署策略¶
| 策略 | 流量分配 | 适用 |
|---|---|---|
| All-At-Once | 100% 切 | 低风险 |
| Canary | 5% → 50% → 100% | 中风险 |
| Blue/Green | 0% → 100% | 高风险 |
| Shadow | 0% (只看不返回) | 验证 |
6.2 回滚条件¶
auto_rollback:
conditions:
- latency_p99 > 2s for 5m
- error_rate > 1% for 5m
- business_metric_drop > 5% for 30m
action: kubectl rollout undo
七 · 持续训练 (CT) vs 持续学习 (CL)¶
7.1 CT (Continuous Training)¶
- 周期重训 (每日 / 每周)
- 用最新数据
- 大模型训练成本高 → CT 已成主流
7.2 CL (Continual Learning)¶
- 避免灾难性遗忘 (Catastrophic Forgetting)
- 学新知识不忘旧
- 方法: EWC / Replay / Distillation
八 · 一句话总结¶
ML 系统设计 = 数据 + 训练 + 部署 + 监控的工程化闭环。Chip Huyen 5 阶段是黄金框架。数据漂移 + 在线学习 + A/B + Canary 部署 = 现代 ML 平台 4 件套。