附录 2. AI 工程面试问题大全

来源与致谢

本题库的问题经过多渠道搜集、验证和交叉引用,主要来源如下:

学术与研究论文: Vaswani et al. 2017(Attention Is All You Need)、Sennrich et al. 2016(BPE)、Devlin et al. 2019(BERT)、Radford et al. 2018/2019(GPT/GPT-2)、Brown et al. 2020(GPT-3)、Touvron et al. 2023(LLaMA)、Hu et al. 2021(LoRA)、Ouyang et al. 2022(InstructGPT/RLHF)、Rafailov et al. 2023(DPO)、Shao et al. 2024(GRPO)、Dao et al. 2022/2023(FlashAttention 1 & 2)、Hoffmann et al. 2022(Chinchilla)、Kaplan et al. 2020(Scaling Laws)、Kwon et al. 2023(PagedAttention/vLLM)、Dettmers et al. 2023(QLoRA)、Lin et al. 2024(AWQ)、Xiao et al. 2023(SmoothQuant)、Gu & Dao 2023(Mamba)、DeepSeek-AI 2024/2025(DeepSeek V2/V3/R1)。

面试平台与题库: MLStack.cafe(59 道 LLM 面试题、42 道 ChatGPT 面试题、38 道 NLP 面试题 — mlstack.cafe/interview-questions/llms)、Awesome Generative AI Guide(Aishwarya Naresh Reganti 整理的 60 道常见生成式 AI 面试题 — github.com/aishwaryanr/awesome-generative-ai-guide/interview_prep/60_gen_ai_questions.md)。

社区论坛与报告: Reddit r/MachineLearning、r/LocalLLaMA、r/learnmachinelearning;Hacker News;Blind(FAANG 面试讨论区);LeetCode Discuss。

行业指南与博客: Chip Huyen —《Designing Machine Learning Systems》(O’Reilly 2022)及博客(huyenchip.com);Anthropic —《Building Effective Agents》(2024, anthropic.com);OpenAI Cookbook(github.com/openai/openai-cookbook);HuggingFace NLP 课程(huggingface.co/learn/nlp-course);Stanford CS324 — 大语言模型(stanford-cs324.github.io);Full Stack Deep Learning — LLM Bootcamp 2023(fullstackdeeplearning.com);Jay Alammar —《图解 Transformer》(jalammar.github.io/illustrated-transformer);Lilian Weng —《LLM 驱动的自主智能体》(lilianweng.github.io);Sebastian Raschka —《从零构建大语言模型》(2024)。

本手册章节: 每个部分对应《AI 工程手册》相应章节(第 1–8 章)。

问题标签说明:[概念] [权衡] [设计] [调试] [编码] [估算]


第一章 — 基础

1.1 分词(Tokenization)

  1. 为什么现代 LLM 使用子词分词而不是词级或字符级分词? [概念]
  2. 比较 BPE、WordPiece 和 Unigram LM 分词器——在什么场景下选择哪种? [权衡]
  3. 什么是字节级 BPE(BBPE)?为什么它更适合多语言模型? [概念]
  4. 词汇表大小如何在计算量与质量之间取舍? [权衡]
  5. 你的生物医学领域术语被拆分为 8 个以上子词片段——你会怎么做?有什么风险? [调试]
  6. 什么是分词器的”碎片率”(fragmentation rate)?它为什么对成本和延迟很重要? [概念]
  7. 同事在训练和推理之间替换了分词器——会出什么问题? [调试]
  8. 为什么不能直接比较使用不同分词器的模型的困惑度? [概念]
  9. 分词如何影响 LLM 的算术和数值推理能力? [概念]
  10. 如果在训练中途扩展分词器,有什么风险?如何缓解? [权衡]
  11. Token 数量与 API 成本的关系是什么?在成本敏感的部署中如何优化? [估算]
  12. SentencePiece 与 HuggingFace Tokenizers 在处理空白和未知字符方面有何不同? [概念]
  13. 你正在构建一个多语言模型(英语、中文、阿拉伯语、代码)。请详述你的分词器设计决策——词汇表大小、算法选择、字节回退、特殊 token。 [设计]
  14. 一个擅长处理代码的模型在用户粘贴带反引号围栏的 markdown 时突然输出错误——可能的分词问题是什么? [调试]

1.2 嵌入(Embeddings)

  1. 模型为什么不能直接使用 token ID 作为数字——为什么需要嵌入? [概念]
  2. 解释嵌入查找——它如何等价于 one-hot 向量 × 矩阵乘法? [概念]
  3. 什么是”权重绑定”(weight tying,输入嵌入 = 输出 softmax 权重)?为什么要这样做? [权衡]
  4. 词/token 嵌入与句子嵌入有什么区别? [概念]
  5. 比较 CBOW 和 Skip-gram——Skip-gram 在什么时候更优? [权衡]
  6. FastText 如何处理未登录词? [概念]
  7. 什么是负采样?为什么训练大规模 word2vec 需要它? [概念]
  8. 你会如何评估学到的嵌入的质量? [设计]
  9. 解释上下文嵌入的概念。BERT 风格的模型与静态 word2vec/GloVe 嵌入有何不同? [概念]
  10. 什么是嵌入空间中的”各向异性问题”(anisotropy problem)——为什么现代 LLM 嵌入会聚集在一个狭窄的锥形区域?如何解决? [概念]
  11. 跨模态嵌入(如 CLIP)如何在共享空间中对齐文本和图像?什么是对比损失? [概念]
  12. 你在为生产 RAG 系统选择嵌入模型——你要评估哪些维度(维度大小、延迟、领域覆盖、MTEB 分数)? [设计]

1.3 注意力机制(Attention)

  1. 逐步解释缩放点积注意力。为什么要除以 √d_k? [概念]
  2. 什么是因果掩码?为什么它对只有解码器的 LLM 是必要的? [概念]
  3. 为什么原始的自注意力在序列长度上是 O(L²) 的?有什么实际后果? [概念]
  4. 解释多头注意力(MHA)。为什么用多个头而不是一个大头? [概念]
  5. 什么是交叉注意力?在哪里使用? [概念]
  6. 比较 MHA、MQA 和 GQA——每种方式如何影响 KV 缓存和质量? [权衡]
  7. 解释 KV 缓存。为什么在自回归解码时需要它? [概念]
  8. FlashAttention 如何在不改变注意力数学的情况下提升性能? [概念]
  9. 什么是稀疏注意力(如滑动窗口)?你得到了什么又失去了什么? [权衡]
  10. 如何将原始的 softmax 注意力转换为”线性注意力”?有什么权衡? [概念]
  11. 为什么长上下文预填充会主导首 token 时间(TTFT)? [概念]
  12. 你将上下文窗口从 4K 翻倍到 128K——什么会出问题?什么变得昂贵? [估算]
  13. 推导单个 Transformer 层的 KV 缓存内存开销,关于批大小、序列长度、KV 头数和头维度的函数。 [估算]
  14. 什么是 DeepSeek V2 中使用的多头潜在注意力(MLA)?它如何比 GQA 更激进地压缩 KV 缓存? [概念]
  15. 解释环形注意力(Ring Attention / Striped Attention)。它如何将长序列分布到多个 GPU 上进行训练? [概念]

1.4 FFN、激活函数、残差连接、归一化

  1. 如果注意力已经在 token 之间混合了信息,为什么 Transformer 还需要 FFN/MLP? [概念]
  2. 比较 ReLU、GELU、Swish 和 SwiGLU——为什么现代 LLM 优先使用门控激活函数? [权衡]
  3. 什么是”死亡 ReLU”问题? [概念]
  4. 为什么残差(跳跃)连接有助于训练深层网络? [概念]
  5. 比较 pre-norm 与 post-norm Transformer——哪种在深层更稳定?为什么? [权衡]
  6. 比较 LayerNorm 和 RMSNorm。为什么现代 LLM 偏好 RMSNorm? [权衡]
  7. 什么是 DeepNorm?什么时候需要它? [概念]
  8. 如果从一个 70 层的 Transformer 中移除所有残差连接会怎样? [调试]
  9. FFN 通常有 4 倍模型维度的”隐藏维度”(或 SwiGLU 中的 8/3 倍)。为什么是这个比例?内存/计算影响是什么? [概念]
  10. 什么是 Transformer 的”残差流”(residual stream)视角?它如何帮助推理特征电路和超位? [概念]

1.5 位置编码(Positional Encoding)

  1. Transformer 为什么需要位置编码?没有它会怎样? [概念]
  2. 解释正弦位置编码。为什么用不同频率的 sin/cos? [概念]
  3. 什么是 RoPE(旋转位置嵌入)?用一句话给出直觉。 [概念]
  4. 比较绝对位置、相对位置、RoPE 和 ALiBi——用一句话说出区别。 [权衡]
  5. 什么是”长度外推”?为什么某些位置方案在更长上下文时会退化? [概念]
  6. NTK-aware 缩放和 YaRN 如何将 RoPE 扩展到更长上下文? [概念]
  7. 你的模型在 8K 上下文上训练,但用户需要 128K——你有哪些选择? [设计]
  8. 为什么有些模型(如 ALiBi)声称根本不需要位置编码?它们实际在做什么? [概念]

1.6 解码策略(Decoding)

  1. 比较贪心搜索、束搜索、top-k、top-p(核采样)和温度采样。 [概念]
  2. 温度在数学上做了什么?极低温度和极高温度时分别会出什么问题? [概念]
  3. 为什么束搜索会降低多样性并产生乏味输出? [概念]
  4. Top-k 与 top-p——哪个在不同提示下更鲁棒?为什么? [权衡]
  5. 解释”best-of-N”采样。何时使用它而不是单次生成? [权衡]
  6. 什么是自一致性/多数投票?什么时候有用? [概念]
  7. 什么是”停止序列”?它为什么对工具调用和结构化输出很重要? [概念]
  8. 重复惩罚如何工作?它可能意外破坏什么? [调试]
  9. 用户抱怨模型”太重复”——你首先检查哪些解码参数? [调试]
  10. 解释 min_p 采样。它与 top-p 有何不同?为什么在开源推理中越来越流行? [概念]
  11. 引导/约束解码(如 Outlines、LMFE)如何在生成过程中强制执行语法或 JSON schema?运行时开销是什么? [概念]

1.7 架构(Architecture)

  1. 比较编码器-only、解码器-only、编码器-解码器和 PrefixLM 架构。 [概念]
  2. 为什么大多数现代聊天 LLM 是解码器-only 的? [概念]
  3. 什么场景下你会优先选择编码器-only(BERT 风格)而不是解码器-only? [权衡]
  4. 什么是混合专家(MoE)?为什么路由很重要? [概念]
  5. 在 MoE 中,什么是负载均衡?为什么它会失败? [调试]
  6. 哪种架构选择倾向于主导解码时的推理内存? [概念]
  7. 概述状态空间模型(Mamba)。它针对什么瓶颈? [概念]
  8. 比较 Transformer、SSM 和循环混合模型(RWKV)在长上下文任务中的表现。 [权衡]
  9. 什么是扩散语言模型?它什么时候可能优于自回归生成? [概念]
  10. 解释”现代解码器配方”:RoPE + RMSNorm + SwiGLU + GQA。为什么 LLaMA、Mistral、Qwen 及大多数开源模型都收敛于此模式? [概念]
  11. PaLM 中的”并行注意力 + FFN”是什么?计算节省与质量权衡如何? [权衡]
  12. DeepSeek V3 中使用的多 Token 预测(MTP)是什么?预测多个未来 token 如何改善训练信号并支持推测解码? [概念]

第二章 — 预训练

2.1 数据管线与质量

  1. 详述预训练数据管线:数据源 → 过滤 → 去重 → 分词 → 混合。 [设计]
  2. 为什么”数据质量 > 数据数量”是最重要的预训练原则? [概念]
  3. 在预训练前,你会对 Common Crawl 数据集应用哪些过滤? [设计]
  4. 解释训练-训练去重与训练-测试污染——各自为什么重要? [概念]
  5. 你如何构建一个检测和防止基准测试污染的管线? [设计]
  6. 你发现模型逐字记忆了训练数据片段——如何诊断和修复? [调试]
  7. 预训练中哪些数据治理实践很重要(许可证、PII、审计追踪)? [设计]
  8. 如何大规模处理训练数据中的 PII? [设计]
  9. 常见的去重策略有哪些(精确哈希、MinHash、嵌入相似度)? [概念]
  10. 你需要创建一个分类器来过滤预训练语料中的有毒内容。你使用什么架构?如何处理误删有价值数据的假阳性? [设计]
  11. “质量分类器”(如基于 Wikipedia vs 随机网页训练的分类器)在预训练数据管线中的作用是什么?Llama 3 是如何处理的? [概念]

2.2 数据混合与分布

  1. 为什么训练数据混合很重要?举一个添加更多代码数据反而损害对话质量的例子。 [权衡]
  2. 你如何为通用 LLM 设计数据混合? [设计]
  3. 你添加了领域特定数据后领域性能提高但通用基准下降——发生了什么? [调试]
  4. 预训练中的”课程学习”(curriculum learning)是什么? [概念]
  5. 你如何估算向混合中添加新数据源的边际价值?在运行完整预训练之前可以跟踪哪些代理指标? [设计]

2.3 计算与扩展

  1. 预训练的主要成本驱动因素是什么(参数、上下文、token 数、精度)? [概念]
  2. 解释 Chinchilla 缩放定律——参数与 token 的计算最优比例是什么? [概念]
  3. 粗略估算:训练一个 70B 模型在 2T token 上需要多少 FLOPs? [估算]
  4. 模型参数翻倍大约会使每个 token 的 FLOPs 怎样变化? [估算]
  5. 解释数据并行、张量并行和管线并行。各在什么时候使用? [概念]
  6. 什么是 ZeRO / FSDP?它如何减少内存? [概念]
  7. 什么是激活检查点(activation checkpointing)?权衡是什么? [权衡]
  8. 解释混合精度训练(BF16/FP16)。为什么 BF16 在 LLM 中占主导地位? [权衡]
  9. 什么是”屋顶线模型”(roofline model)?它如何帮助推理 GPU 利用率? [概念]
  10. 估算预训练一个 7B 参数模型在 1T token 上所需的最少 H100 GPU 数量和时钟时间。说明你的假设。 [估算]
  11. 什么是序列并行?它如何配合张量并行进行长上下文训练? [概念]
  12. 解释 Megatron-LM 的 3D 并行与 DeepSpeed ZeRO-3 的区别。各在什么时候使用? [权衡]

2.4 训练配方与监控

  1. LLM 预训练的典型学习率调度是什么? [概念]
  2. Loss 在训练中途飙升 3 倍然后缓慢恢复——你如何排查? [调试]
  3. 预训练中最常见的 5 种故障模式是什么(不稳定、污染、记忆化、分布偏移、安全退化)? [概念]
  4. 你如何设置”探测集”来监控预训练期间的质量? [设计]
  5. 训练 Loss 在下降但下游评估分数停滞——出了什么问题? [调试]
  6. 何时决定停止预训练?你关注哪些信号? [权衡]
  7. 什么是梯度范数监控?梯度范数突然飙升意味着什么训练问题?你应该怎么做? [调试]

2.5 评估与下游影响

  1. 困惑度(perplexity)衡量什么?它有什么局限性? [概念]
  2. 更低的困惑度并不总意味着更好的指令跟随——为什么? [概念]
  3. 预训练的选择如何约束中训练、SFT 和推理? [权衡]
  4. 你的基座模型在代码方面较弱——应该在预训练中修复还是之后? [权衡]
  5. 你预训练了两个架构相同但数据混合不同的模型。模型 A 困惑度更低但模型 B 在下游任务上得分更高。如何解释? [调试]

第三章 — 中训练 / 继续预训练(CPT)

3.1 何时使用及原因

  1. 什么是 CPT?它与预训练和 SFT 有何不同? [概念]
  2. CPT 与 SFT 与提示工程——何时选择哪个? [权衡]
  3. 模型在法律文档上困惑度很高但通用性能不错——哪个训练阶段能修复这个问题? [权衡]
  4. CPT 使用与预训练相同的下一个 token 目标,但在不同的分布上——这在实践中意味着什么? [概念]
  5. 一家初创公司想将开源 7B 模型especializado医疗问答。他们有 5 万份临床笔记。应该做 CPT、SFT 还是两者都做?请详述决策过程。 [设计]

3.2 数据与混合

  1. 什么是”通用回放”(general replay)?为什么它对 CPT 至关重要? [概念]
  2. CPT 起始回放比例是多少(如 80/20)?如何调优? [设计]
  3. CPT 中的文档打包(document packing)是什么?为什么它对吞吐量很重要? [概念]
  4. CPT 中是否应该使用课程学习(先更多回放,然后退火)? [权衡]
  5. CPT 与 SFT 的数据格式有何不同?为什么在文档边界不做注意力掩码的打包会泄漏信息? [概念]

3.3 稳定性鸿沟

  1. CPT 中的”稳定性鸿沟”是什么?为什么会发生? [概念]
  2. 开始 CPT 后通用基准急剧下降——请详述你的调试步骤。 [调试]
  3. 学习率在 CPT 稳定性中扮演什么角色? [概念]
  4. CPT 监控中的回归门控如何工作? [设计]
  5. 你运行了 20B token 的 CPT,MMLU 下降了 5 个百分点。继续训练 50B token 后部分恢复。解释这种”U 形”曲线以及如何设置停止标准。 [调试]

3.4 分词器扩展

  1. 什么时候应该在 CPT 期间扩展分词器? [权衡]
  2. 如何初始化新增 token 的嵌入? [概念]
  3. 什么是”训练不足的 token”问题?如何缓解? [调试]

3.5 训练拓扑

  1. 比较”三种拓扑”:打包(CPT)、掩码(SFT)、rollout(RL)——每种中哪些 token 贡献梯度? [概念]
  2. CPT、SFT、DPO 和 RL 在数据构造和损失应用方面有什么区别? [概念]

3.6 CPT → RL 兼容性

  1. 中训练如何改善 RL 扩展(如 OctoThinker)? [概念]
  2. 给定产品需求,你如何在提示 → SFT → DPO → RL → CPT → 蒸馏之间做决策? [设计]

第四章 — 后训练

4.1 SFT(监督微调)

  1. 什么是 SFT?什么时候它是首选方案? [概念]
  2. 描述 SFT 数据的四种形态:单轮对话、多轮对话、工具使用轨迹、安全示范。 [概念]
  3. 什么是”聊天模板陷阱”?一个空格变化如何破坏你的模型? [调试]
  4. 什么是仅补全损失(completion-only loss,即用户 token 掩码)?为什么它能改善 SFT? [概念]
  5. 写出掩码 SFT 损失公式。m_t = 0 和 m_t = 1 分别意味着什么? [概念]
  6. 你的 SFT 模型原样复述用户的提示——出了什么问题? [调试]
  7. SFT 数据中过多的拒绝示例导致模型拒绝一切——这叫什么?如何修复? [调试]
  8. 你如何确保聊天模板的训练-推理一致性? [设计]
  9. 你的 SFT 模型能正确遵循指令但过于冗长——你怎么做? [调试]
  10. 你在 1 万个样本上做了 SFT,基准分数很好但用户抱怨模型”听起来像机器人”。你的数据可能有什么问题?如何修复? [调试]
  11. 通常需要多少 SFT 样本?讨论 LIMA 论文”少即是多”的发现与多样性需求之间的关系。 [权衡]

4.2 PEFT / LoRA

  1. 解释 LoRA——低秩分解是什么?为什么它比全参数微调更便宜? [概念]
  2. 在 4096×4096 权重矩阵上使用 LoRA rank r = 16——可训练参数与全微调相比有多少? [估算]
  3. 什么是 QLoRA?它如何进一步减少内存? [概念]
  4. LoRA 适配器应该附加在哪里(注意力层 vs MLP)?为什么? [权衡]
  5. 合并适配器(单租户)vs 在线堆叠(多租户)——何时使用? [权衡]
  6. 什么是适配器多租户?如何服务一个基座模型 + 100 个 LoRA 适配器? [设计]
  7. 路由 bug 将租户 A 的请求发送到租户 B 的适配器——影响是什么? [调试]
  8. 在多租户系统中如何对每个适配器进行回归测试? [设计]
  9. 比较 LoRA 与其他 PEFT 方法:前缀调优、Houlsby 适配器、IA3。LoRA 何时胜出?何时替代方案更好? [权衡]
  10. 你在 LLaMA-3-8B 上训练了一个 LoRA 适配器。基座模型发布了小版本补丁——能复用你的适配器吗?有什么风险? [调试]

4.3 偏好对齐(DPO / RLHF / PPO)

  1. 什么是偏好学习?为什么”哪个更好”比”写出完美答案”更容易标注? [概念]
  2. 写出 KL 正则化的奖励最大化目标。β 控制什么? [概念]
  3. 解释完整的 RLHF 管线:偏好标注 → 奖励模型 → PPO。 [概念]
  4. 什么是奖励黑客?举一个具体例子。 [概念]
  5. 为什么完整的 RLHF 作为系统(而非仅仅一个训练任务)是昂贵的? [权衡]
  6. 用一句话解释 DPO——它如何避免完整的 RL 循环? [概念]
  7. 比较 DPO 与 ORPO——何时从哪个开始? [权衡]
  8. DPO/ORPO 的主要限制是什么(提示:数据覆盖)? [概念]
  9. “更受偏好”不总意味着”更正确”——这为什么重要? [概念]
  10. 你的 DPO 调优模型偏好胜率更高但事实准确率更低——发生了什么? [调试]
  11. 解释迭代 DPO / 在线 DPO。为什么在训练期间生成在策略数据比固定的离线偏好对更好? [概念]
  12. 什么是宪法 AI(Constitutional AI, CAI)?它如何减少对人类标注员的依赖? [概念]
  13. 你运行 RLHF 后模型学会了非常谄媚(“好问题!”)。奖励模型出了什么问题?如何修复? [调试]

4.4 工具使用与 RAG 训练

  1. 为什么仅靠提示不足以在生产中实现可靠的工具使用? [概念]
  2. 描述工具使用交互链:选择工具 → 填充参数 → 消费输出 → 回答。 [概念]
  3. 工具使用不足(产生幻觉)与过度使用工具(不必要的调用)有什么区别? [调试]
  4. 工具调用的约束解码是什么?schema 有效性与语义正确性有何不同? [权衡]
  5. RAG 如何是工具使用的特殊情况? [概念]
  6. 你的 Agent 产生幻觉回答而不是调用检索工具——如何修复? [调试]
  7. 如何为多轮工具使用构造训练数据?讨论合成 rollout 生成、按成功过滤和冷启动问题。 [设计]

4.5 推理与智能体 RL

  1. 比较结果奖励模型(ORM)与过程奖励模型(PRM)。 [权衡]
  2. 什么是 STaR/ReST 风格的自训练循环?为什么它们有助于解决轨迹数据稀缺问题? [概念]
  3. 解释 GRPO——它如何避免学习的评论家并节省内存? [概念]
  4. 为什么 GRPO 对训练 70B+ 推理模型很重要? [权衡]
  5. 推理 RL 中的奖励黑客是什么?它与对话对齐中的表现有何不同? [调试]
  6. 你的推理模型在 RL 训练过程中输出越来越长——发生了什么? [调试]
  7. 比较 Dr. GRPO、GSPO、DAPO、LUFFY——每个调整了什么参数? [概念]
  8. 解释 DeepSeek R1-Zero 的”顿悟时刻”。在没有 SFT 的 RL 训练中出现了什么涌现行为?为什么这很重要? [概念]
  9. 思维链提示、思维链微调和用 RL 训练推理模型之间有什么区别?各在什么时候使用? [权衡]

4.6 知识蒸馏

  1. 黑盒蒸馏 vs 白盒蒸馏——何时使用? [权衡]
  2. 写出标准知识蒸馏损失(教师和学生分布之间的 KL 散度)。 [概念]
  3. 你的蒸馏学生在基准上与教师相当但在安全方面失败——出了什么问题? [调试]
  4. 当教师是封闭 API 时,如何管理教师版本漂移? [设计]
  5. 实际顺序是什么:先黑盒 → 再白盒优化? [设计]
  6. DeepSeek R1 将推理能力从 R1(671B MoE)蒸馏到 1.5B–70B 的稠密学生模型。使用了什么数据?训练配方是什么?学生与教师差距多大? [概念]

4.7 后训练系统设计

  1. 设计一个”医疗记录员”:知道罕见药名(CPT),但拒绝开处方(对齐 + 评估)。 [设计]
  2. 固定计算预算:DPO(训练)还是测试时扩展(推理)?如何决定? [权衡]
  3. 你的 SFT 模型工具调用格式错误——添加更多数据还是切换到约束解码? [调试]
  4. 你的 Agent 在多步工具链上失败——在数据、奖励和搜索方面你会改变什么? [设计]
  5. 你是一家法律科技初创公司的 ML 负责人。你有:一个开源 8B 模型、10 万份合同文档、5000 个标注 QA 对和一个 2 人团队。设计从 CPT 到生产的完整后训练管线。 [设计]

第五章 — 常见模型与基准测试

5.1 架构家族

  1. 比较 BERT、T5、GPT、LLaMA、Mistral、Qwen、GLM 和 DeepSeek——每个的核心架构选择是什么? [概念]
  2. 什么是”现代解码器配方”(RoPE + RMSNorm + SwiGLU + GQA)?哪些模型使用它? [概念]
  3. PaLM 使用并行 Transformer 子层——这意味着什么?为什么? [概念]
  4. DeepSeek V2/V3 中的多头潜在注意力(MLA)是什么? [概念]
  5. DeepSeek V3 使用多 Token 预测(MTP)——它是什么?为什么有帮助? [概念]
  6. DeepSeek R1 如何不用 SFT 训练推理(R1-Zero)? [概念]
  7. Mistral 中的滑动窗口注意力是什么?它牺牲了什么? [权衡]
  8. Mixtral 是 MoE:8 个专家、top-2 路由、47B 总参 / ~13B 激活——为什么高效? [概念]
  9. 追溯演进:GPT-2 → GPT-3 → GPT-3.5 → GPT-4。每一步发生了什么变化(规模、RLHF、多模态、MoE)? [概念]
  10. 比较 LLaMA 1 vs LLaMA 2 vs LLaMA 3。每一代的关键训练配方变化是什么(不仅仅是规模)? [概念]
  11. Gemma/Gemini 处理长上下文(高达 1M token)的方法是什么?与 RoPE 外推方法有何不同? [概念]

5.2 评估与基准测试

  1. 列出一个通用 LLM 的最小基准套件(知识、数学、代码、对话、安全)。 [设计]
  2. 代码基准中的 pass@k 是什么?与 pass@1 有何不同? [概念]
  3. MMLU 与 MMLU-Pro——有什么区别? [概念]
  4. Chatbot Arena(LMSYS)是什么?为什么基于 Elo 的排名有用? [概念]
  5. 你的模型在 MMLU 上达到 90% 但在真实客户查询上表现不佳——差距在哪里? [调试]
  6. 常见的评估陷阱有哪些(提示格式、温度、污染、评分方法)? [概念]
  7. LLM 作为评判者:存在哪些偏差?如何缓解? [权衡]
  8. 何时使用人类偏好测试而非自动基准? [权衡]
  9. 如何评估长上下文模型(大海捞针、LongBench)? [设计]
  10. TruthfulQA 是什么?它针对什么故障模式? [概念]
  11. 如何评估多模态模型(MMMU、MathVista)? [概念]
  12. 如何检测已训练模型中的基准污染(数据泄漏)? [设计]
  13. 你需要评估模型的安全性:使用哪些基准和红队方法? [设计]
  14. “静态”基准(MMLU、HumanEval)与”动态”基准(Chatbot Arena、LiveCodeBench)有什么区别?为什么动态基准越来越重要? [概念]
  15. 为面向客户的聊天机器人设计内部评估套件。你测试哪些维度(准确性、安全性、延迟、成本、风格)?如何设置权重? [设计]

第六章 — 推理与压缩

6.1 推理物理学

  1. 解释 LLM 推理的两个阶段:预填充 vs 解码。为什么它们有不同的瓶颈? [概念]
  2. 预填充是计算受限的;解码是内存带宽受限的——解释为什么。 [概念]
  3. 什么是算术强度?它如何决定工作负载是计算受限还是内存受限? [概念]
  4. 什么是 TTFT?什么主导它?什么是 TPOT/ITL?什么主导它? [概念]
  5. TTFT 太高——请详述你的调试步骤。 [调试]
  6. 配置更改后 TPOT 变差——你检查什么? [调试]
  7. H100 有 ~3.35 TB/s 内存带宽和 ~990 TFLOPS BF16。一个 BF16 的 70B 模型约 140GB。batch size = 1 时解码的理论最大 token/秒是多少?瓶颈在哪里? [估算]

6.2 KV 缓存

  1. 估算 KV 缓存大小:给定 layers=80、KV heads=8、head dim=128、FP16——每个 token 多少字节? [估算]
  2. 在 8K 上下文下,根据上述计算每个序列需要多少 KV 内存? [估算]
  3. GQA 相比 MHA 如何减少 KV 缓存?给出缩放因子。 [概念]
  4. 什么是 PagedAttention?它如何类似于虚拟内存? [概念]
  5. 为什么朴素的连续 KV 分配会浪费内存? [概念]
  6. 量化 KV 缓存(FP16 → INT8)会怎样?哪些任务最先退化? [权衡]
  7. 你的模型在长提示上内存不足——请详述缓解步骤。 [调试]
  8. 比较 KV 缓存压缩技术:量化、驱逐(H2O、StreamingLLM 风格的 sink token)、滑动窗口、跨层共享。在极端上下文长度下哪种效果最好? [权衡]

6.3 系统优化

  1. 什么是连续批处理(continuous batching / in-flight batching)?与静态批处理有何不同? [概念]
  2. 为什么准入控制对连续批处理很重要? [概念]
  3. 什么是分块预填充(chunked prefill)?它如何解决”车队效应”(convoy effect)? [概念]
  4. 什么是前缀缓存(prompt caching)?什么时候收益最大? [概念]
  5. 解释推测解码:草稿模型 → 目标验证。胜利条件是什么? [概念]
  6. 什么是引导/约束解码?为什么它对 JSON/工具输出很重要? [概念]
  7. 比较 vLLM、TGI、TensorRT-LLM 和 SGLang——关键架构差异是什么?何时选择各个? [权衡]

6.4 内核优化

  1. FlashAttention 如何减少 HBM 流量? [概念]
  2. 什么是内核融合?为什么它对预填充和解码都有帮助? [概念]
  3. FlashAttention 与 PagedAttention——它们解决不同问题。请解释。 [概念]
  4. 什么是 FlashDecoding?它如何在 KV 序列维度上并行化解码阶段? [概念]

6.5 服务架构

  1. 为什么要将预填充和解码分离到不同的集群(P/D 分离)? [设计]
  2. 什么是多 LoRA 服务(“Bento”模式)? [设计]
  3. 在多 LoRA 系统中如何按 adapter_id 批处理请求? [设计]
  4. 多适配器服务中的”租户泄漏”是什么?如何防止? [调试]
  5. 你如何为 LLM 推理服务设计自动扩缩容?哪些指标应触发扩容与缩容(队列深度、GPU 利用率、p99 延迟)? [设计]

6.6 压缩

  1. 比较仅权重量化、激活量化和 KV 量化——何时使用? [权衡]
  2. LLM 量化中的”离群值问题”是什么?为什么朴素量化会失败? [概念]
  3. AWQ 和 SmoothQuant 是什么?各自解决什么问题? [概念]
  4. 比较非结构化剪枝、结构化剪枝(N:M 稀疏性)和架构稀疏性(MoE)。 [权衡]
  5. 什么是推理用的知识蒸馏?比较响应蒸馏与 logit 蒸馏。 [权衡]
  6. 为什么剪枝可能引入非线性的”质量悬崖”? [概念]
  7. 比较 GPTQ、AWQ 和 GGML/GGUF 量化。哪个是训练后量化?哪个基于校准?何时使用? [权衡]
  8. 什么是量化感知训练(QAT)?它与训练后量化(PTQ)有何不同?什么时候额外成本值得? [权衡]

6.7 测试时扩展

  1. 什么是测试时扩展(test-time scaling)?它如何在不重新训练的情况下提高可靠性? [概念]
  2. 比较 best-of-N、自一致性投票、批评-修订循环和树搜索(MCTS)。 [权衡]
  3. 何时在测试时扩展上花费计算 vs 重新训练? [权衡]
  4. 解释过程奖励模型(PRM)如何在推理时支持树搜索。广度(更多候选)与深度(更多推理步骤)之间的权衡是什么? [概念]

6.8 指标与评估

  1. 四个核心推理指标是什么(TTFT、TPOT、吞吐量、$/百万 token)? [概念]
  2. 量化后如何设置质量回归门控? [设计]
  3. 你量化了模型,大海捞针准确率下降了——为什么? [调试]
  4. 用户报告”延迟不稳定”——有时快、有时对相似提示慢 5 倍。诊断批处理、缓存和队列深度方面的问题。 [调试]

6.9 系统设计习题

  1. 为什么增大 batch size 提高吞吐量但损害单请求延迟? [概念]
  2. 为延迟敏感的聊天产品设计推理系统。 [设计]
  3. 为批量文档处理设计推理系统(吞吐量 > 延迟)。 [设计]
  4. 你的服务每秒处理万级请求,都附带长 RAG 上下文——你提出什么架构? [设计]
  5. 你需要服务 70B 模型但只有一张 A100 80GB。请详述选项(量化、卸载、更小模型、蒸馏)。 [设计]
  6. 比较云推理(OpenAI API、Bedrock、Vertex AI)vs 自托管(vLLM on GPU、Ollama on Mac)——什么因素决定正确的选择? [权衡]

第七章 — 应用 / 智能体

7.1 智能体基础

  1. 什么是”智能体应用”?它与单次 LLM 调用有何不同? [概念]
  2. 工作流 vs 智能体——何时使用?给出决策规则。 [权衡]
  3. 描述智能体控制循环:感知 → 思考 → 行动 → 检查 → 更新状态 → 重复。 [概念]
  4. 常见的智能体产品有哪些(企业搜索、客服分流、深度研究、编码 Agent、运维自动化)? [概念]
  5. 什么时候不应该使用智能体? [权衡]
  6. 智能体的”苦涩教训”是什么——为什么简单设计配合强模型能胜过复杂框架? [概念]

7.2 架构组件

  1. 智能体系统中的”策略”是什么(模型 + 路由 + 解码设置)? [概念]
  2. 什么是输出契约?为什么它们对生产智能体至关重要? [设计]
  3. 解释验证 → 重试 → 修复的提示模式。 [设计]
  4. 智能体状态(结构化事实)vs 上下文(每轮的 token 载荷)——各应包含什么? [设计]
  5. 何时使用显式规划器 vs 在策略提示中隐式规划? [权衡]
  6. 常见的编排模式有哪些:提示链、路由、并行化、编排器-工人、评估器-优化器? [概念]
  7. 解释”ReAct”模式(推理 + 行动)。它与纯思维链有何不同?有什么失败模式? [概念]

7.3 工具接口设计

  1. 什么构成好的工具契约(schema、验证、超时、重试、幂等性、可观测性)? [设计]
  2. 什么是 MCP(Model Context Protocol)?它与工具服务有什么关系? [概念]
  3. 写工具的幂等性是什么?为什么它至关重要? [概念]
  4. 如何给工具分风险等级(read_low → write_medium → write_high)? [设计]
  5. 你的 Agent 因为工具不是幂等的而执行了重复退款——修复方案是什么? [调试]
  6. 如何在模型之外强制执行工具权限(允许列表、授权)? [设计]
  7. 如何优雅处理工具错误?错误消息应该返回给模型吗?有什么风险? [设计]

7.4 RAG 管线

  1. 详述 RAG 管线:摄入 → 分块 → 嵌入 → 索引 → 检索 → 重排序 → 生成。 [设计]
  2. 为什么分块大小很重要?块太小或太大会怎样? [权衡]
  3. 比较稠密检索(嵌入)、稀疏检索(BM25)和混合检索——何时使用? [权衡]
  4. 什么是交叉编码器重排序?为什么它比双编码器相似度更好但更昂贵? [权衡]
  5. 如何评估检索质量(recall@k、MRR、nDCG)? [概念]
  6. 你的 RAG 系统检索到了正确的文档但模型忽略了它们——出了什么问题? [调试]
  7. 如何防御通过检索文档的提示注入? [设计]
  8. 什么是查询重写和多跳检索?什么时候需要? [概念]
  9. 在生产 RAG 系统中如何处理陈旧索引? [设计]
  10. 比较向量数据库(Pinecone、Weaviate、Qdrant、pgvector)——权衡是什么? [权衡]
  11. 你为 1000 万文档的法律语料库构建了 RAG 系统。检索延迟可以接受但回答质量差。系统诊断:是分块、嵌入模型、检索、重排序还是生成的问题? [调试]
  12. 什么是”智能体 RAG”(agentic RAG)?它与单次检索生成有何不同(如迭代检索、查询分解、检索质量自反思)? [概念]
  13. RAG 管线中如何处理表格、图片和结构化数据? [设计]

7.5 护栏与安全

  1. 生产智能体应该有哪些层级的护栏(相关性、安全、PII、内容审核、规则、工具安全)? [设计]
  2. 智能体何时应该升级到人工介入? [设计]
  3. 如何处理智能体系统中的提示注入攻击? [设计]
  4. 你的 Agent 批准了未授权操作——哪些层失败了? [调试]
  5. “越狱”(绕过安全)和”提示注入”(劫持意图)有什么区别?如何分别防御? [概念]
  6. 如何为智能体系统构建红队评估?你覆盖哪些攻击类别(直接注入、间接注入、社会工程、工具滥用)? [设计]

7.6 记忆与上下文工程

  1. 什么是”上下文工程”——它与提示工程有何不同? [概念]
  2. 如何管理 25 轮以上工具调用循环的上下文增长? [设计]
  3. 什么是”上下文腐蚀”——为什么在很长上下文中检索精度会退化? [概念]
  4. 解释智能体的渐进式信息披露(元数据 → 完整指令 → 深层资源)。 [概念]
  5. 什么是上下文层:固定上下文、工作集、检索上下文、摘要? [设计]
  6. 何时使用子智能体架构来管理上下文? [权衡]
  7. 如何为跨多个会话的对话智能体实现”记忆”?比较显式记忆存储 vs 对过去对话记录的检索。 [设计]

7.7 评估与可观测性

  1. 如何将智能体作为系统来评估(任务成功率、工具准确率、成本、安全)? [设计]
  2. 智能体可观测性系统应该记录什么? [设计]
  3. 为智能体故障构建调试漏斗:工具 → 检索 → 上下文 → 生成 → 护栏。 [设计]
  4. 如何用黄金任务集构建可重放的评估框架? [设计]
  5. 一个智能体任务的成本是多少?如何估算和控制(token 预算、最大迭代、成本上限)? [估算]

7.8 技能与流程

  1. 什么是”Agent 技能”?它与工具和提示有何不同? [概念]
  2. 解释技能的渐进式信息披露层级(元数据 → 完整 SKILL.md → 关联资源)。 [概念]
  3. 技能和 MCP 如何在智能体系统中协同工作? [设计]

7.9 智能体系统设计习题

  1. 设计一个”新闻研究 Agent”:搜索、验证并总结某个主题的新闻,附带引用。 [设计]
  2. 设计一个客服分流 Agent,包含路由、工具使用和人工转接。 [设计]
  3. 设计一个编码/调试 Agent,循环使用代码搜索和测试验证。 [设计]
  4. 如何防止 Agent 中的”搜索 → 获取一切”工具滥用? [设计]
  5. 你的 Agent 每次查询延迟 30 秒——你首先检查哪里? [调试]
  6. 设计一个”AI 数据分析师”Agent:接受自然语言问题、编写 SQL、执行、解读结果并可视化。它需要什么工具?什么护栏? [设计]
  7. 你正在构建一个多 Agent 系统,其中”规划者”Agent 委托给”执行者”Agent。当执行者在任务中途失败时,如何处理故障恢复? [设计]

第八章 — 分类法 / 跨领域概念

8.1 关键区分

  1. 能力 vs 行为——在 LLM 生命周期中各来自哪里? [概念]
  2. 延迟 vs 吞吐量——何时优化哪个? [权衡]
  3. 计算受限 vs 内存受限——如何判断你在哪个区间? [概念]
  4. 稠密模型 vs MoE——各有什么优缺点? [权衡]
  5. 在线 RL(PPO)vs 离线偏好学习(DPO)——何时选择? [权衡]

8.2 常见误解

  1. “分词只是预处理”——为什么这是错的? [概念]
  2. “困惑度越低 = 模型越好”——什么时候不成立? [概念]
  3. “KV 缓存只是 O(n²) 注意力的问题”——还有什么更关键? [概念]
  4. “字节级 BPE = 字符级分词”——区别是什么? [概念]
  5. “打包更多数据 = 更好的模型”——什么时候打包反而有害? [概念]
  6. “RAG 解决幻觉”——为什么只是部分正确? [概念]
  7. “更大的上下文窗口 = 更好的性能”——什么时候更长的上下文反而有害? [概念]
  8. “量化模型总是更差”——什么时候量化模型能胜过更大的全精度模型? [权衡]

8.3 端到端设计

  1. 追踪单个用户查询穿过整个技术栈:分词 → 嵌入 → 变换 → 解码 → 服务 → 返回。 [设计]
  2. 训练选择(架构、分词器、上下文长度)如何约束推理? [权衡]
  3. 你从零开始为垂直领域构建 LLM 驱动的产品——请详述完整技术栈决策。 [设计]
  4. 比较工程权衡:延迟 vs 质量、计算 vs 数据、稠密 vs MoE、工具使用 vs 模型推理。 [权衡]

8.4 跨章节整合(高级)

  1. 预训练中的分词器选择如何影响推理时的 KV 缓存大小?追踪连接:词汇表大小 → 嵌入维度 → KV 头 → 每 token 内存。 [权衡]
  2. 你用 4K 上下文训练了模型但推理时 RAG 需要 128K。追踪完整解决路径:位置编码扩展、KV 缓存管理、分块预填充和检索管线设计。 [设计]
  3. 比较通过以下方式提升模型编码能力的成本:(a) 预训练中添加代码数据,(b) 代码专向 CPT,(c) 代码 SFT,(d) 带执行反馈的代码 RL。各在什么时候合适? [权衡]
  4. 模型产生不正确的工具调用 JSON。诊断问题在于:SFT 数据质量、分词器问题、解码策略还是工具 schema 定义。如何区分? [调试]
  5. 你的生产 LLM 系统每条查询成本 $0.50。业务要求 $0.05。详述每一个优化杠杆:模型大小、量化、批处理、缓存、蒸馏、减少输出 token、切换到 MoE。 [估算]
  6. 你在评估三个竞争 LLM 用于部署。模型 A 最大质量最高。模型 B 中等但推理快。模型 C 最小最便宜。如何为企业客服场景构建评估并给出推荐? [设计]

总计:368 道题

  • 概念题:约 150 道
  • 权衡题:约 85 道
  • 设计题:约 70 道
  • 调试题:约 45 道
  • 估算题:约 15 道
  • 编码题:约 5 道(对应各章代码文件)

参考文献

基础论文

论文 作者 年份 相关章节
Attention Is All You Need Vaswani et al. 2017 第 1 章(注意力、架构)
BERT: Pre-training of Deep Bidirectional Transformers Devlin et al. 2019 第 1、5 章
Language Models are Unsupervised Multitask Learners (GPT-2) Radford et al. 2019 第 1、2 章
Language Models are Few-Shot Learners (GPT-3) Brown et al. 2020 第 1、2、5 章
Neural Machine Translation of Rare Words with Subword Units (BPE) Sennrich, Haddow, Birch 2016 第 1 章(分词)
Efficient Estimation of Word Representations in Vector Space (word2vec) Mikolov et al. 2013 第 1 章(嵌入)
GloVe: Global Vectors for Word Representation Pennington, Socher, Manning 2014 第 1 章(嵌入)

缩放与预训练

论文 作者 年份 相关章节
Scaling Laws for Neural Language Models Kaplan et al. 2020 第 2 章
Training Compute-Optimal Large Language Models (Chinchilla) Hoffmann et al. 2022 第 2 章
The Pile: An 800GB Dataset of Diverse Text for Language Modeling Gao et al. 2020 第 2 章
Deduplicating Training Data Makes Language Models Better Lee et al. 2022 第 2 章
LLaMA: Open and Efficient Foundation Language Models Touvron et al. 2023 第 2、5 章
Llama 2: Open Foundation and Fine-Tuned Chat Models Touvron et al. 2023 第 2、4、5 章

后训练与对齐

论文 作者 年份 相关章节
Training Language Models to Follow Instructions with Human Feedback (InstructGPT) Ouyang et al. 2022 第 4 章(RLHF)
Direct Preference Optimization (DPO) Rafailov et al. 2023 第 4 章(偏好对齐)
LoRA: Low-Rank Adaptation of Large Language Models Hu et al. 2021 第 4 章(PEFT)
QLoRA: Efficient Finetuning of Quantized Language Models Dettmers et al. 2023 第 4 章(PEFT)
LIMA: Less Is More for Alignment Zhou et al. 2023 第 4 章(SFT)
Constitutional AI: Harmlessness from AI Feedback Bai et al. 2022 第 4 章(对齐)
GRPO: Group Relative Policy Optimization Shao et al. 2024 第 4 章(推理 RL)
STaR: Self-Taught Reasoner Zelikman et al. 2022 第 4 章(推理)

架构与模型

论文 作者 年份 相关章节
RoFormer: Enhanced Transformer with Rotary Position Embedding (RoPE) Su et al. 2021 第 1 章(位置编码)、第 5 章
ALiBi: Train Short, Test Long Press et al. 2022 第 1、5 章
GQA: Training Generalized Multi-Query Transformer Models Ainslie et al. 2023 第 1 章(注意力)、第 6 章
Mamba: Linear-Time Sequence Modeling with Selective State Spaces Gu & Dao 2023 第 1 章(架构)
Mixtral of Experts Mistral AI 2024 第 5 章
DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model DeepSeek-AI 2024 第 5 章
DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning DeepSeek-AI 2025 第 4、5 章

推理与压缩

论文 作者 年份 相关章节
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness Dao et al. 2022 第 1、6 章
FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning Dao 2023 第 6 章
Efficient Memory Management for Large Language Model Serving with PagedAttention (vLLM) Kwon et al. 2023 第 6 章
AWQ: Activation-aware Weight Quantization Lin et al. 2024 第 6 章(压缩)
SmoothQuant: Accurate and Efficient Post-Training Quantization Xiao et al. 2023 第 6 章(压缩)
GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers Frantar et al. 2023 第 6 章(压缩)
Fast Inference from Transformers via Speculative Decoding Leviathan, Kalman, Matias 2023 第 6 章(系统优化)

应用与智能体

论文 / 资源 作者 年份 相关章节
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks Lewis et al. 2020 第 7 章(RAG)
ReAct: Synergizing Reasoning and Acting in Language Models Yao et al. 2023 第 7 章(智能体)
Toolformer: Language Models Can Teach Themselves to Use Tools Schick et al. 2023 第 4、7 章
Building Effective Agents(博客) Anthropic 2024 第 7 章
LLM Powered Autonomous Agents(博客) Lilian Weng 2023 第 7 章

面试资源与题库

资源 链接 备注
MLStack.cafe — LLM 面试题(59 题) mlstack.cafe/interview-questions/llms Transformer 架构、注意力、迁移学习、对齐
MLStack.cafe — ChatGPT 面试题(42 题) mlstack.cafe/interview-questions/chatgpt RLHF、分词、上下文处理、评估
MLStack.cafe — NLP 面试题(38 题) mlstack.cafe/interview-questions/nlp 位置编码、编码器-解码器、CNN vs Transformer
Awesome Generative AI Guide — 60 道常见生成式 AI 面试题 github.com/aishwaryanr/awesome-generative-ai-guide 生成模型、LLM、嵌入、多模态、训练与评估
HuggingFace NLP 课程 huggingface.co/learn/nlp-course 第 1–4 章基础
Stanford CS324 — 大语言模型 stanford-cs324.github.io/winter2022 训练、评估、社会影响
Full Stack Deep Learning — LLM Bootcamp 2023 fullstackdeeplearning.com/llm-bootcamp 端到端 LLM 应用开发
Chip Huyen —《Designing ML Systems》(O’Reilly 2022) huyenchip.com 训练、服务、评估、数据分布
Jay Alammar —《图解 Transformer》 jalammar.github.io/illustrated-transformer Transformer 架构可视化指南
Sebastian Raschka —《从零构建大语言模型》(2024) manning.com 架构、预训练、SFT、对齐
UC Berkeley CS294/194-196 — 大语言模型智能体 rdi.berkeley.edu/llm-agents/f24 智能体系统、工具使用、规划