附录 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)
- 为什么现代 LLM 使用子词分词而不是词级或字符级分词?
[概念] - 比较 BPE、WordPiece 和 Unigram LM 分词器——在什么场景下选择哪种?
[权衡] - 什么是字节级 BPE(BBPE)?为什么它更适合多语言模型?
[概念] - 词汇表大小如何在计算量与质量之间取舍?
[权衡] - 你的生物医学领域术语被拆分为 8 个以上子词片段——你会怎么做?有什么风险?
[调试] - 什么是分词器的”碎片率”(fragmentation rate)?它为什么对成本和延迟很重要?
[概念] - 同事在训练和推理之间替换了分词器——会出什么问题?
[调试] - 为什么不能直接比较使用不同分词器的模型的困惑度?
[概念] - 分词如何影响 LLM 的算术和数值推理能力?
[概念] - 如果在训练中途扩展分词器,有什么风险?如何缓解?
[权衡] - Token 数量与 API 成本的关系是什么?在成本敏感的部署中如何优化?
[估算] - SentencePiece 与 HuggingFace Tokenizers 在处理空白和未知字符方面有何不同?
[概念] - 你正在构建一个多语言模型(英语、中文、阿拉伯语、代码)。请详述你的分词器设计决策——词汇表大小、算法选择、字节回退、特殊 token。
[设计] - 一个擅长处理代码的模型在用户粘贴带反引号围栏的 markdown 时突然输出错误——可能的分词问题是什么?
[调试]
1.2 嵌入(Embeddings)
- 模型为什么不能直接使用 token ID 作为数字——为什么需要嵌入?
[概念] - 解释嵌入查找——它如何等价于 one-hot 向量 × 矩阵乘法?
[概念] - 什么是”权重绑定”(weight tying,输入嵌入 = 输出 softmax 权重)?为什么要这样做?
[权衡] - 词/token 嵌入与句子嵌入有什么区别?
[概念] - 比较 CBOW 和 Skip-gram——Skip-gram 在什么时候更优?
[权衡] - FastText 如何处理未登录词?
[概念] - 什么是负采样?为什么训练大规模 word2vec 需要它?
[概念] - 你会如何评估学到的嵌入的质量?
[设计] - 解释上下文嵌入的概念。BERT 风格的模型与静态 word2vec/GloVe 嵌入有何不同?
[概念] - 什么是嵌入空间中的”各向异性问题”(anisotropy problem)——为什么现代 LLM 嵌入会聚集在一个狭窄的锥形区域?如何解决?
[概念] - 跨模态嵌入(如 CLIP)如何在共享空间中对齐文本和图像?什么是对比损失?
[概念] - 你在为生产 RAG 系统选择嵌入模型——你要评估哪些维度(维度大小、延迟、领域覆盖、MTEB 分数)?
[设计]
1.3 注意力机制(Attention)
- 逐步解释缩放点积注意力。为什么要除以 √d_k?
[概念] - 什么是因果掩码?为什么它对只有解码器的 LLM 是必要的?
[概念] - 为什么原始的自注意力在序列长度上是 O(L²) 的?有什么实际后果?
[概念] - 解释多头注意力(MHA)。为什么用多个头而不是一个大头?
[概念] - 什么是交叉注意力?在哪里使用?
[概念] - 比较 MHA、MQA 和 GQA——每种方式如何影响 KV 缓存和质量?
[权衡] - 解释 KV 缓存。为什么在自回归解码时需要它?
[概念] - FlashAttention 如何在不改变注意力数学的情况下提升性能?
[概念] - 什么是稀疏注意力(如滑动窗口)?你得到了什么又失去了什么?
[权衡] - 如何将原始的 softmax 注意力转换为”线性注意力”?有什么权衡?
[概念] - 为什么长上下文预填充会主导首 token 时间(TTFT)?
[概念] - 你将上下文窗口从 4K 翻倍到 128K——什么会出问题?什么变得昂贵?
[估算] - 推导单个 Transformer 层的 KV 缓存内存开销,关于批大小、序列长度、KV 头数和头维度的函数。
[估算] - 什么是 DeepSeek V2 中使用的多头潜在注意力(MLA)?它如何比 GQA 更激进地压缩 KV 缓存?
[概念] - 解释环形注意力(Ring Attention / Striped Attention)。它如何将长序列分布到多个 GPU 上进行训练?
[概念]
1.4 FFN、激活函数、残差连接、归一化
- 如果注意力已经在 token 之间混合了信息,为什么 Transformer 还需要 FFN/MLP?
[概念] - 比较 ReLU、GELU、Swish 和 SwiGLU——为什么现代 LLM 优先使用门控激活函数?
[权衡] - 什么是”死亡 ReLU”问题?
[概念] - 为什么残差(跳跃)连接有助于训练深层网络?
[概念] - 比较 pre-norm 与 post-norm Transformer——哪种在深层更稳定?为什么?
[权衡] - 比较 LayerNorm 和 RMSNorm。为什么现代 LLM 偏好 RMSNorm?
[权衡] - 什么是 DeepNorm?什么时候需要它?
[概念] - 如果从一个 70 层的 Transformer 中移除所有残差连接会怎样?
[调试] - FFN 通常有 4 倍模型维度的”隐藏维度”(或 SwiGLU 中的 8/3 倍)。为什么是这个比例?内存/计算影响是什么?
[概念] - 什么是 Transformer 的”残差流”(residual stream)视角?它如何帮助推理特征电路和超位?
[概念]
1.5 位置编码(Positional Encoding)
- Transformer 为什么需要位置编码?没有它会怎样?
[概念] - 解释正弦位置编码。为什么用不同频率的 sin/cos?
[概念] - 什么是 RoPE(旋转位置嵌入)?用一句话给出直觉。
[概念] - 比较绝对位置、相对位置、RoPE 和 ALiBi——用一句话说出区别。
[权衡] - 什么是”长度外推”?为什么某些位置方案在更长上下文时会退化?
[概念] - NTK-aware 缩放和 YaRN 如何将 RoPE 扩展到更长上下文?
[概念] - 你的模型在 8K 上下文上训练,但用户需要 128K——你有哪些选择?
[设计] - 为什么有些模型(如 ALiBi)声称根本不需要位置编码?它们实际在做什么?
[概念]
1.6 解码策略(Decoding)
- 比较贪心搜索、束搜索、top-k、top-p(核采样)和温度采样。
[概念] - 温度在数学上做了什么?极低温度和极高温度时分别会出什么问题?
[概念] - 为什么束搜索会降低多样性并产生乏味输出?
[概念] - Top-k 与 top-p——哪个在不同提示下更鲁棒?为什么?
[权衡] - 解释”best-of-N”采样。何时使用它而不是单次生成?
[权衡] - 什么是自一致性/多数投票?什么时候有用?
[概念] - 什么是”停止序列”?它为什么对工具调用和结构化输出很重要?
[概念] - 重复惩罚如何工作?它可能意外破坏什么?
[调试] - 用户抱怨模型”太重复”——你首先检查哪些解码参数?
[调试] - 解释 min_p 采样。它与 top-p 有何不同?为什么在开源推理中越来越流行?
[概念] - 引导/约束解码(如 Outlines、LMFE)如何在生成过程中强制执行语法或 JSON schema?运行时开销是什么?
[概念]
1.7 架构(Architecture)
- 比较编码器-only、解码器-only、编码器-解码器和 PrefixLM 架构。
[概念] - 为什么大多数现代聊天 LLM 是解码器-only 的?
[概念] - 什么场景下你会优先选择编码器-only(BERT 风格)而不是解码器-only?
[权衡] - 什么是混合专家(MoE)?为什么路由很重要?
[概念] - 在 MoE 中,什么是负载均衡?为什么它会失败?
[调试] - 哪种架构选择倾向于主导解码时的推理内存?
[概念] - 概述状态空间模型(Mamba)。它针对什么瓶颈?
[概念] - 比较 Transformer、SSM 和循环混合模型(RWKV)在长上下文任务中的表现。
[权衡] - 什么是扩散语言模型?它什么时候可能优于自回归生成?
[概念] - 解释”现代解码器配方”:RoPE + RMSNorm + SwiGLU + GQA。为什么 LLaMA、Mistral、Qwen 及大多数开源模型都收敛于此模式?
[概念] - PaLM 中的”并行注意力 + FFN”是什么?计算节省与质量权衡如何?
[权衡] - DeepSeek V3 中使用的多 Token 预测(MTP)是什么?预测多个未来 token 如何改善训练信号并支持推测解码?
[概念]
第二章 — 预训练
2.1 数据管线与质量
- 详述预训练数据管线:数据源 → 过滤 → 去重 → 分词 → 混合。
[设计] - 为什么”数据质量 > 数据数量”是最重要的预训练原则?
[概念] - 在预训练前,你会对 Common Crawl 数据集应用哪些过滤?
[设计] - 解释训练-训练去重与训练-测试污染——各自为什么重要?
[概念] - 你如何构建一个检测和防止基准测试污染的管线?
[设计] - 你发现模型逐字记忆了训练数据片段——如何诊断和修复?
[调试] - 预训练中哪些数据治理实践很重要(许可证、PII、审计追踪)?
[设计] - 如何大规模处理训练数据中的 PII?
[设计] - 常见的去重策略有哪些(精确哈希、MinHash、嵌入相似度)?
[概念] - 你需要创建一个分类器来过滤预训练语料中的有毒内容。你使用什么架构?如何处理误删有价值数据的假阳性?
[设计] - “质量分类器”(如基于 Wikipedia vs 随机网页训练的分类器)在预训练数据管线中的作用是什么?Llama 3 是如何处理的?
[概念]
2.2 数据混合与分布
- 为什么训练数据混合很重要?举一个添加更多代码数据反而损害对话质量的例子。
[权衡] - 你如何为通用 LLM 设计数据混合?
[设计] - 你添加了领域特定数据后领域性能提高但通用基准下降——发生了什么?
[调试] - 预训练中的”课程学习”(curriculum learning)是什么?
[概念] - 你如何估算向混合中添加新数据源的边际价值?在运行完整预训练之前可以跟踪哪些代理指标?
[设计]
2.3 计算与扩展
- 预训练的主要成本驱动因素是什么(参数、上下文、token 数、精度)?
[概念] - 解释 Chinchilla 缩放定律——参数与 token 的计算最优比例是什么?
[概念] - 粗略估算:训练一个 70B 模型在 2T token 上需要多少 FLOPs?
[估算] - 模型参数翻倍大约会使每个 token 的 FLOPs 怎样变化?
[估算] - 解释数据并行、张量并行和管线并行。各在什么时候使用?
[概念] - 什么是 ZeRO / FSDP?它如何减少内存?
[概念] - 什么是激活检查点(activation checkpointing)?权衡是什么?
[权衡] - 解释混合精度训练(BF16/FP16)。为什么 BF16 在 LLM 中占主导地位?
[权衡] - 什么是”屋顶线模型”(roofline model)?它如何帮助推理 GPU 利用率?
[概念] - 估算预训练一个 7B 参数模型在 1T token 上所需的最少 H100 GPU 数量和时钟时间。说明你的假设。
[估算] - 什么是序列并行?它如何配合张量并行进行长上下文训练?
[概念] - 解释 Megatron-LM 的 3D 并行与 DeepSpeed ZeRO-3 的区别。各在什么时候使用?
[权衡]
2.4 训练配方与监控
- LLM 预训练的典型学习率调度是什么?
[概念] - Loss 在训练中途飙升 3 倍然后缓慢恢复——你如何排查?
[调试] - 预训练中最常见的 5 种故障模式是什么(不稳定、污染、记忆化、分布偏移、安全退化)?
[概念] - 你如何设置”探测集”来监控预训练期间的质量?
[设计] - 训练 Loss 在下降但下游评估分数停滞——出了什么问题?
[调试] - 何时决定停止预训练?你关注哪些信号?
[权衡] - 什么是梯度范数监控?梯度范数突然飙升意味着什么训练问题?你应该怎么做?
[调试]
2.5 评估与下游影响
- 困惑度(perplexity)衡量什么?它有什么局限性?
[概念] - 更低的困惑度并不总意味着更好的指令跟随——为什么?
[概念] - 预训练的选择如何约束中训练、SFT 和推理?
[权衡] - 你的基座模型在代码方面较弱——应该在预训练中修复还是之后?
[权衡] - 你预训练了两个架构相同但数据混合不同的模型。模型 A 困惑度更低但模型 B 在下游任务上得分更高。如何解释?
[调试]
第三章 — 中训练 / 继续预训练(CPT)
3.1 何时使用及原因
- 什么是 CPT?它与预训练和 SFT 有何不同?
[概念] - CPT 与 SFT 与提示工程——何时选择哪个?
[权衡] - 模型在法律文档上困惑度很高但通用性能不错——哪个训练阶段能修复这个问题?
[权衡] - CPT 使用与预训练相同的下一个 token 目标,但在不同的分布上——这在实践中意味着什么?
[概念] - 一家初创公司想将开源 7B 模型especializado医疗问答。他们有 5 万份临床笔记。应该做 CPT、SFT 还是两者都做?请详述决策过程。
[设计]
3.2 数据与混合
- 什么是”通用回放”(general replay)?为什么它对 CPT 至关重要?
[概念] - CPT 起始回放比例是多少(如 80/20)?如何调优?
[设计] - CPT 中的文档打包(document packing)是什么?为什么它对吞吐量很重要?
[概念] - CPT 中是否应该使用课程学习(先更多回放,然后退火)?
[权衡] - CPT 与 SFT 的数据格式有何不同?为什么在文档边界不做注意力掩码的打包会泄漏信息?
[概念]
3.3 稳定性鸿沟
- CPT 中的”稳定性鸿沟”是什么?为什么会发生?
[概念] - 开始 CPT 后通用基准急剧下降——请详述你的调试步骤。
[调试] - 学习率在 CPT 稳定性中扮演什么角色?
[概念] - CPT 监控中的回归门控如何工作?
[设计] - 你运行了 20B token 的 CPT,MMLU 下降了 5 个百分点。继续训练 50B token 后部分恢复。解释这种”U 形”曲线以及如何设置停止标准。
[调试]
3.4 分词器扩展
- 什么时候应该在 CPT 期间扩展分词器?
[权衡] - 如何初始化新增 token 的嵌入?
[概念] - 什么是”训练不足的 token”问题?如何缓解?
[调试]
3.5 训练拓扑
- 比较”三种拓扑”:打包(CPT)、掩码(SFT)、rollout(RL)——每种中哪些 token 贡献梯度?
[概念] - CPT、SFT、DPO 和 RL 在数据构造和损失应用方面有什么区别?
[概念]
3.6 CPT → RL 兼容性
- 中训练如何改善 RL 扩展(如 OctoThinker)?
[概念] - 给定产品需求,你如何在提示 → SFT → DPO → RL → CPT → 蒸馏之间做决策?
[设计]
第四章 — 后训练
4.1 SFT(监督微调)
- 什么是 SFT?什么时候它是首选方案?
[概念] - 描述 SFT 数据的四种形态:单轮对话、多轮对话、工具使用轨迹、安全示范。
[概念] - 什么是”聊天模板陷阱”?一个空格变化如何破坏你的模型?
[调试] - 什么是仅补全损失(completion-only loss,即用户 token 掩码)?为什么它能改善 SFT?
[概念] - 写出掩码 SFT 损失公式。m_t = 0 和 m_t = 1 分别意味着什么?
[概念] - 你的 SFT 模型原样复述用户的提示——出了什么问题?
[调试] - SFT 数据中过多的拒绝示例导致模型拒绝一切——这叫什么?如何修复?
[调试] - 你如何确保聊天模板的训练-推理一致性?
[设计] - 你的 SFT 模型能正确遵循指令但过于冗长——你怎么做?
[调试] - 你在 1 万个样本上做了 SFT,基准分数很好但用户抱怨模型”听起来像机器人”。你的数据可能有什么问题?如何修复?
[调试] - 通常需要多少 SFT 样本?讨论 LIMA 论文”少即是多”的发现与多样性需求之间的关系。
[权衡]
4.2 PEFT / LoRA
- 解释 LoRA——低秩分解是什么?为什么它比全参数微调更便宜?
[概念] - 在 4096×4096 权重矩阵上使用 LoRA rank r = 16——可训练参数与全微调相比有多少?
[估算] - 什么是 QLoRA?它如何进一步减少内存?
[概念] - LoRA 适配器应该附加在哪里(注意力层 vs MLP)?为什么?
[权衡] - 合并适配器(单租户)vs 在线堆叠(多租户)——何时使用?
[权衡] - 什么是适配器多租户?如何服务一个基座模型 + 100 个 LoRA 适配器?
[设计] - 路由 bug 将租户 A 的请求发送到租户 B 的适配器——影响是什么?
[调试] - 在多租户系统中如何对每个适配器进行回归测试?
[设计] - 比较 LoRA 与其他 PEFT 方法:前缀调优、Houlsby 适配器、IA3。LoRA 何时胜出?何时替代方案更好?
[权衡] - 你在 LLaMA-3-8B 上训练了一个 LoRA 适配器。基座模型发布了小版本补丁——能复用你的适配器吗?有什么风险?
[调试]
4.3 偏好对齐(DPO / RLHF / PPO)
- 什么是偏好学习?为什么”哪个更好”比”写出完美答案”更容易标注?
[概念] - 写出 KL 正则化的奖励最大化目标。β 控制什么?
[概念] - 解释完整的 RLHF 管线:偏好标注 → 奖励模型 → PPO。
[概念] - 什么是奖励黑客?举一个具体例子。
[概念] - 为什么完整的 RLHF 作为系统(而非仅仅一个训练任务)是昂贵的?
[权衡] - 用一句话解释 DPO——它如何避免完整的 RL 循环?
[概念] - 比较 DPO 与 ORPO——何时从哪个开始?
[权衡] - DPO/ORPO 的主要限制是什么(提示:数据覆盖)?
[概念] - “更受偏好”不总意味着”更正确”——这为什么重要?
[概念] - 你的 DPO 调优模型偏好胜率更高但事实准确率更低——发生了什么?
[调试] - 解释迭代 DPO / 在线 DPO。为什么在训练期间生成在策略数据比固定的离线偏好对更好?
[概念] - 什么是宪法 AI(Constitutional AI, CAI)?它如何减少对人类标注员的依赖?
[概念] - 你运行 RLHF 后模型学会了非常谄媚(“好问题!”)。奖励模型出了什么问题?如何修复?
[调试]
4.4 工具使用与 RAG 训练
- 为什么仅靠提示不足以在生产中实现可靠的工具使用?
[概念] - 描述工具使用交互链:选择工具 → 填充参数 → 消费输出 → 回答。
[概念] - 工具使用不足(产生幻觉)与过度使用工具(不必要的调用)有什么区别?
[调试] - 工具调用的约束解码是什么?schema 有效性与语义正确性有何不同?
[权衡] - RAG 如何是工具使用的特殊情况?
[概念] - 你的 Agent 产生幻觉回答而不是调用检索工具——如何修复?
[调试] - 如何为多轮工具使用构造训练数据?讨论合成 rollout 生成、按成功过滤和冷启动问题。
[设计]
4.5 推理与智能体 RL
- 比较结果奖励模型(ORM)与过程奖励模型(PRM)。
[权衡] - 什么是 STaR/ReST 风格的自训练循环?为什么它们有助于解决轨迹数据稀缺问题?
[概念] - 解释 GRPO——它如何避免学习的评论家并节省内存?
[概念] - 为什么 GRPO 对训练 70B+ 推理模型很重要?
[权衡] - 推理 RL 中的奖励黑客是什么?它与对话对齐中的表现有何不同?
[调试] - 你的推理模型在 RL 训练过程中输出越来越长——发生了什么?
[调试] - 比较 Dr. GRPO、GSPO、DAPO、LUFFY——每个调整了什么参数?
[概念] - 解释 DeepSeek R1-Zero 的”顿悟时刻”。在没有 SFT 的 RL 训练中出现了什么涌现行为?为什么这很重要?
[概念] - 思维链提示、思维链微调和用 RL 训练推理模型之间有什么区别?各在什么时候使用?
[权衡]
4.6 知识蒸馏
- 黑盒蒸馏 vs 白盒蒸馏——何时使用?
[权衡] - 写出标准知识蒸馏损失(教师和学生分布之间的 KL 散度)。
[概念] - 你的蒸馏学生在基准上与教师相当但在安全方面失败——出了什么问题?
[调试] - 当教师是封闭 API 时,如何管理教师版本漂移?
[设计] - 实际顺序是什么:先黑盒 → 再白盒优化?
[设计] - DeepSeek R1 将推理能力从 R1(671B MoE)蒸馏到 1.5B–70B 的稠密学生模型。使用了什么数据?训练配方是什么?学生与教师差距多大?
[概念]
4.7 后训练系统设计
- 设计一个”医疗记录员”:知道罕见药名(CPT),但拒绝开处方(对齐 + 评估)。
[设计] - 固定计算预算:DPO(训练)还是测试时扩展(推理)?如何决定?
[权衡] - 你的 SFT 模型工具调用格式错误——添加更多数据还是切换到约束解码?
[调试] - 你的 Agent 在多步工具链上失败——在数据、奖励和搜索方面你会改变什么?
[设计] - 你是一家法律科技初创公司的 ML 负责人。你有:一个开源 8B 模型、10 万份合同文档、5000 个标注 QA 对和一个 2 人团队。设计从 CPT 到生产的完整后训练管线。
[设计]
第五章 — 常见模型与基准测试
5.1 架构家族
- 比较 BERT、T5、GPT、LLaMA、Mistral、Qwen、GLM 和 DeepSeek——每个的核心架构选择是什么?
[概念] - 什么是”现代解码器配方”(RoPE + RMSNorm + SwiGLU + GQA)?哪些模型使用它?
[概念] - PaLM 使用并行 Transformer 子层——这意味着什么?为什么?
[概念] - DeepSeek V2/V3 中的多头潜在注意力(MLA)是什么?
[概念] - DeepSeek V3 使用多 Token 预测(MTP)——它是什么?为什么有帮助?
[概念] - DeepSeek R1 如何不用 SFT 训练推理(R1-Zero)?
[概念] - Mistral 中的滑动窗口注意力是什么?它牺牲了什么?
[权衡] - Mixtral 是 MoE:8 个专家、top-2 路由、47B 总参 / ~13B 激活——为什么高效?
[概念] - 追溯演进:GPT-2 → GPT-3 → GPT-3.5 → GPT-4。每一步发生了什么变化(规模、RLHF、多模态、MoE)?
[概念] - 比较 LLaMA 1 vs LLaMA 2 vs LLaMA 3。每一代的关键训练配方变化是什么(不仅仅是规模)?
[概念] - Gemma/Gemini 处理长上下文(高达 1M token)的方法是什么?与 RoPE 外推方法有何不同?
[概念]
5.2 评估与基准测试
- 列出一个通用 LLM 的最小基准套件(知识、数学、代码、对话、安全)。
[设计] - 代码基准中的 pass@k 是什么?与 pass@1 有何不同?
[概念] - MMLU 与 MMLU-Pro——有什么区别?
[概念] - Chatbot Arena(LMSYS)是什么?为什么基于 Elo 的排名有用?
[概念] - 你的模型在 MMLU 上达到 90% 但在真实客户查询上表现不佳——差距在哪里?
[调试] - 常见的评估陷阱有哪些(提示格式、温度、污染、评分方法)?
[概念] - LLM 作为评判者:存在哪些偏差?如何缓解?
[权衡] - 何时使用人类偏好测试而非自动基准?
[权衡] - 如何评估长上下文模型(大海捞针、LongBench)?
[设计] - TruthfulQA 是什么?它针对什么故障模式?
[概念] - 如何评估多模态模型(MMMU、MathVista)?
[概念] - 如何检测已训练模型中的基准污染(数据泄漏)?
[设计] - 你需要评估模型的安全性:使用哪些基准和红队方法?
[设计] - “静态”基准(MMLU、HumanEval)与”动态”基准(Chatbot Arena、LiveCodeBench)有什么区别?为什么动态基准越来越重要?
[概念] - 为面向客户的聊天机器人设计内部评估套件。你测试哪些维度(准确性、安全性、延迟、成本、风格)?如何设置权重?
[设计]
第六章 — 推理与压缩
6.1 推理物理学
- 解释 LLM 推理的两个阶段:预填充 vs 解码。为什么它们有不同的瓶颈?
[概念] - 预填充是计算受限的;解码是内存带宽受限的——解释为什么。
[概念] - 什么是算术强度?它如何决定工作负载是计算受限还是内存受限?
[概念] - 什么是 TTFT?什么主导它?什么是 TPOT/ITL?什么主导它?
[概念] - TTFT 太高——请详述你的调试步骤。
[调试] - 配置更改后 TPOT 变差——你检查什么?
[调试] - H100 有 ~3.35 TB/s 内存带宽和 ~990 TFLOPS BF16。一个 BF16 的 70B 模型约 140GB。batch size = 1 时解码的理论最大 token/秒是多少?瓶颈在哪里?
[估算]
6.2 KV 缓存
- 估算 KV 缓存大小:给定 layers=80、KV heads=8、head dim=128、FP16——每个 token 多少字节?
[估算] - 在 8K 上下文下,根据上述计算每个序列需要多少 KV 内存?
[估算] - GQA 相比 MHA 如何减少 KV 缓存?给出缩放因子。
[概念] - 什么是 PagedAttention?它如何类似于虚拟内存?
[概念] - 为什么朴素的连续 KV 分配会浪费内存?
[概念] - 量化 KV 缓存(FP16 → INT8)会怎样?哪些任务最先退化?
[权衡] - 你的模型在长提示上内存不足——请详述缓解步骤。
[调试] - 比较 KV 缓存压缩技术:量化、驱逐(H2O、StreamingLLM 风格的 sink token)、滑动窗口、跨层共享。在极端上下文长度下哪种效果最好?
[权衡]
6.3 系统优化
- 什么是连续批处理(continuous batching / in-flight batching)?与静态批处理有何不同?
[概念] - 为什么准入控制对连续批处理很重要?
[概念] - 什么是分块预填充(chunked prefill)?它如何解决”车队效应”(convoy effect)?
[概念] - 什么是前缀缓存(prompt caching)?什么时候收益最大?
[概念] - 解释推测解码:草稿模型 → 目标验证。胜利条件是什么?
[概念] - 什么是引导/约束解码?为什么它对 JSON/工具输出很重要?
[概念] - 比较 vLLM、TGI、TensorRT-LLM 和 SGLang——关键架构差异是什么?何时选择各个?
[权衡]
6.4 内核优化
- FlashAttention 如何减少 HBM 流量?
[概念] - 什么是内核融合?为什么它对预填充和解码都有帮助?
[概念] - FlashAttention 与 PagedAttention——它们解决不同问题。请解释。
[概念] - 什么是 FlashDecoding?它如何在 KV 序列维度上并行化解码阶段?
[概念]
6.5 服务架构
- 为什么要将预填充和解码分离到不同的集群(P/D 分离)?
[设计] - 什么是多 LoRA 服务(“Bento”模式)?
[设计] - 在多 LoRA 系统中如何按 adapter_id 批处理请求?
[设计] - 多适配器服务中的”租户泄漏”是什么?如何防止?
[调试] - 你如何为 LLM 推理服务设计自动扩缩容?哪些指标应触发扩容与缩容(队列深度、GPU 利用率、p99 延迟)?
[设计]
6.6 压缩
- 比较仅权重量化、激活量化和 KV 量化——何时使用?
[权衡] - LLM 量化中的”离群值问题”是什么?为什么朴素量化会失败?
[概念] - AWQ 和 SmoothQuant 是什么?各自解决什么问题?
[概念] - 比较非结构化剪枝、结构化剪枝(N:M 稀疏性)和架构稀疏性(MoE)。
[权衡] - 什么是推理用的知识蒸馏?比较响应蒸馏与 logit 蒸馏。
[权衡] - 为什么剪枝可能引入非线性的”质量悬崖”?
[概念] - 比较 GPTQ、AWQ 和 GGML/GGUF 量化。哪个是训练后量化?哪个基于校准?何时使用?
[权衡] - 什么是量化感知训练(QAT)?它与训练后量化(PTQ)有何不同?什么时候额外成本值得?
[权衡]
6.7 测试时扩展
- 什么是测试时扩展(test-time scaling)?它如何在不重新训练的情况下提高可靠性?
[概念] - 比较 best-of-N、自一致性投票、批评-修订循环和树搜索(MCTS)。
[权衡] - 何时在测试时扩展上花费计算 vs 重新训练?
[权衡] - 解释过程奖励模型(PRM)如何在推理时支持树搜索。广度(更多候选)与深度(更多推理步骤)之间的权衡是什么?
[概念]
6.8 指标与评估
- 四个核心推理指标是什么(TTFT、TPOT、吞吐量、$/百万 token)?
[概念] - 量化后如何设置质量回归门控?
[设计] - 你量化了模型,大海捞针准确率下降了——为什么?
[调试] - 用户报告”延迟不稳定”——有时快、有时对相似提示慢 5 倍。诊断批处理、缓存和队列深度方面的问题。
[调试]
6.9 系统设计习题
- 为什么增大 batch size 提高吞吐量但损害单请求延迟?
[概念] - 为延迟敏感的聊天产品设计推理系统。
[设计] - 为批量文档处理设计推理系统(吞吐量 > 延迟)。
[设计] - 你的服务每秒处理万级请求,都附带长 RAG 上下文——你提出什么架构?
[设计] - 你需要服务 70B 模型但只有一张 A100 80GB。请详述选项(量化、卸载、更小模型、蒸馏)。
[设计] - 比较云推理(OpenAI API、Bedrock、Vertex AI)vs 自托管(vLLM on GPU、Ollama on Mac)——什么因素决定正确的选择?
[权衡]
第七章 — 应用 / 智能体
7.1 智能体基础
- 什么是”智能体应用”?它与单次 LLM 调用有何不同?
[概念] - 工作流 vs 智能体——何时使用?给出决策规则。
[权衡] - 描述智能体控制循环:感知 → 思考 → 行动 → 检查 → 更新状态 → 重复。
[概念] - 常见的智能体产品有哪些(企业搜索、客服分流、深度研究、编码 Agent、运维自动化)?
[概念] - 什么时候不应该使用智能体?
[权衡] - 智能体的”苦涩教训”是什么——为什么简单设计配合强模型能胜过复杂框架?
[概念]
7.2 架构组件
- 智能体系统中的”策略”是什么(模型 + 路由 + 解码设置)?
[概念] - 什么是输出契约?为什么它们对生产智能体至关重要?
[设计] - 解释验证 → 重试 → 修复的提示模式。
[设计] - 智能体状态(结构化事实)vs 上下文(每轮的 token 载荷)——各应包含什么?
[设计] - 何时使用显式规划器 vs 在策略提示中隐式规划?
[权衡] - 常见的编排模式有哪些:提示链、路由、并行化、编排器-工人、评估器-优化器?
[概念] - 解释”ReAct”模式(推理 + 行动)。它与纯思维链有何不同?有什么失败模式?
[概念]
7.3 工具接口设计
- 什么构成好的工具契约(schema、验证、超时、重试、幂等性、可观测性)?
[设计] - 什么是 MCP(Model Context Protocol)?它与工具服务有什么关系?
[概念] - 写工具的幂等性是什么?为什么它至关重要?
[概念] - 如何给工具分风险等级(read_low → write_medium → write_high)?
[设计] - 你的 Agent 因为工具不是幂等的而执行了重复退款——修复方案是什么?
[调试] - 如何在模型之外强制执行工具权限(允许列表、授权)?
[设计] - 如何优雅处理工具错误?错误消息应该返回给模型吗?有什么风险?
[设计]
7.4 RAG 管线
- 详述 RAG 管线:摄入 → 分块 → 嵌入 → 索引 → 检索 → 重排序 → 生成。
[设计] - 为什么分块大小很重要?块太小或太大会怎样?
[权衡] - 比较稠密检索(嵌入)、稀疏检索(BM25)和混合检索——何时使用?
[权衡] - 什么是交叉编码器重排序?为什么它比双编码器相似度更好但更昂贵?
[权衡] - 如何评估检索质量(recall@k、MRR、nDCG)?
[概念] - 你的 RAG 系统检索到了正确的文档但模型忽略了它们——出了什么问题?
[调试] - 如何防御通过检索文档的提示注入?
[设计] - 什么是查询重写和多跳检索?什么时候需要?
[概念] - 在生产 RAG 系统中如何处理陈旧索引?
[设计] - 比较向量数据库(Pinecone、Weaviate、Qdrant、pgvector)——权衡是什么?
[权衡] - 你为 1000 万文档的法律语料库构建了 RAG 系统。检索延迟可以接受但回答质量差。系统诊断:是分块、嵌入模型、检索、重排序还是生成的问题?
[调试] - 什么是”智能体 RAG”(agentic RAG)?它与单次检索生成有何不同(如迭代检索、查询分解、检索质量自反思)?
[概念] - RAG 管线中如何处理表格、图片和结构化数据?
[设计]
7.5 护栏与安全
- 生产智能体应该有哪些层级的护栏(相关性、安全、PII、内容审核、规则、工具安全)?
[设计] - 智能体何时应该升级到人工介入?
[设计] - 如何处理智能体系统中的提示注入攻击?
[设计] - 你的 Agent 批准了未授权操作——哪些层失败了?
[调试] - “越狱”(绕过安全)和”提示注入”(劫持意图)有什么区别?如何分别防御?
[概念] - 如何为智能体系统构建红队评估?你覆盖哪些攻击类别(直接注入、间接注入、社会工程、工具滥用)?
[设计]
7.6 记忆与上下文工程
- 什么是”上下文工程”——它与提示工程有何不同?
[概念] - 如何管理 25 轮以上工具调用循环的上下文增长?
[设计] - 什么是”上下文腐蚀”——为什么在很长上下文中检索精度会退化?
[概念] - 解释智能体的渐进式信息披露(元数据 → 完整指令 → 深层资源)。
[概念] - 什么是上下文层:固定上下文、工作集、检索上下文、摘要?
[设计] - 何时使用子智能体架构来管理上下文?
[权衡] - 如何为跨多个会话的对话智能体实现”记忆”?比较显式记忆存储 vs 对过去对话记录的检索。
[设计]
7.7 评估与可观测性
- 如何将智能体作为系统来评估(任务成功率、工具准确率、成本、安全)?
[设计] - 智能体可观测性系统应该记录什么?
[设计] - 为智能体故障构建调试漏斗:工具 → 检索 → 上下文 → 生成 → 护栏。
[设计] - 如何用黄金任务集构建可重放的评估框架?
[设计] - 一个智能体任务的成本是多少?如何估算和控制(token 预算、最大迭代、成本上限)?
[估算]
7.8 技能与流程
- 什么是”Agent 技能”?它与工具和提示有何不同?
[概念] - 解释技能的渐进式信息披露层级(元数据 → 完整 SKILL.md → 关联资源)。
[概念] - 技能和 MCP 如何在智能体系统中协同工作?
[设计]
7.9 智能体系统设计习题
- 设计一个”新闻研究 Agent”:搜索、验证并总结某个主题的新闻,附带引用。
[设计] - 设计一个客服分流 Agent,包含路由、工具使用和人工转接。
[设计] - 设计一个编码/调试 Agent,循环使用代码搜索和测试验证。
[设计] - 如何防止 Agent 中的”搜索 → 获取一切”工具滥用?
[设计] - 你的 Agent 每次查询延迟 30 秒——你首先检查哪里?
[调试] - 设计一个”AI 数据分析师”Agent:接受自然语言问题、编写 SQL、执行、解读结果并可视化。它需要什么工具?什么护栏?
[设计] - 你正在构建一个多 Agent 系统,其中”规划者”Agent 委托给”执行者”Agent。当执行者在任务中途失败时,如何处理故障恢复?
[设计]
第八章 — 分类法 / 跨领域概念
8.1 关键区分
- 能力 vs 行为——在 LLM 生命周期中各来自哪里?
[概念] - 延迟 vs 吞吐量——何时优化哪个?
[权衡] - 计算受限 vs 内存受限——如何判断你在哪个区间?
[概念] - 稠密模型 vs MoE——各有什么优缺点?
[权衡] - 在线 RL(PPO)vs 离线偏好学习(DPO)——何时选择?
[权衡]
8.2 常见误解
- “分词只是预处理”——为什么这是错的?
[概念] - “困惑度越低 = 模型越好”——什么时候不成立?
[概念] - “KV 缓存只是 O(n²) 注意力的问题”——还有什么更关键?
[概念] - “字节级 BPE = 字符级分词”——区别是什么?
[概念] - “打包更多数据 = 更好的模型”——什么时候打包反而有害?
[概念] - “RAG 解决幻觉”——为什么只是部分正确?
[概念] - “更大的上下文窗口 = 更好的性能”——什么时候更长的上下文反而有害?
[概念] - “量化模型总是更差”——什么时候量化模型能胜过更大的全精度模型?
[权衡]
8.3 端到端设计
- 追踪单个用户查询穿过整个技术栈:分词 → 嵌入 → 变换 → 解码 → 服务 → 返回。
[设计] - 训练选择(架构、分词器、上下文长度)如何约束推理?
[权衡] - 你从零开始为垂直领域构建 LLM 驱动的产品——请详述完整技术栈决策。
[设计] - 比较工程权衡:延迟 vs 质量、计算 vs 数据、稠密 vs MoE、工具使用 vs 模型推理。
[权衡]
8.4 跨章节整合(高级)
- 预训练中的分词器选择如何影响推理时的 KV 缓存大小?追踪连接:词汇表大小 → 嵌入维度 → KV 头 → 每 token 内存。
[权衡] - 你用 4K 上下文训练了模型但推理时 RAG 需要 128K。追踪完整解决路径:位置编码扩展、KV 缓存管理、分块预填充和检索管线设计。
[设计] - 比较通过以下方式提升模型编码能力的成本:(a) 预训练中添加代码数据,(b) 代码专向 CPT,(c) 代码 SFT,(d) 带执行反馈的代码 RL。各在什么时候合适?
[权衡] - 模型产生不正确的工具调用 JSON。诊断问题在于:SFT 数据质量、分词器问题、解码策略还是工具 schema 定义。如何区分?
[调试] - 你的生产 LLM 系统每条查询成本 $0.50。业务要求 $0.05。详述每一个优化杠杆:模型大小、量化、批处理、缓存、蒸馏、减少输出 token、切换到 MoE。
[估算] - 你在评估三个竞争 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 | 智能体系统、工具使用、规划 |