跳转至

第18章 §05 · ML 设计案例 · 讲解稿

承接: Ch18 §04 方法论 → §05 实战案例 篇幅: ~4000 字


一 · 一句话总览

3 大典型 ML 系统案例: 推荐系统 / 搜索引擎 / LLM 服务。每个都是 8 步框架的应用 + 真实工程细节。


二 · 案例 1: 抖音推荐系统

2.1 需求

  • 100 万视频库
  • 给 1 亿 DAU 推 10 个视频
  • 目标: 用户停留时长 + 完播率 + 长期留存

2.2 指标

类型 指标
离线 AUC / NDCG / 召回率
在线 CTR / 完播率 / 时长 / 留存

2.3 数据流

视频元数据 (MySQL) + 用户行为 (Kafka) → Flink → 特征 (Feast / Redis)
                                              ↓
                                        训练样本 (S3)
                                              ↓
                                        Spark + GPU 训练
                                              ↓
                                        模型 (Model Registry)

2.4 特征

  • 用户: 年龄 / 性别 / 兴趣 (向量) / 历史行为 (序列)
  • 视频: 类目 / 标签 / 嵌入 / 热度
  • 上下文: 时间 / 位置 / 设备 / 网络

2.5 模型架构

3 阶段: 1. 召回 (100 万 → 1000): 双塔 (User Tower + Item Tower) → Faiss ANN 2. 精排 (1000 → 100): DLRM / DIN (Deep Interest Network) 3. 重排 (100 → 10): 多样性 + 规则 + 探索

2.6 部署

  • 离线算 embedding → Faiss
  • 在线召回 → Faiss 检索
  • 精排 → TF Serving
  • 监控: PSI + AUC + CTR

2.7 挑战

  • 冷启动: 新视频 / 新用户
  • 兴趣漂移: 用户兴趣随时间变化
  • 长尾: 1% 视频拿 90% 流量
  • 平台期: 用户增长见顶, 需深度运营

三 · 案例 2: Google 搜索引擎

3.1 需求

  • 10 亿网页
  • 1 亿 QPS
  • 100 ms 返回 Top-10

3.2 经典架构 (Pre-LLM)

Query → Index → Retrieval → Ranking → Snippet

3.3 索引层

  • Inverted Index: 词 → 文档列表
  • TF-IDF / BM25: 文本相关性
  • PageRank: 链接权威性
  • HNSW: 向量近邻

3.4 排序层

Learning to Rank: - RankNet: pairwise - LambdaRank: listwise - LambdaMART: GBDT 实现

特征: - 查询: 词数 / 实体识别 / 意图 - 文档: PageRank / 文本质量 / 时效 - 交互: BM25 / 点击率 / 停留时长

3.5 LLM 时代 (2024+)

Search Generative Experience (SGE): - 检索 + LLM 摘要 - 引用源 (citation) - 多模态 (图像 / 视频)

挑战: - 幻觉 (LLM 瞎编) - 时效性 (LLM 训练截止) - 成本 (每查询 $0.01-0.1)

3.6 监控

  • NDCG@10 / MRR
  • 用户满意度 (CSAT)
  • 长尾查询质量

四 · 案例 3: ChatGPT 服务架构

4.1 需求

  • 1 亿 MAU
  • 平均 500 token/请求
  • p99 latency < 5s

4.2 架构

用户 → CDN/Edge
       → API Gateway (限流 + 认证)
       → 路由 (按 region / 模型)
       → 推理集群
            ├─ Pod 1: GPT-5.6 (TP=8, H100)
            ├─ Pod 2: GPT-5.6
            ├─ Pod 3: o5 (reasoning)
            └─ Pod 4: GPT-4o-mini (轻量)
       → 监控 (Prometheus + Grafana + Langfuse)

4.3 模型路由

按 query 复杂度: - 简单: GPT-4o-mini (\(0.15/1M) - **中等**: GPT-4o (\)2.5/1M) - 复杂: o5 / o5-mini ($15/1M) - 专家: 领域专用 (Codex / DALL-E)

4.4 关键技术

  • PagedAttention (vLLM): KV cache 共享
  • Speculative Decoding: 草拟+验证, 2× 加速
  • Continuous Batching: 24× 吞吐
  • Prompt Caching: 80% 成本节省
  • Distillation: mini 版用于简单 query

4.5 容量规划

总 token/s = MAU × DAU/MAU × queries/DAU × tokens/query / 86400
= 1e8 × 0.3 × 20 × 500 / 86400
= 3.5M tokens/s

GPU 数 = 3.5M / (100 tokens/s/GPU) = 35000 H100

4.6 监控指标

  • TTFT: Time To First Token (目标 < 500 ms)
  • TPOT: Time Per Output Token (目标 < 50 ms)
  • Throughput: tokens/s/GPU
  • Cost / Query: $0.001-0.01
  • CSAT: 用户满意度

五 · 案例 4: 实时风控系统 (银行)

5.1 需求

  • 每秒 10 万笔交易
  • 100 ms 内决策 (拒 / 通过 / 人工)
  • 误杀 < 1%, 漏报 < 0.1%

5.2 架构

交易 → Kafka → Flink (特征) → 模型 (实时) → 决策
                              ↓
                          GNN (团伙欺诈)

5.3 特征

  • 用户: 历史交易 / 信用分 / 设备指纹
  • 交易: 金额 / 商户 / 地点 / 时间
  • 行为: 近 1h / 1d 交易频次

5.4 模型

  • XGBoost / LightGBM: 主流, 解释性好
  • GNN (GraphSAGE): 团伙欺诈
  • LSTM-AE: 时序异常

5.5 决策

通过: 概率欺诈 < 0.05
拒: 概率欺诈 > 0.5
灰区: 0.05-0.5 → 二次验证 (短信 / 人脸)

5.6 关键点

  • 不平衡: 欺诈 0.1% → Focal Loss + SMOTE
  • 实时性: Flink + 内存特征 (< 100 ms)
  • 解释: SHAP (监管要求)
  • A/B: 拒绝率 vs 误杀率 vs 漏报率

六 · 一句话总结

3 大案例 = 8 步框架的 3 次实战。推荐 (业务复杂 + 大流量) / 搜索 (LLM 革命) / LLM 服务 (前沿 + 高成本) / 风控 (低延迟 + 不平衡)。每个都是 ML 系统工程师的"必修案例"。