跳转至

第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 + 假期)。


复习路径

Day 1: Q1-Q6 (心法)
Day 2: Q7-Q12 (推荐)
Day 3: Q13-Q18 (风控)
Day 4: Q19-Q26 (LLM 系统)
Day 5: Q27-Q34 (算法, 持续刷)
Day 6-7: Q35-Q40 (行为面)