Ch25 AI 系统实战面试指南 · 复习大纲¶
目标: 90 分钟掌握 AI 面试核心(系统设计 + 算法 + 项目 + 谈判) 受众: 校招 / 社招 / 跳槽候选人
一、知识地图(7 大模块)¶
§01 面试全景¶
- 4 类面试: 系统设计 40% / 算法编程 30% / 项目深挖 20% / 行为面 10%
- STAR 法: Situation / Task / Action / Result
- JD 解读三步
- 反向提问 3 大方向
§02 ML 系统设计 8 步¶
- 需求澄清: 业务 / QPS / 延迟 / 成本
- 指标定义: 离线(AUC/NDCG) + 在线(CTR/时长/留存)
- 离线-在线一致性
- 数据流: Kafka / Flink / Spark / Feast
- 特征工程: 离线 + 在线 + Embedding
- 模型选择: baseline → SOTA
- 部署: K8s + GPU + A/B
- 监控: 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 题)¶
- ML 系统设计 8 步顺序?
- 召回-精排-重排各解决什么问题?
- NDCG 与 AUC 区别?
- 冷启动 3 方案?
- RAG 5 组件?
- KV Cache 工作原理?
- Speculative Decoding 加速原理?
- TTFT 与 TPOT 区别?
- 异常检测 3 类方法对比?
- Focal Loss 解决什么问题?
- Top-K 堆 vs 快选?
- LRU 实现?O(1) 关键?
- 并查集路径压缩?
- DP 5 大类?
- 红黑树 5 性质?
- STAR 法 4 要素?
- Offer 4 件套?
- levels.fyi 是干什么的?
- 反向提问 3 个好问题?
- 跳槽黄金节奏?
四、5 道深入题¶
- 设计抖音首页推荐系统?(完整 8 步 + 容量规划)
- 设计某银行信用卡反欺诈系统?(完整流程 + 模型 + 监控)
- 设计某电商智能客服系统?(RAG + Agent + 监控)
- 为某 LLM 系统做容量规划?(1000 万 DAU, 100 tokens/req)
- 设计 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 件套
- [ ] 能做基础容量规划