🌳 Ch25 AI 系统实战面试指南
├─ §01 面试全景与心法
│ └─ 4 大面试类型
│ │ └─ 系统设计 (40%)
│ │ └─ 算法编程 (30%)
│ │ └─ 项目深挖 (20%)
│ │ └─ 行为面 (10%)
│ └─ STAR 法
│ │ └─ Situation / Task / Action / Result
│ │ └─ 讲项目故事模板
│ └─ JD 解读
│ │ └─ 业务目标 + 技术栈
│ │ └─ 隐含需求
│ └─ 反向提问
│ │ └─ 团队最大挑战
│ │ └─ 项目下一步
│ │ └─ 工程师文化
├─ §02 ML 系统设计 8 步框架
│ └─ 1. 需求澄清
│ │ └─ 业务 / 用户 / 约束
│ │ └─ QPS / 延迟 / 成本
│ │ └─ 反例: 推荐系统
│ └─ 2. 指标定义
│ │ └─ 离线: AUC / NDCG
│ │ └─ 在线: CTR / 时长 / 留存
│ │ └─ 长期 vs 短期
│ └─ 3. 离线-在线
│ │ └─ 训练数据 / 实时特征
│ │ └─ 一致性策略
│ └─ 4. 数据流
│ │ └─ Kafka / Flink / Spark
│ │ └─ 特征仓库 (Feast)
│ └─ 5. 特征工程
│ │ └─ 离线特征 + 在线特征
│ │ └─ Embedding
│ └─ 6. 模型选择
│ │ └─ baseline → SOTA
│ │ └─ 表格 / 序列 / 多模态
│ │ └─ XGBoost / Transformer
│ └─ 7. 部署
│ │ └─ K8s + GPU
│ │ └─ 推理服务
│ │ └─ A/B 测试
│ └─ 8. 监控
│ │ └─ 4 类监控
│ │ └─ PSI / AUC / 延迟
│ │ └─ 反馈循环
├─ §03 推荐-搜索-排序
│ └─ 召回
│ │ └─ 双塔 (Two-Tower)
│ │ └─ Faiss / ScaNN
│ │ └─ 100 万 → 1000
│ └─ 精排
│ │ └─ DLRM / DeepFM
│ │ └─ DIN (Deep Interest)
│ │ └─ 多目标
│ │ └─ 1000 → 100
│ └─ 重排
│ │ └─ 多样性 / 规则
│ │ └─ 100 → 10
│ └─ 冷启动
│ │ └─ Look-alike
│ │ └─ Bandit
│ └─ 案例
│ │ └─ 抖音推荐
│ │ └─ YouTube DNN
│ │ └─ Amazon 协同过滤
├─ §04 反欺诈-风控-异常
│ └─ 异常检测 3 类
│ │ └─ 统计: Z-score / IForest
│ │ └─ 距离: KNN / DBSCAN
│ │ └─ 深度: AutoEncoder / LSTM-AE
│ └─ GNN 风控
│ │ └─ 团伙欺诈
│ │ └─ 设备指纹关联
│ │ └─ GAT / GraphSAGE
│ └─ 标签稀缺
│ │ └─ PU Learning
│ │ └─ 半监督
│ │ └─ 主动学习
│ └─ 不平衡
│ │ └─ Focal Loss
│ │ └─ SMOTE
│ │ └─ PR-AUC
│ └─ 决策
│ │ └─ 漏报 vs 误杀
│ │ └─ 阈值 + 二次验证
├─ §05 对话与 LLM 系统
│ └─ RAG
│ │ └─ 文档加载 / 分块
│ │ └─ Embedding / 向量 DB
│ │ └─ Hybrid Search
│ │ └─ Re-rank
│ │ └─ Generator
│ └─ Agent
│ │ └─ MCP / Function Calling
│ │ └─ Multi-Agent
│ │ └─ Memory
│ │ └─ Reflection
│ │ └─ Computer Use
│ └─ 性能优化
│ │ └─ KV Cache
│ │ └─ Speculative Decoding
│ │ └─ Prompt Caching
│ │ └─ Continuous Batching
│ │ └─ 量化 (INT4/INT8)
│ └─ 容量规划
│ │ └─ QPS × tokens → GPU 数
│ │ └─ 1 千万 DAU 案例
│ └─ 监控
│ │ └─ TTFT / TPOT
│ │ └─ 成本 / 1M tokens
│ │ └─ CSAT
├─ §06 算法与编程
│ └─ Top-K
│ │ └─ 堆 O(n log k)
│ │ └─ 快选 O(n)
│ │ └─ LeetCode 347
│ └─ LRU / LFU
│ │ └─ 哈希 + 双向链表
│ │ └─ LeetCode 146
│ └─ Trie
│ │ └─ 单词搜索
│ │ └─ 自动补全
│ │ └─ 路由匹配
│ └─ 并查集
│ │ └─ 路径压缩
│ │ └─ Kruskal
│ │ └─ 朋友圈
│ └─ 二分
│ │ └─ 4 变体
│ │ └─ 旋转数组
│ │ └─ 二分答案
│ └─ DP
│ │ └─ 5 大类
│ │ └─ 编辑距离
│ │ └─ 区间 DP
│ │ └─ 树形 DP
│ └─ 图
│ │ └─ BFS / DFS
│ │ └─ 拓扑排序
│ │ └─ Dijkstra
│ │ └─ 最短路
│ └─ 红黑树 / B 树
│ │ └─ 实现细节
│ │ └─ Linux 内核使用
├─ §07 行为面 + Offer 谈判
│ └─ STAR 项目讲述
│ │ └─ 3-5 个深度项目
│ │ └─ 量化结果
│ └─ 失败项目
│ │ └─ 诚实 + 反思 + 学习
│ └─ 团队冲突
│ │ └─ 数据说话
│ │ └─ 妥协共识
│ └─ 电梯演讲
│ │ └─ 60 秒讲清项目
│ └─ Offer 谈判
│ │ └─ Base + RSUs + 签字费
│ │ └─ 多 Offer 博弈
│ │ └─ levels.fyi 数据
│ │ └─ 反 PUA 话术
│ └─ 跳槽时机
│ │ └─ 1-3 年节奏
│ │ └─ 业务发展 + 学习曲线