大模型常见面试题
这是一份适合手机文字转语音,也就是 TTS,连续收听的中文复习材料。每道题先给结论,再解释机制、权衡和常见追问。公式尽量改成可听懂的自然语言。
筛选说明:原 MiniMind 一百问中,只保留稳定、高频、能检验基础理解的内容。重复问题被合并,偏冷门技巧、单一框架细节和开放式预测题被删除。每个主题保留五道核心源题,再补充五道当前高频题,共七十道。
播客导读
整套内容沿着一条完整主线展开:文本先经过位置编码和分词,进入 Transformer;模型通过预训练获得基础能力,再通过监督微调和偏好优化学习如何回答;训练完成后,还要解决推理效率、知识检索、工具调用和可靠评测。理解这条主线,比孤立背诵七十个答案更重要。
内容分为七个相对独立的主题,适合制作成七期节目。每期都可以先解释“这个主题解决什么问题”,再讨论核心机制,最后比较工程权衡。英文缩写在第一次出现时会给出中文含义;后续再次出现时使用常见缩写。答案中的“补充高频题”代表原始题单之外、但现代岗位经常追问的内容。
收听时,可以在每个问题后暂停,先用自己的话回答,再继续听标准答案。复述时至少覆盖三点:它是什么,它为什么有效,它的代价或验证方法是什么。
一、Transformer 基础架构
1. 自注意力怎样计算?物理含义是什么?
回答: 输入分别乘三个投影矩阵,得到查询 Q、键 K、值 V。Q 与 K 的转置相乘,得到每个位置对其他位置的相关性;分数除以根号下键维度,再做 Softmax,最后用权重对 V 加权求和。直观上,Q 表示“我在找什么”,K 表示“我能提供什么线索”,V 表示“真正传递的内容”。它让每个 token 根据上下文动态汇聚信息。
2. 为什么需要多头注意力和缩放因子?
回答: 多头把隐藏维度拆成多个子空间,让不同头分别学习语法、指代、局部模式或长距离关系。头数太多会让每个头过窄,并非越多越好。点积随键维度增大而方差变大,所以要除以根号下 d k。否则 Softmax 容易饱和成接近零和一,梯度变小,训练不稳定。
3. Pre-Norm、Post-Norm、残差连接分别解决什么问题?
回答: Post-Norm 先做子层和残差相加,再归一化;Pre-Norm 先归一化,再做子层并加回残差。Pre-Norm 保留更干净的恒等通路,深层训练通常更稳定。残差连接让每层只学习增量,同时让信息和梯度跨层传播。现代大模型多用 Pre-Norm,并常把 LayerNorm 换成计算更简单的 RMSNorm。
4. BERT、GPT、T5 有什么区别?为什么通用大模型多用 Decoder-only?
回答: BERT 是 Encoder-only,双向读取上下文,适合理解和表征。GPT 是 Decoder-only,用因果掩码逐 token 预测,天然适合生成。T5 是 Encoder-Decoder,编码器读完整输入,解码器通过交叉注意力生成输出。Decoder-only 只有一种堆栈和训练目标,数据形式统一、扩展简单,还能把理解任务改写为生成任务,所以成为通用大模型的主流。
5. KV Cache、GQA 和 MQA 如何改善推理?
回答: 生成新 token 时,历史 token 的 K 和 V 不会变化。KV Cache 保存每层历史 K、V,避免重复计算整个前缀,但显存随层数、长度、批量和 KV 头数增长。MHA 每个查询头有独立 K、V;MQA 让所有查询头共享一组 K、V,缓存最小;GQA 让一组查询头共享 K、V,是质量与速度之间的常见折中。
6. 补充高频题:Prefill 和 Decode 有什么不同?
回答: Prefill 一次处理完整提示,可以并行做大矩阵运算,通常计算密集,显著影响首 token 延迟。Decode 每步只新增一个 token,却要读取全部历史 KV Cache,串行步数多,常受显存带宽和调度限制。Prefill 优化更关注并行计算与 FlashAttention;Decode 更关注缓存管理、批处理、量化和减少每步访存。
7. 补充高频题:怎样估算稠密 Transformer 参数量?
回答: 忽略偏置和归一化参数,一层标准注意力的 Q、K、V、O 四个投影约为四倍 D 平方;前馈网络约为八倍 D 平方,所以每层约十二倍 D 平方。L 层约为十二乘 L 乘 D 平方。再加词嵌入和输出头,权重共享时约为词表大小 V 乘 D。回答时要先说明是否使用 GQA、SwiGLU、MoE 和权重共享。
8. 补充高频题:FlashAttention 改变了注意力数学吗?
回答: 没有。FlashAttention 计算的仍是精确注意力,只是把 Q、K、V 分块搬进更快的片上存储,使用在线 Softmax,避免把完整 N 乘 N 分数矩阵反复写入显存。它减少的是高带宽显存读写和中间激活,不是把二次计算复杂度变成线性。长序列时通常更快,也显著节省训练显存。
9. 补充高频题:MoE 怎样工作?为什么要做负载均衡?
回答: MoE 用多个专家前馈网络替代一个普通前馈层,路由器为每个 token 选择 Top-k 专家。这样总参数量可以很大,但每个 token 只激活少数专家。若路由器把大多数 token 发给少数专家,会出现拥塞、丢 token 和其他专家训练不足。负载均衡损失与容量限制用于改善分配,系统瓶颈常是跨设备 All-to-All 通信。
10. 补充高频题:Attention Mask 和 Loss Mask 有什么区别?
回答: Attention Mask 决定一个 token 能看到哪些输入。因果掩码屏蔽未来,Padding Mask 屏蔽补齐位置。Loss Mask 决定哪些位置参与训练目标,例如 assistant-only SFT 保留用户输入供注意力读取,却把用户位置标签设为负一百。两者混淆会导致信息泄漏、错误监督或真实 EOS 被误屏蔽。
二、位置编码与 Tokenizer
1. 绝对位置编码、RoPE 和 ALiBi 有什么区别?
回答: 正弦或可学习绝对位置编码把位置向量加入 token 表示。RoPE 根据位置旋转 Q 和 K,使点积自然依赖相对距离。ALiBi 直接给远距离注意力分数加入线性负偏置。RoPE 局部表达强,是现代模型主流;ALiBi 外推简单。任何方法超出训练长度都不能假设无限可靠,必须在真实长文任务上验证。
2. RoPE 怎样编码相对位置?为什么长文本需要缩放?
回答: RoPE 把每两个维度看成二维平面,根据 token 位置和频率旋转 Q、K。两个旋转向量的点积只依赖位置差,因此注意力获得相对位置信息。远超训练长度时,模型会看到未训练过的相位分布,所以常用位置插值、NTK-aware scaling 或 YaRN 调整频率。扩窗后要同时检查短文本能力和长文本检索。
3. 常见 Tokenizer 算法怎样比较?
回答: 词级分词语义完整,但词表巨大且存在未登录词;字符级词表小,但序列很长。BPE 反复合并高频相邻单元;WordPiece 更关注合并后的似然增益;Unigram 从较大候选词表出发,按概率模型剪枝。SentencePiece 是可直接处理原始文本的实现框架,可训练 BPE 或 Unigram。比较重点是词表、序列长度、可逆性和多语言效率。
4. BPE 的训练、编码和解码分别怎样做?
回答: 训练从字符或字节开始,统计相邻对,合并最高频的一对并分配新 ID,重复到目标词表大小。编码新文本不能重新按新文本频率合并,而要按训练时学到的规则优先级执行。解码把每个 token ID 还原为对应字节,连接后再按 UTF-8 解码。真正的训练产物是词表和有序合并表。
5. 为什么现代 LLM 常用 Byte-level BPE?词表大小有什么影响?
回答: 任意有效文本都能表示成零到二百五十五的 UTF-8 字节,因此基础字节词表能覆盖任何语言、Emoji 和罕见符号,基本消除 OOV。BPE 再合并常见字节序列。大词表缩短序列,却增大嵌入和输出头,并让低频 token 难以充分训练;小词表参数少,却增加序列长度。必须按语言、代码和数字分别评估。
6. 补充高频题:特殊 token 为什么必须原子化?
回答: EOS、消息边界、工具调用等特殊 token 是协议控制符,必须映射为一个保留 ID。如果按普通文本拆开,模型无法稳定识别边界。Tokenizer 应先保护被系统允许的特殊字符串,再处理普通文本。安全上必须区分系统插入的控制 token 与用户输入的同形字符串,避免用户伪造结束标记或角色边界。
7. 补充高频题:Normalization 和 Pre-tokenization 分别做什么?
回答: Normalization 在分词前统一 Unicode、大小写或空白,但过度处理可能破坏代码和可逆性。Pre-tokenization 用规则先切分字母、数字、标点和空白块,再在块内做子词合并,防止不合理的跨类别合并。训练、推理和评测必须使用完全一致的规范化与预切分规则。
8. 补充高频题:什么是 token fertility?
回答: Token fertility 表示一个词、字符或固定长度文本需要多少 token。数值越高,训练和推理越贵,可用上下文越少。英文高效的词表可能让中文、阿拉伯语或代码产生更多 token。评估 tokenizer 时,应按语言与领域报告 token 比率,而不是只看总词表大小。
9. 补充高频题:Chat Template 与 Tokenizer 不一致会怎样?
回答: 模型实际看到的是模板序列化后的 token 序列,而不是消息对象。模板若漏掉角色边界、重复 BOS,或使用错误的特殊 token ID,模型会续写用户文本、无法停止或误解工具结果。SFT、推理和评测应共享同一模板,并测试多轮、工具调用、空回答和截断边界。
10. 补充高频题:Tokenizer 为什么会影响数学、代码和安全?
回答: 数字若被不一致地切成不同片段,模型更难学习统一位值。代码中的空格和换行若 token 效率低,会浪费上下文并增加缩进错误。特殊 token 若未隔离,可能造成协议注入。Tokenizer 还决定不同语言的成本,所以它是模型能力、效率和攻击面的组成部分,不只是预处理。
三、预训练与训练系统
1. Scaling Laws 的核心结论是什么?
回答: Scaling Laws 描述参数量、训练 token 数和计算量与损失之间的幂律关系。早期结果更强调增大模型,Chinchilla 发现许多模型训练 token 不足,固定计算下应更均衡地增加模型和数据。不要死背单一比例,因为数据质量、重复训练、架构和推理成本都会改变最优点。核心是给定预算时联合优化参数、数据和训练步数。
2. 预训练数据为什么要去重和质量过滤?
回答: 重复内容浪费计算、放大热门来源、增加记忆和评测泄漏。精确去重可用哈希,近似去重常用 n-gram、MinHash 与局部敏感哈希。质量过滤删除乱码、模板页和低信息文本,但过度过滤会损失语言与领域多样性。应结合规则、分类器、人工抽检和小规模消融,保留簇内质量最高版本。
3. Loss Spike 的原因和处理顺序是什么?
回答: 损失尖峰可能来自异常批次、过高学习率、梯度爆炸、数值溢出、通信错误或数据管道损坏。先保存批次与状态,检查梯度范数、激活范围、学习率和各 rank 一致性,再定位样本。缓解方法包括梯度裁剪、降低学习率、BF16、跳过已确认坏批次和从稳定检查点恢复。不要只把尖峰平均掉而不找根因。
4. FP16、BF16 和混合精度有什么区别?
回答: FP16 尾数较多但指数范围小,容易溢出,常需 Loss Scaling。BF16 与 FP32 的指数范围相同,大模型训练通常更稳定,但有效精度较低。混合精度不代表所有数据都用低精度:矩阵乘法可用 BF16,累加、归一化、主权重和优化器状态常保留 FP32。具体内存账本取决于实现。
5. ZeRO、DP、TP 和 PP 怎样配合?
回答: 数据并行 DP 复制模型、切分样本。ZeRO 一阶段切优化器状态,二阶段再切梯度,三阶段连参数也切。张量并行 TP 切分单层大矩阵,层内通信频繁。流水线并行 PP 把不同层放在不同设备,用微批量减少气泡。大型训练常组合它们,并把高频通信映射到最快的互联拓扑。
6. 补充高频题:为什么需要学习率 Warmup 和衰减?
回答: 训练初期参数、激活和优化器矩估计都不稳定,直接使用峰值学习率容易发散。Warmup 从小学习率逐步升高,让训练状态平稳建立。之后使用余弦或线性衰减,降低后期更新噪声。调度应按有效 token 或优化器更新计算,恢复训练时不能错误重置。
7. 补充高频题:全局 Batch Size 和梯度累积怎样计算?
回答: 全局 Batch Size 等于每卡微批量乘数据并行卡数,再乘梯度累积步数。梯度累积让显存较小的设备模拟大批量,但会增加一次参数更新的等待时间。批量增大通常降低梯度噪声、提高吞吐,却可能需要调整学习率。比较实验应同时对齐处理 token 数和优化器更新数。
8. 补充高频题:怎样设计数据混合比例?
回答: 不能只按原始数据量采样,否则网页会淹没代码、数学和低资源语言。常给各领域设权重、温度或采样上限,再用小模型和短程退火实验比较边际收益。还要监控过滤与打包后的真实 token 占比,因为它可能偏离配置比例。
9. 补充高频题:怎样防止评测集污染?
回答: 训练前收集评测题、答案和改写,对文档做精确匹配、n-gram 重叠与近似检测,并记录时间边界。只搜索完整题目不够,网页可能包含答案解析。训练后可做提示扰动、异常记忆和时间切片分析。污染很难被完全证明不存在,因此要报告检测方法,并优先使用受控或私有评测。
10. 补充高频题:完整检查点应保存什么?
回答: 除模型参数外,还要保存优化器、学习率调度器、混合精度状态、随机数状态、数据迭代位置和配置。分布式保存要保证所有分片属于同一步,并用完成标记避免读取半写入检查点。恢复后应验证下一批数据、损失和学习率连续,否则只是加载权重,不是真正恢复训练。
四、SFT 与参数高效微调
1. SFT 与预训练的目标有什么区别?
回答: 预训练在海量原始文本上做下一 token 预测,学习语言和知识分布。SFT 使用指令、上下文和高质量回答,教模型遵循任务和输出格式。两者可用交叉熵,但 SFT 常只监督 assistant 回答。SFT 数据少得多、学习率更低、质量要求更高,以避免破坏预训练能力。
2. LoRA 的原理是什么?为什么少量参数有效?
回答: LoRA 冻结原权重 W,只学习低秩更新 B 乘 A。若 rank 很小,新增参数从输入维度乘输出维度,降为 rank 乘两维之和。许多任务适配所需的权重变化具有较低内在维度,所以低秩更新能捕捉主要方向。Rank 决定容量,Alpha 与 rank 的比值控制缩放,部署时可以合并回原权重。
3. QLoRA 相比 LoRA 改进了什么?
回答: QLoRA 把冻结的基础权重量化到四比特,LoRA 适配器与必要计算保留较高精度。经典方法使用 NF4、Double Quantization 和 Paged Optimizer。量化权重不直接更新,梯度只训练适配器。它显著降低显存门槛,但量化反量化有开销,所以吞吐不一定比 BF16 LoRA 更快。
4. 多轮对话怎样做 Loss Masking?
回答: 先用与推理一致的 Chat Template 序列化对话。System、user、tool 和历史 assistant token 都保留在输入里供注意力读取;assistant-only SFT 则把不监督位置的标签设为负一百,只训练目标回答和通常的回合结束 token。不能按 token 值盲目屏蔽,因为 EOS 可能同时被当作 PAD。
5. 微调中的灾难性遗忘和过拟合怎样缓解?
回答: 灾难性遗忘是新任务提升但通用能力下降;过拟合表现为训练损失下降而验证质量变差或输出模板化。可降低学习率与 epoch、使用 LoRA、混入通用保留数据、扩大任务多样性并早停。训练期间要同时评估目标任务、通用能力、安全和格式,不能只看训练损失。
6. 补充高频题:Chat Template 为什么属于训练协议?
回答: 模型看到的是角色标记、换行、工具结果和内容组成的 token 序列,而不是消息对象。SFT 与线上模板不同会造成分布偏移,模型可能误认角色或结束位置。模板还决定 assistant mask 的边界。模型、tokenizer 和模板应一起版本化,并用多轮、工具和截断样本测试。
7. 补充高频题:Packing 和 Padding 有什么区别?
回答: Padding 把批次样本补到相同长度,简单但浪费计算。Packing 把多个短样本拼到固定长度,提高 token 利用率。Packing 必须正确处理位置、因果边界和损失掩码,避免后一个样本读取前一个无关样本。是否值得使用取决于长度分布和框架对 block-diagonal attention 的支持。
8. 补充高频题:LoRA 目标模块怎样选择?
回答: 常从注意力 Q、V 投影开始,复杂任务可覆盖 Q、K、V、O 与前馈层。覆盖更多模块增加容量和成本,也可能过拟合。应通过验证集、梯度或消融选择,而不是机械复制配置。若领域变化很大,还要考虑嵌入、输出头或全量微调。
9. 补充高频题:怎样评估 SFT 是否真正有效?
回答: 数据侧看正确率、重复、长度、领域、语言与格式分布,并人工抽检。模型侧同时评估目标任务、通用能力、安全、格式遵循和长短回答切片。自动指标用于回归,关键样本用人工或校准过的 Judge 复核。最好通过消融回答“哪类数据带来了哪项提升”。
10. 补充高频题:LoRA 合并部署有哪些风险?
回答: 合并前必须确认基础模型版本、目标模块、缩放和精度一致。多个适配器不能假设可直接相加。量化模型常先在较高精度合并,再重新量化。合并后应检查权重差异、困惑度、目标任务和生成一致性,并保留未合并适配器以便回滚。
五、对齐、偏好优化与强化学习
1. 经典 RLHF 有哪三个阶段?
回答: 第一阶段用高质量示范做 SFT。第二阶段收集同一提示下多个回答的人类偏好,训练奖励模型。第三阶段用 PPO 等方法优化策略,使奖励升高,同时用 KL 约束避免偏离参考模型。真实系统还包含采样、数据质检、安全过滤与独立评测,这些常比算法名称更决定最终效果。
2. 奖励模型怎样训练?
回答: 模型为提示和回答输出标量分数。对偏好回答与非偏好回答,使用 Bradley-Terry 形式,让前者分数更高。损失关注分数差,不保证不同提示的绝对分数可比。必须控制长度、位置、格式和风格偏差,并在留出提示、困难样本和不同模型候选上评估泛化。
3. PPO 中 KL、价值模型和裁剪分别做什么?
回答: 价值模型提供基线,用 GAE 估计优势,降低策略梯度方差。新旧策略概率比用于衡量更新,PPO 裁剪限制一次变化过大。KL 惩罚让当前策略不要远离参考策略,避免利用奖励漏洞。PPO 能用在线样本,但需要策略、参考、奖励和价值模型,系统复杂且对超参数敏感。
4. DPO 的核心思想和局限是什么?
回答: DPO 直接训练策略相对参考模型提高偏好回答概率、降低非偏好回答概率,不需要显式奖励模型、价值模型或在线 rollout,流程稳定便宜。参考模型提供隐式 KL 锚点。局限是数据通常离线,覆盖不到当前策略的新错误,并受偏好噪声、长度偏差和参考模型质量影响。
5. 怎样识别和缓解 Reward Hacking?
回答: Reward Hacking 表现为代理奖励升高,但真实质量下降,例如输出更长、更讨好或利用验证器漏洞。应使用独立评测器和人工盲评,按长度、风格和领域切片,检查奖励与真实质量的相关性。缓解包括对抗样本、多奖励、KL 约束、规则验证和持续刷新数据。训练奖励不能同时是唯一最终裁判。
6. 补充高频题:GRPO 与 PPO 的主要区别是什么?
回答: GRPO 对同一提示采样一组回答,用组内相对奖励构造优势,通常不训练单独价值模型,因此显存和系统复杂度较低。策略更新仍使用概率比、裁剪和 KL。它适合数学、代码等可验证任务,但若组内奖励都相同,就几乎没有学习信号;组大小和奖励方差很关键。
7. 补充高频题:什么是 RLVR?
回答: RLVR 使用程序、单元测试、数学答案检查器或环境最终状态产生可验证奖励。它比主观奖励模型更少受风格偏差影响,适合数学、代码和工具任务。难点是验证器覆盖有限,模型可能钻解析或规则漏洞。设计时必须检查格式、超时、副作用和作弊路径,并保留验证器外评测。
8. 补充高频题:离线偏好优化和在线优化怎样选择?
回答: DPO 等离线方法使用固定数据,稳定便宜,但分布由旧策略决定。在线方法从当前策略采样,能覆盖模型现在真正犯的错,却需要实时奖励或教师,成本高且更不稳定。常见方案是先 SFT 或 DPO 冷启动,再做有限在线迭代。选择取决于奖励可靠性、采样预算和环境能力。
9. 补充高频题:结果奖励和过程奖励有什么区别?
回答: 结果奖励只判断最终答案,验证简单,但对长推理的信用分配稀疏。过程奖励给中间步骤反馈,更容易定位错误,却需要昂贵标注或可靠步骤验证器,也可能约束新颖路径。实践中可用结果奖励保证最终正确,再用过程监督改善效率,同时警惕模型为过程分写冗长步骤。
10. 补充高频题:怎样评估奖励模型而不只看偏好准确率?
回答: 除总体成对准确率,还要看长度、语言、领域、安全和候选模型切片,测平局与标注一致性。做 Best-of-N 时,若 N 增大、奖励继续升高但人工质量下降,说明模型在利用奖励漏洞。还要看校准、分布外表现以及与人工盲评的相关性。
六、推理优化与量化
1. Greedy、Beam、Top-k、Top-p 和 Temperature 怎样比较?
回答: Greedy 每步选最高概率 token,稳定但可能重复。Beam 保留多个累计高分序列,适合翻译等目标确定任务。Top-k 只在概率最高的 k 个候选中采样;Top-p 选择累计概率达到 p 的最小集合。Temperature 缩放 logits,越低越确定,越高越多样。评测时必须固定解码参数和随机种子。
2. Speculative Decoding 怎样加速并保持目标分布?
回答: 小草稿模型先提出多个 token,大目标模型一次并行验证。接受拒绝规则保证接受结果与目标模型分布一致;被拒位置从校正分布采样。加速取决于草稿模型足够便宜且接受率高。若两模型差异大、候选过短或调度开销高,收益可能消失。
3. PagedAttention 和 Continuous Batching 分别解决什么?
回答: PagedAttention 把 KV Cache 分成固定块,用页表映射逻辑序列,减少连续预留造成的碎片,并支持前缀共享。Continuous Batching 在每个解码步加入新请求、移除完成请求,避免等待整批最慢样本。前者提高显存利用率,后者提高 GPU 占用;两者都不改变模型数学。
4. PTQ、QAT、GPTQ 和 AWQ 怎样区分?
回答: PTQ 在训练后用校准数据量化,成本低;QAT 在训练中模拟量化误差,精度通常更好但成本高。GPTQ 近似利用二阶信息,逐步量化并补偿误差。AWQ 根据激活统计保护少数重要权重通道。比较时还要说明是权重、激活还是 KV 量化,以及分组大小和推理内核。
5. TTFT、TPOT、吞吐和七 B 模型显存怎样理解?
回答: TTFT 是首 token 延迟,主要受排队和 Prefill 影响;TPOT 是首 token 后每个 token 时间,反映 Decode。吞吐用每秒请求或 token 表示,增大批量可能提高吞吐却恶化延迟。七十亿参数用 FP16 权重约十四 GB,四比特约三点五 GB,但实际还要加 KV Cache、激活、workspace 与框架开销。
6. 补充高频题:KV Cache 显存怎样估算?
回答: 元素数约为二乘层数、序列长度、批量、KV 头数和头维度;二来自 K 与 V。再乘每元素字节数就是缓存大小。GQA 通过减少 KV 头数直接降低缓存。实际还要考虑不同请求长度、分页碎片、Beam 数和张量并行分片。这是服务容量规划的高频手算题。
7. 补充高频题:为什么 Decode 常受显存带宽限制?
回答: Decode 每步只有少量新 token,却要读取大量权重和历史 KV,算术强度低,GPU 计算单元可能在等数据。增大批量让一次权重读取服务更多 token,量化减少读取字节,算子融合减少中间访存。判断瓶颈要结合带宽、批量和 GPU 利用率,而不只看理论 FLOPs。
8. 补充高频题:KV Cache Quantization 的风险是什么?
回答: KV 量化能显著降低长上下文和高并发显存,但历史 K、V 误差会在后续每一步重复使用,长序列和少数敏感头可能累积质量损失。常按 token、头或通道选缩放,并对最近窗口或异常值保留高精度。评测必须覆盖真实长上下文,不能只看短文本困惑度。
9. 补充高频题:Tensor Parallel 在推理中何时有用?
回答: TP 把每层矩阵切到多张 GPU,使单卡放不下的模型能够运行,并聚合算力。代价是几乎每层都要通信,低延迟 Decode 尤其敏感。高速 NVLink 内适合 TP,跨节点代价更高。模型能放单卡时,增加 TP 度数不一定更快,数据并行副本可能获得更好吞吐。
10. 补充高频题:怎样系统优化线上 LLM 服务?
回答: 先记录提示长度、输出长度、并发和延迟分位数,判断是排队、Prefill、Decode、通信还是内存瓶颈。再选择连续批处理、分页 KV、量化、FlashAttention、投机解码或前缀缓存。每次对齐质量并同时测 TTFT、TPOT、吞吐和成本。目标是单位成本满足服务等级,而不是单个离线速度最高。
七、RAG、Agent 与评测
1. RAG 的标准流程是什么?
回答: 离线先清洗文档、切块、生成向量或关键词索引,并保存来源元数据。在线把问题改写或编码,检索候选块,做混合检索与重排序,再把最相关证据交给模型生成带引用答案。最后分别评估检索召回、答案正确、证据忠实和线上反馈。关键是端到端定位失败发生在哪一步。
2. Chunking、Lost in the Middle 和 HNSW 分别是什么?
回答: Chunking 可按固定窗口、标题、段落或语义边界切分;太小缺上下文,太大降低精度。Lost in the Middle 指模型容易忽略长提示中间证据,可通过减少噪声、重排位置和先提取再综合缓解。HNSW 是多层小世界图,高层快速跳转,底层精细搜索,用内存和建库时间换取近似最近邻低延迟。
3. CoT 和 ReAct 有什么区别?
回答: CoT 让模型生成中间推理步骤,把复杂问题拆成局部预测,但步骤不保证是真实因果解释。ReAct 在推理、动作和环境观察之间交替,使模型能搜索、运行代码和调用 API。稳定 Agent 还需要工具 schema、超时、重试、最大步数、状态记录与错误恢复,不能只依赖提示词。
4. 常见 Benchmark 和 Needle in a Haystack 能测什么?
回答: MMLU 测多学科知识,GSM8K 测数学文字题,HumanEval 用单元测试测代码,C-Eval 测中文多学科。Needle 测试把目标信息放在不同长度和位置,诊断长上下文检索退化,但不能代表多跳推理、矛盾信息和长文理解。任何 benchmark 都要考虑提示、采样、污染和评分脚本。
5. 幻觉为什么产生?Function Calling 怎样降低风险?
回答: 模型优化的是下一个 token 概率,不是真值;训练数据可能缺失、冲突或过时,检索也可能错误。Function Calling 让模型输出结构化工具名和参数,由宿主程序校验、执行,再把结果返回模型。它能接入权威数据与计算,但必须做权限、参数、超时、幂等和审计,不能给模型无限系统权限。
6. 补充高频题:稀疏、稠密和混合检索怎样选择?
回答: BM25 等稀疏检索擅长精确关键词、编号和罕见实体;稠密检索擅长语义改写,但可能漏精确字符串。混合检索分别取候选,再用分数融合合并,通常更稳,之后可用 Cross-Encoder 或 LLM 重排序。选择应按查询类型切片测 Recall at k、延迟和成本。
7. 补充高频题:怎样分别评估 RAG 的检索和生成?
回答: 检索侧看标准证据是否进入 Top-k,常用 Recall at k、MRR 和 nDCG。生成侧看答案正确、证据忠实、引用准确和拒答。端到端错误要归因到未检到、重排错、提示截断、模型忽略证据或证据不足。测试集应保存问题、答案和支持证据。
8. 补充高频题:LLM-as-Judge 有哪些偏差?
回答: Judge 可能偏好更长、更有格式、与自身风格相似或排在特定位置的答案。应随机交换顺序、隐藏模型身份、使用明确 rubric、允许平局,并用人工标注校准。重要结论要看多个评审或重复采样。Judge 适合扩展评测,但不应同时是训练奖励和唯一裁判。
9. 补充高频题:Agent 常见失败模式是什么?
回答: 常见问题包括选错工具、参数无效、循环调用、忘记约束、把工具错误当事实,以及生成了漂亮回答却没完成环境任务。系统应限制步数和预算,验证动作,保存结构化状态,支持重试和回滚。评测要同时看任务成功、轨迹、成本和副作用。
10. 补充高频题:怎样防御 RAG 和 Agent 的 Prompt Injection?
回答: 检索文档与网页是不可信数据,其中的指令不能获得系统权限。应分离指令和数据通道,对工具使用最小权限与 allowlist,高风险动作需确认,外部内容要标记来源。输出过滤不够,因为攻击可能在工具调用前发生。还要用包含恶意文档的测试集持续红队评测。
参考与听读建议
- 题目主线来自 MiniMind:大模型八股 100 问。本页合并或删除了重复与低频问题,并重新撰写全部答案。
- 补充题集中在当前岗位持续重视的预训练、后训练、强化学习、推理性能、评测与安全能力。
- 建议每次只听一个主题。听到问题后先暂停,口述自己的答案,再继续播放;第二遍重点复述机制、权衡和验证方法。
- 如果制作系列播客,推荐按本文七个一级主题拆成七期;如果制作单集长节目,可把“架构到训练”“后训练到推理”“应用与评测”分成三个章节,并在章节之间重复一次贯穿主线。