第25章 · AI 系统实战面试指南 · 闪卡¶
一 · 面试心法 (6 张)¶
Q1: STAR 法 4 个字母? A1: Situation (情境) + Task (任务) + Action (行动) + Result (结果)。讲项目故事的模板。
Q2: 8 步系统设计框架? A2: ① 需求澄清 → ② 指标定义 → ③ 离线/在线 → ④ 离线-在线一致性 → ⑤ 数据流/特征 → ⑥ 模型 → ⑦ 部署 → ⑧ 监控迭代。
Q3: 离线-在线一致性是什么? A3: 离线模型效果好但在线差, 原因: ① 特征不一致; ② 分布漂移; ③ 反馈延迟。解决: 统一特征平台 + 实时监控。
Q4: 什么是反向提问? A4: 面试结束前向面试官提问。好问题: 团队当前最大挑战 / 项目的下一步 / 工程师文化。
Q5: 简历项目用什么顺序? A5: STAR 倒序 (最近项目最相关放最前), 量化结果 (提升 X% / 节省 Y$ / 影响 Z 用户)。
Q6: 弱项问题如何回答? A6: "我现在 [弱项] 还在学习中, 但通过 [具体行动] 改进, 最近 [进展]"。避免说"我完美"。
二 · 推荐系统 (6 张)¶
Q7: 召回 / 精排 / 重排 三段式? A7: ① 召回: 100 万 → 1000 (双塔 / 协同过滤); ② 精排: 1000 → 100 (DLRM / DeepFM); ③ 重排: 100 → 10 (多样性 / 规则)。
Q8: 双塔模型 (Two-Tower) 是什么? A8: User Tower + Item Tower 分别编码, dot product 算相似度。可离线索引, 适合亿级召回。
Q9: DLRM 核心组件? A9: Dense Features (MLP) + Sparse Features (Embedding) + Feature Interaction (Dot Product / FM)。Meta 2019。
Q10: DeepFM 与 DLRM 区别? A10: DeepFM 用 FM + Deep 双分支共享 embedding; DLRM 用显式 dot product interaction。
Q11: 冷启动 (Cold Start) 策略? A11: ① 利用内容特征 (新文章文本); ② 利用用户注册信息; ③ 探索 (Bandit / 随机); ④ 借助相似用户 (Look-alike)。
Q12: DIN (Deep Interest Network) 核心? A12: 用 Attention 让模型聚焦用户历史中与当前商品相关的兴趣, 而非平等加权。
三 · 反欺诈风控 (6 张)¶
Q13: 异常检测 3 大方法? A13: ① 统计 (Z-score / Isolation Forest); ② 距离 (KNN / DBSCAN); ③ 深度 (AutoEncoder / Contrastive)。
Q14: GNN 在风控中的应用? A14: 构图: 用户-设备-IP-卡号。GNN 聚合邻居信息识别团伙欺诈 (设备指纹 + IP 关联)。
Q15: 标签稀缺怎么办? A15: ① PU Learning (Positive-Unlabeled); ② 半监督 (Co-training); ③ 自监督 (对比学习); ④ 主动学习。
Q16: 类别不平衡 (Fraud 1%) 怎么办? A16: ① Focal Loss; ② SMOTE (过采样); ③ Class Weight; ④ 下采样 + 集成; ⑤ 关注 PR-AUC (不是 ROC-AUC)。
Q17: 误杀 vs 漏报权衡? A17: 调阈值。信用卡场景: 漏报 1 笔 = 损失 1000 元, 误杀 1 笔 = 用户投诉。设召回率优先 + 人工复审。
Q18: 时序异常 vs 群体异常? A18: 时序 = 同一对象随时间突变 (账户突然大额); 群体 = 与群体行为不一致 (设备凌晨高频)。需不同模型。
四 · LLM 系统 (8 张)¶
Q19: RAG 5 个核心组件? A19: ① Loader (文档加载) ② Splitter (分块) ③ Embedder (向量化) ④ Retriever (检索 Top-K) ⑤ Generator (LLM 生成)。
Q20: BM25 vs 向量检索? A20: BM25 基于词频, 精确匹配; 向量 基于语义, 召回高。Hybrid Search (混合) 效果最佳。
Q21: Chunking 3 大策略? A21: ① 固定大小 (512 token); ② 按段 (段落/章节); ③ 语义分块 (embedding 突变处切)。
Q22: Re-ranking 是什么? A22: 召回后用更强的模型 (Cohere Rerank / BGE-reranker / Cross-Encoder) 精排, Top-100 → Top-10。
Q23: KV Cache 是什么? A23: Transformer 推理时缓存历史的 K, V 矩阵, 避免重复计算, 推理加速 5-10×。
Q24: Speculative Decoding 是什么? A24: 小模型先草拟 K 个 token, 大模型并行验证, 接受合格者。推理加速 2-3×, 不损失质量。
Q25: Prompt Caching 是什么? A25: 缓存相同前缀的 KV, 长 prompt (10K+) 节省成本 80%。Anthropic / OpenAI 均支持。
Q26: Agent vs RAG? A26: RAG 一次性检索 + 生成; Agent 多步推理 + 多工具 + 反思。Agent 强大但慢 + 贵。
五 · 算法基础 (8 张)¶
Q27: Top-K Frequent 用什么算法? A27: ① 小 K: 堆 O(n log k); ② 大 K: 桶排序 O(n); ③ 严格 Top-1: 快选 O(n) 平均。
Q28: LRU Cache 实现?
A28: 哈希表 + 双向链表: O(1) get/put。Java LinkedHashMap / Python OrderedDict。
Q29: Trie 的应用? A29: ① 单词搜索 (前缀匹配); ② 自动补全; ③ IP 路由 (最长前缀); ④ 拼写检查。
Q30: Bloom Filter 原理? A30: k 个哈希函数映射到 m 位数组。优点: O(1) 查询 + 省空间; 缺点: 假阳率, 无删除。
Q31: 并查集 (Union-Find) 应用? A31: ① 朋友圈/连通分量; ② Kruskal 最小生成树; ③ 网络连通性。路径压缩 + 按秩合并 → 接近 O(1)。
Q32: 红黑树 vs AVL? A32: AVL 严格平衡, 查找快; 红黑树 近似平衡, 插入删除快。Java TreeMap / C++ map 用红黑树。
Q33: 二分查找变形? A33: ① 找精确值; ② 找第一个 ≥ target; ③ 找最后一个 ≤ target; ④ 旋转数组 (先判断哪半有序)。
Q34: 编辑距离 (Edit Distance) 状态转移? A34: dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+cost), cost=0 if s[i]=t[j] else 1。
六 · 行为面 (6 张)¶
Q35: 项目失败如何讲? A35: STAR 框架, 诚实 + 反思 + 学习。"我学到 [X], 后来在 [Y 项目] 应用了 [Z 改进]"。
Q36: 与同事冲突如何处理? A36: STAR 答: ① 具体冲突; ② 我如何先理解对方 + 用数据说话; ③ 妥协/达成共识; ④ 团队结果。
Q37: 你最大的优点? A37: 选与岗位相关的 (如 "我对模型性能优化特别执着, 上次把 latency 从 200ms 降到 50ms")。
Q38: 你最大的缺点? A38: 选真实 + 改进中的 (如 "我以前追求完美导致拖延, 后来学会用 MVP + 迭代")。
Q39: 为什么离开上家公司? A39: 积极 + 前向。"寻求更大技术挑战" / "团队调整" / "职业发展"。不抱怨前公司。
Q40: Offer 谈判 3 个关键? A40: ① 手里有 offer (竞争); ② 用数据 (市场 + 贡献); ③ 不只谈 base (签字费 + RSUs + 假期)。