跳转至

Ch25 AI 系统实战面试指南 · 复习大纲

目标: 90 分钟掌握 AI 面试核心(系统设计 + 算法 + 项目 + 谈判) 受众: 校招 / 社招 / 跳槽候选人


一、知识地图(7 大模块)

§01 面试全景

  • 4 类面试: 系统设计 40% / 算法编程 30% / 项目深挖 20% / 行为面 10%
  • STAR 法: Situation / Task / Action / Result
  • JD 解读三步
  • 反向提问 3 大方向

§02 ML 系统设计 8 步

  1. 需求澄清: 业务 / QPS / 延迟 / 成本
  2. 指标定义: 离线(AUC/NDCG) + 在线(CTR/时长/留存)
  3. 离线-在线一致性
  4. 数据流: Kafka / Flink / Spark / Feast
  5. 特征工程: 离线 + 在线 + Embedding
  6. 模型选择: baseline → SOTA
  7. 部署: K8s + GPU + A/B
  8. 监控: PSI / AUC / 延迟 / 反馈循环

§03 推荐-搜索-排序

  • 召回: 双塔 / Faiss / ScaNN (100万 → 1000)
  • 精排: DLRM / DeepFM / DIN (1000 → 100)
  • 重排: 多样性 / 规则 (100 → 10)
  • 冷启动: Look-alike / Bandit
  • 案例: 抖音 / YouTube DNN / Amazon 协同过滤

§04 反欺诈-风控-异常

  • 3 类异常: 统计(Z-score/IForest) / 距离(KNN/DBSCAN) / 深度(AE/LSTM-AE)
  • GNN 风控: 团伙欺诈 / 设备指纹
  • 标签稀缺: PU Learning / 半监督 / 主动学习
  • 不平衡: Focal Loss / SMOTE / PR-AUC
  • 决策: 阈值 + 二次验证

§05 对话与 LLM 系统

  • RAG: 文档加载 / 分块 / Embedding / 向量 DB / Hybrid / Re-rank / Generator
  • Agent: MCP / Function Calling / Multi-Agent / Memory / Computer Use
  • 性能优化: KV Cache / Speculative Decoding / Prompt Caching / Continuous Batching / 量化
  • 容量规划: QPS × tokens → GPU 数
  • 监控: TTFT / TPOT / 成本 / CSAT

§06 算法与编程

  • Top-K: 堆 O(n log k) / 快选 O(n) / LeetCode 347
  • LRU/LFU: 哈希 + 双向链表 / LeetCode 146
  • Trie: 单词搜索 / 自动补全 / 路由匹配
  • 并查集: 路径压缩 / Kruskal / 朋友圈
  • 二分: 4 变体 / 旋转数组 / 二分答案
  • DP: 5 大类 / 编辑距离 / 区间 / 树形
  • 图: BFS/DFS / 拓扑排序 / Dijkstra / 最短路
  • 红黑树/B 树: Linux 内核使用

§07 行为面 + Offer 谈判

  • STAR 项目讲述: 3-5 个深度项目 + 量化
  • 失败项目: 诚实 + 反思 + 学习
  • 团队冲突: 数据说话 + 妥协共识
  • 电梯演讲: 60 秒讲清项目
  • Offer 谈判: Base + RSUs + 签字费 / 多 Offer 博弈 / levels.fyi / 反 PUA
  • 跳槽时机: 1-3 年节奏

二、重点公式

双塔召回相似度

\[\text{sim}(u, v) = \langle \mathbf{e}_u, \mathbf{e}_v \rangle = \cos(\theta)\]

NDCG

\[\text{NDCG@k} = \frac{\text{DCG@k}}{\text{IDCG@k}}$$ $$\text{DCG@k} = \sum_{i=1}^k \frac{2^{rel_i} - 1}{\log_2(i+1)}\]

AUC

\[\text{AUC} = P(f(x^+) > f(x^-))\]

TTFT (Time To First Token)

\[\text{TTFT} = T_{\text{prefill}} = T_{\text{attn}} \cdot N_{\text{tokens}}\]

TPOT (Time Per Output Token)

\[\text{TPOT} = T_{\text{decode-step}}\]

容量估算

\[\text{GPU 数} = \frac{\text{QPS} \times \text{tokens/req}}{\text{throughput/GPU}}\]

三、必会题(20 题)

  1. ML 系统设计 8 步顺序?
  2. 召回-精排-重排各解决什么问题?
  3. NDCG 与 AUC 区别?
  4. 冷启动 3 方案?
  5. RAG 5 组件?
  6. KV Cache 工作原理?
  7. Speculative Decoding 加速原理?
  8. TTFT 与 TPOT 区别?
  9. 异常检测 3 类方法对比?
  10. Focal Loss 解决什么问题?
  11. Top-K 堆 vs 快选?
  12. LRU 实现?O(1) 关键?
  13. 并查集路径压缩?
  14. DP 5 大类?
  15. 红黑树 5 性质?
  16. STAR 法 4 要素?
  17. Offer 4 件套?
  18. levels.fyi 是干什么的?
  19. 反向提问 3 个好问题?
  20. 跳槽黄金节奏?

四、5 道深入题

  1. 设计抖音首页推荐系统?(完整 8 步 + 容量规划)
  2. 设计某银行信用卡反欺诈系统?(完整流程 + 模型 + 监控)
  3. 设计某电商智能客服系统?(RAG + Agent + 监控)
  4. 为某 LLM 系统做容量规划?(1000 万 DAU, 100 tokens/req)
  5. 设计 LeetCode Top-K 在工业级场景的实现?

五、实践作业

  • 完整 STAR 法写 3 个项目故事
  • 准备 5 分钟电梯演讲
  • 在 LeetCode 完成 50 题(覆盖 Top-K/LRU/DP/图)
  • 调研目标公司最近 1 年 ML 系统设计案例
  • 准备 10 个反向提问

六、参考资源

  • 《Designing Machine Learning Systems》(Huyen 2022)
  • LeetCode Hot 100
  • levels.fyi / 玻璃门 / Blind
  • System Design Primer (GitHub)
  • 《ML 系统设计 8 步》原文

七、自检清单

  • [ ] 能背诵 8 步框架
  • [ ] 能说出召回-精排-重排目标
  • [ ] 能解释 NDCG/AUC 公式
  • [ ] 能设计 RAG 系统 5 组件
  • [ ] 能写出 KV Cache 原理
  • [ ] 能实现 LRU 缓存
  • [ ] 能用 STAR 讲项目
  • [ ] 能给出反向提问 3 例
  • [ ] 能列出 Offer 4 件套
  • [ ] 能做基础容量规划