跳转至

第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: 建模

流程:

Baseline (简单模型) → 改进 (特征 + 模型) → SOTA (深度 + 集成) → A/B 测试

模型选择: - 表格: XGBoost / LightGBM / CatBoost - 图像: ViT / ConvNeXt - 序列: Transformer / Mamba - 多模态: CLIP / LLaVA

超参搜索: - Grid / Random / Bayesian - Ray Tune / Optuna

2.4 阶段 4: 服务

离线训练 → 在线服务:

训练 (Python + GPU) → 模型导出 (ONNX / TorchScript) → 部署 (TF Serving / vLLM / Triton)

在线推理 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 散度:

KL(P || Q) = Σ P(x) log(P(x) / Q(x))

KS 检验 (连续变量): - 计算两分布最大差 - p < 0.05 → 显著漂移


四 · 在线学习 (Online Learning)

4.1 何时需要

  • 推荐系统 / 广告 CTR (数据快速变化)
  • 金融市场
  • 实时风控

4.2 架构

用户行为 → Kafka → Flink → Online Trainer → 模型 → Serving
                                          ↑             ↓
                                          └──── 反馈 ───┘

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 反比

公式 (简化):

n = 16 × σ² / δ²
σ: 标准差, δ: 期望差

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 件套。