预训练与架构
Q1 [基础] 大语言模型的预训练目标是什么?
Q: GPT 等大语言模型在预训练阶段使用什么训练目标?为何有效?
A: 自回归 LLM 的主流预训练目标是下一词预测(Next Token Prediction),也称因果语言建模。给定词元序列 $x_1, x_2, \ldots, x_{t-1}$,模型通过最小化词汇表上的交叉熵损失来预测下一个词元 $x_t$。该目标在训练时对序列的每个位置同步应用,数据效率极高:一篇包含 $n$ 个词元的文档可提供 $n-1$ 个训练样本。
尽管形式简单,这一目标的效果却出奇强大。模型必须隐式习得语法、事实、推理模式和世界知识,才能在多样化的文本上准确预测下一词。这正是将下一词预测扩展到大规模数据和大模型参数后会涌现出通用能力的原因——模型将通用语言理解作为预测文本的副产品习得。
值得与掩码语言建模(MLM,BERT 类模型使用)区分:MLM 随机遮盖词元并从左右双向上下文预测被遮盖词元。自回归(因果)语言模型只能关注过去词元,因而天然适合生成任务——可被提示续写任意前缀。MLM 模型在分类任务上产生更好的表示,但不能直接生成文本。GPT、LLaMA 及大多数现代 LLM 均使用自回归下一词预测。
Q2 [基础] 什么是缩放法则?它对 LLM 训练有何指导意义?
Q: 什么是神经缩放法则?它如何指导模型规模和训练数据量的决策?
A: 缩放法则(Scaling Laws,Kaplan et al., 2020)是语言模型性能(以损失衡量)与三种资源之间的幂律经验关系:模型参数量 $N$、训练数据集大小 $D$、总计算预算 $C$。核心发现是:随着任一资源的增加,损失平滑且可预测地降低,遵循 $L \propto N^{-\alpha}$、$L \propto D^{-\beta}$、$L \propto C^{-\gamma}$(指数由实验确定)。
Chinchilla 论文(Hoffmann et al., 2022)进一步提炼了这些发现,给出了关键的实践洞见:在固定计算预算下,最优分配是用约 $20N$ 个词元训练参数量约为 $N$ 的模型。这颠覆了此前在相对少量数据上训练超大模型的做法——GPT-3(1,750 亿参数)仅用了约 3,000 亿词元训练,Chinchilla 分析表明这严重训练不足。在相同计算成本下,用更多数据训练的较小模型(如 Chinchilla-70B)可以达到甚至超越训练不足的大模型。
缩放法则具有直接的工程意义:团队可以在投入完整计算预算前,通过小规模实验预测大规模训练的性能;同时也规定了如何在模型规模和数据量之间分配固定预算。LLaMA、Mistral 等现代模型遵循 Chinchilla 最优或数据丰富的训练配方,在 70 亿至 700 亿参数范围内使用 1–2 万亿词元,远超 Chinchilla 原始建议。
Q3 [基础] RoPE、ALiBi 与绝对位置编码有何区别?
Q: LLM 中主要的位置编码方案有哪些?各自的权衡是什么?
A: 绝对位置编码(正弦或可学习)用于原始 Transformer:在第一层之前将固定或可学习的向量加到每个词元嵌入上,编码绝对位置。其局限在于对训练时未见过的更长序列泛化能力差——模型从未见过超出训练截断位置的情况,因此在更长序列上性能急剧下降。
旋转位置嵌入(RoPE,Su et al., 2021)通过在注意力计算中将查询和键向量按与绝对位置成比例的角度旋转来编码位置。关键在于,位置 $m$ 处的旋转查询与位置 $n$ 处的旋转键的点积仅取决于相对差 $m - n$,使 RoPE 同时具备绝对和相对位置感知能力。RoPE 已成为现代 LLM(LLaMA、Mistral、Qwen、GPT-NeoX)的主流选择,原因在于其出色的性能以及对长上下文扩展的兼容性。
ALiBi(Attention with Linear Biases,Press et al., 2022)采用不同方式:不将位置信息加入词元嵌入,而是根据查询和键位置之间的距离从注意力分数中减去固定的线性惩罚,完全不向词元添加位置嵌入。其核心优势是长度泛化:使用 ALiBi 在短序列上训练的模型能更平滑地外推到更长序列,因为线性偏置模式自然延伸超出训练长度。代价是 ALiBi 模型在训练长度内的性能略低于 RoPE,因此 ALiBi 更适合分布外长度泛化为优先考量的场景。
Q4 [进阶] 如何将 LLM 扩展到处理超长上下文(如从 4K 到 128K 词元)?
Q: 扩展预训练 LLM 上下文窗口的主要技术有哪些?
A: 在 4K 词元上预训练的模型无法直接部署到 128K 词元,因为其位置编码从未见过 4K 以外的位置。对于基于 RoPE 的模型,旋转角度使用基础频率(通常为 10,000)计算,超过训练长度的位置产生的旋转角度超出模型学习的范围,导致注意力模式和输出质量严重下降。
最广泛使用的扩展技术是 RoPE 频率缩放。位置插值(PI)将所有位置索引缩小,使训练范围映射到新的更长上下文——若模型训练时见过位置 0 到 4095,则 32K 上下文使用 0 到 4095 除以 32K/4K=8 后的位置。这避免了分布外位置,但压缩了位置分辨率,使相邻词元更难区分。NTK 感知缩放通过对 RoPE 高频分量(编码短程结构)比低频分量(编码长程结构)缩放幅度更小来解决这一问题。YaRN(Peng et al., 2023)在此基础上进一步引入注意力缩放,所需微调数据更少。
即使位置扩展成功,长上下文性能仍面临第二个挑战——“迷失在中间”:实证研究表明,LLM 对长上下文开头和结尾处的信息利用能力优于中间部分,即使名义上支持完整的上下文长度。架构上,滑动窗口注意力(Mistral 使用)和稀疏注意力模式通过确保每个词元具有强局部注意力同时限制全局注意力来解决此问题。因此,有效的长上下文部署既需要位置编码自适应,理想情况下还需在长上下文数据上微调,教会模型充分利用完整的上下文窗口。
Q5 [进阶] 什么是混合专家(MoE)架构?它有何优势?
Q: 混合专家架构如何工作?为何在大语言模型中使用它?
A: 在标准密集 Transformer 中,每个词元在每一层的前馈网络(FFN)中都要经过所有参数的处理。混合专家(Mixture of Experts,MoE)模型将每个 FFN 替换为 $E$ 个并行专家网络和一个可学习路由器。对于每个词元,路由器选择前 $k$ 个专家(通常 $k=1$ 或 $k=2$),只有被选中的专家处理该词元。被选专家的输出由路由器 softmax 分数加权求和,得到该层输出。
其主要优势在于参数效率:MoE 模型在每词元使用相同计算量的前提下,可以拥有远多于密集模型的总参数量。例如,Mixtral 8x7B 总参数量为 470 亿,但每个词元约激活 130 亿参数(每层 8 个专家中激活 2 个),推理成本相当于 130 亿密集模型,同时具备更大模型的容量,在相同成本下实现更高质量。
主要挑战是负载均衡和通信开销。若无显式正则化,路由器倾向于崩溃——始终选择相同的一两个专家,浪费其余专家。对此通常通过辅助负载均衡损失解决,鼓励词元在专家间大致均匀分布。在分布式训练和推理中,不同专家可能位于不同 GPU 上,每个 MoE 层都需要全对全通信,与密集模型相比增加了延迟和内存开销。因此,MoE 在总参数量比每设备内存更重要的训练场景,以及大批次推理场景(通信开销可在大量词元上摊薄)中最具优势。
对齐与微调
Q6 [基础] 什么是监督微调(SFT)?如何使用它?
Q: 在 LLM 场景下,什么是监督微调?它能实现什么目标?
A: 监督微调(Supervised Fine-Tuning,SFT)是在精心策划的(指令,回复)对数据集上继续训练预训练 LLM 的过程,使用标准交叉熵损失。预训练模型已习得丰富的语言理解能力,但产生的文本延续了其训练分布——原始网页文本、书籍和代码——而非对指令的回复。SFT 将模型的输出分布转向有帮助的、能遵循指令的回复。
LIMA 论文(Zhou et al., 2023)的关键发现是:SFT 中数据质量远比数量重要——仅用 1,000 对精心筛选的指令-回复对微调的模型可以达到甚至超越在数十万低质量样本上训练的模型。这表明预训练编码了知识,而 SFT 主要教会模型回复的格式和风格——一种表层对齐,所需数据量出乎意料地少。
参数高效微调方法,尤其是 LoRA(Low-Rank Adaptation,低秩适配),现已成为 SFT 的标准。LoRA 冻结预训练权重,在注意力层添加小型可训练低秩矩阵,将可训练参数减少 100–1,000 倍,使 SFT 在消费级 GPU 上可行,并降低对预训练知识造成灾难性遗忘的风险。QLoRA 进一步将冻结的基础模型量化为 4 位以节省内存,同时保持 LoRA 适配器的较高精度。
Q7 [基础] 什么是 RLHF?它如何工作?
Q: 请解释基于人类反馈的强化学习(RLHF)流程,以及它如何改善 LLM 的对齐。
A: RLHF(Ouyang et al., 2022 — InstructGPT)是一个三阶段流程,用于训练 LLM 遵循人类偏好。第一阶段是 SFT:在高质量示范数据上微调预训练模型,得到基线指令遵循模型。第二阶段训练奖励模型(RM):人工标注者比较同一提示的两个模型回复并指出偏好,训练一个独立模型预测这些人类偏好——实质上学习代表回复质量的标量分数。
第三阶段使用强化学习,具体为近端策略优化(PPO),更新 SFT 模型(“策略”)以最大化奖励模型给出的奖励。为防止策略偏离 SFT 模型过远(否则会导致奖励黑客——产生在 RM 上得分高但实际无帮助的输出),损失中加入 KL 散度惩罚:总奖励为 $r_\text{RM}(x, y) - \beta \cdot \mathrm{KL}(\pi_\theta \| \pi_\text{SFT})$,超参数 $\beta$ 控制最大化奖励与保持接近 SFT 分布之间的权衡。
RLHF 是从 GPT-3 到 InstructGPT 再到 ChatGPT 跨越的关键技术,证明了基于人类偏好的对齐能显著提升帮助性并减少有害输出,甚至优于体量大得多的未对齐模型。RM 作为人类判断的可扩展代理,使策略能在远超人工标注者直接评估能力的大量提示上优化。
Q8 [基础] 什么是直接偏好优化(DPO)?
Q: DPO 是什么?它与 RLHF 在语言模型对齐方面有何区别?
A: 直接偏好优化(Direct Preference Optimization,DPO,Rafailov et al., 2023)是 RLHF 的替代方案,实现相同的对齐目标——训练模型偏好人类偏好的回复——而无需显式奖励模型或强化学习。其核心数学洞见在于:RLHF 目标(在最小化与参考策略的 KL 散度约束下最大化奖励)存在闭式最优解,该解可直接将问题重新参数化为偏好对上的监督分类损失。
DPO 损失的形式为:
$$-\log \sigma\!\left(\beta \log \frac{\pi_\theta(y_w \mid x)}{\pi_\text{ref}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_\text{ref}(y_l \mid x)}\right)$$其中 $y_w$ 为偏好回复,$y_l$ 为非偏好回复。直觉上,该损失提高了偏好回复的相对对数概率,降低了非偏好回复的相对对数概率,缩放比例取决于当前策略与参考策略(SFT 模型)的差异程度。无需训练奖励模型,无需 PPO 训练循环——整个对齐通过对偏好对进行单一监督训练阶段完成。
DPO 的主要优势是简单性和稳定性:消除了奖励模型,去掉了对超参数极为敏感的 RL 训练循环,并以直接的分类损失进行端到端训练。与 RLHF 相比的主要局限在于它是离线方法——只能从固定的偏好对数据集中学习,无法探索新回复或收集在线反馈。RLHF 配合 PPO 原则上可以生成新回复并在训练中收集额外的人类反馈,对复杂对齐目标具有更大的灵活性。
Q9 [进阶] RLHF 面临哪些主要挑战和局限性?
Q: 在将 RLHF 应用于大语言模型时,实践中会出现哪些问题?
A: 奖励黑客(Reward Hacking)是 RLHF 中最根本的挑战。由于奖励模型是人类偏好的不完美代理,策略可能学会利用其盲点——产生在 RM 上得分高但实际无帮助或不安全的回复。常见表现包括过度冗长(更长的回复往往得分更高,即使简洁更好)、谄媚(模型迎合用户而非给出准确答案),以及重复 RM 已学会奖励的特定短语。KL 惩罚能缓解但不能完全防止这种情况。
奖励模型本身引入了若干失效模式。人工标注者在哪个回复更好上存在实质性分歧——研究表明标注者间一致率通常低于 75%——这给 RM 的训练信号引入了噪声。标注者还带有系统性偏见:可能偏好听起来自信的回复而非准确的回复,偏好更长的回复而非简洁的回复,或偏好符合自身观点的回复。RM 还在有限的提示和回复对分布上训练,对与训练分布差异较大的提示可能泛化较差。
可扩展监督是更深层、更长远的挑战。随着 LLM 在专业领域超越人类,人类反馈的可靠性下降——标注者无法评估他们不理解的高度专业技术回复的正确性。这促生了对 AI 辅助监督的研究:使用更强大的模型评估回复(RLAIF——来自 AI 反馈的强化学习),或使用结构化辩论和验证协议,使 AI 的主张比完全信任时更容易核查。
Q10 [进阶] 什么是对齐税?RLHF 与 DPO 在这方面如何比较?
Q: 什么是对齐税?它如何影响 RLHF 与 DPO 之间的选择?
A: 对齐税(Alignment Tax)是指应用对齐微调后,在标准能力基准测试(如数学、编程和事实知识测试)上性能下降的现象。RLHF 前数学基准得 80% 的模型,对齐后可能降至 75%,即使在对话场景中变得更有帮助和更安全。这是因为 RLHF 优化的是人类偏好评分,而非基准准确率——模型会部分偏离预训练能力,转向人工标注者奖励的风格和行为模式。
对齐税并非不可避免,其严重程度在很大程度上取决于实现细节。使用足够强的 KL 惩罚可以防止过度偏离 SFT 模型。在多样化领域(而非仅对话提示)的高质量标注上训练奖励模型,可减少 RM 分数与实际能力之间的不匹配。Constitutional AI(Bai et al., 2022)和 RLAIF 等更新方案尝试通过使用 AI 生成的反馈来保留能力——AI 反馈不易受人工标注者风格偏见影响。
在实践中,DPO 的对齐税通常小于基于 PPO 的 RLHF,部分原因是其离线性质和对偏好目标的直接优化,不易产生导致能力下降的奖励黑客动态。然而,DPO 有其自身的失效模式:作为在固定数据集上运行的离线方法,当偏好对的分布未能覆盖模型需要保留的能力时,可能会失败。在帮助性和能力保留都至关重要的高风险部署中,当前最佳实践是迭代式的:交替进行 SFT、偏好数据收集,以及 DPO 或 PPO 微调,并在每轮之间仔细评估对齐和能力基准。
推理与效率
Q11 [基础] 什么是 KV 缓存?它如何加速 LLM 推理?
Q: LLM 推理中的 KV 缓存是什么?为何重要?
A: 在自回归文本生成过程中,模型每次生成一个词元。每一步,自注意力都必须对序列中每个词元计算查询、键和值。若不缓存,生成第 $t$ 个词元需要对所有 $t-1$ 个先前词元从头计算注意力——过去每个词元的键值矩阵在每个生成步骤都被重新计算,使长度为 $n$ 的序列的总推理时间为 $O(n^2)$。
KV 缓存(KV Cache)通过存储所有先前生成词元的键(K)和值(V)矩阵并在后续步骤中复用来解决这一问题。每步只需计算新词元的 K 和 V;所有过去的 K 和 V 从缓存中加载。这将每步注意力计算的新增量从 $O(n)$ 降至 $O(1)$,使生成时间随序列长度线性而非二次方增长。在实践中,这一优化至关重要——若没有它,生成 1,000 个词元的回复所需的注意力计算量将比生成第一个词元多约 500,000 倍。
代价是内存:KV 缓存随序列长度增长,大小为 $O(n \cdot d_\text{model} \cdot \text{层数} \cdot 2)$,对于大模型和长上下文,其内存消耗甚至可能超过模型权重本身。这推动了减小 KV 缓存大小的架构变体:多查询注意力(MQA)在所有查询头之间共享单组 K/V 头;分组查询注意力(GQA,LLaMA-2 和 Mistral 使用)是折中方案:K/V 头分组,多个查询头共享每个 K/V 头,缓存大小减小分组比例倍数,同时恢复 MQA 的大部分精度。
Q12 [基础] 模型量化如何工作?其权衡是什么?
Q: 什么是模型量化?不同量化级别的关键权衡是什么?
A: 量化(Quantization)降低表示模型权重和/或激活值所用的数值精度,从训练精度(通常为 BFloat16 或 Float16)降至更低位的整数格式(如 INT8 或 INT4)。从 FP16 量化为 INT8 的权重使用 8 位而非 16 位,该参数的内存消耗减半。量化还在具备优化 INT8 矩阵乘法内核的硬件(大多数现代 GPU 和所有移动处理器)上加速推理。
训练后量化(PTQ)在训练后应用量化,无需修改训练过程。最简单的方法(就近取整)对 INT8 权重通常效果良好,精度损失极小,尤其对于大模型,单个权重误差可以平均抵消。INT4 量化更具挑战性:朴素取整会导致显著的精度下降。GPTQ(Frantar et al., 2022)通过使用二阶信息(损失的 Hessian 矩阵)最小化每层量化后输出的重建误差来解决这一问题。AWQ(Lin et al., 2023)识别对量化最敏感的 1% 权重并通过缩放保护它们,无需二阶计算即可实现高质量 INT4 量化。
一个关键细节是:权重量化(降低存储模型权重的精度)远比激活量化(降低前向传播中间张量的精度)容易。激活值的动态范围随输入变化,使固定量化范围精度较差。因此,大多数生产部署使用纯权重 INT4 量化(权重以 4 位存储,计算时反量化为 FP16),而非完全 INT4 推理。实际加速来自加载权重时减少的内存带宽,而非 INT4 算术本身。
Q13 [基础] 投机解码如何加速 LLM 推理?
Q: 什么是投机解码?它如何降低 LLM 推理延迟?
A: 自回归生成本质上是串行的:每个词元依赖所有先前词元,因此词元必须逐个生成。现代 GPU 是高度并行的处理器,在每次前向传播只处理单个词元时利用率严重不足——算术强度太低,无法饱和 GPU 算力。投机解码(Leviathan et al., 2022;Chen et al., 2023)通过并行生成多个候选词元并在大模型的单次前向传播中验证来解决这一问题。
该方法使用一个小型、快速的草稿模型自回归地生成 $k$ 个候选词元,然后在大目标模型的单次前向传播中同时验证这 $k$ 个词元——目标模型并行处理所有 $k$ 个位置。对于每个位置,比较目标模型与草稿模型的概率分布。使用拒绝采样方案接受或拒绝词元,确保输出分布与大模型单独生成时完全相同:词元 $i$ 以概率 $\min\!\left(1,\, p_\text{target}(x_i) / p_\text{draft}(x_i)\right)$ 被接受,若被拒绝则从调整后的分布中采样一个修正词元。平均每次草稿-验证循环接受 $\beta \cdot k$ 个词元($\beta$ 为接受率),理论加速比为 $\beta \cdot k / (\text{草稿代价} \cdot k + \text{目标代价})$。
在实践中,对于草稿模型与目标模型对齐程度足够的典型文本生成任务,投机解码可实现 2–3 倍加速。草稿模型越小(运行越便宜)且接受率越高(草稿词元通常正确),加速效果越显著。自投机解码变体利用大模型自身层的早退出作为草稿,无需单独的草稿模型。该技术现已集成进 vLLM 和 Hugging Face TGI 等主流推理框架。
Q14 [进阶] 连续批处理如何提升 LLM 推理吞吐量?
Q: 什么是连续批处理?为何它对高效服务 LLM 至关重要?
A: 朴素的 LLM 服务以静态批次处理请求:收集一组序列,一起处理直到批次中所有序列都生成完毕,然后才启动下一批次。这极为低效,因为同一批次中的序列长度不同——较短的序列提前结束,但其 GPU 槽位闲置,等待最长序列完成。GPU 利用率大幅下降,而新请求即使在算力空闲时也在排队等候。
连续批处理(也称迭代级调度或在途批处理)通过以单个生成步骤而非完整序列为粒度运行来解决这一问题。每次前向传播(为每个活跃序列生成一个词元)后,调度器检查哪些序列已完成,并立即用队列中的新请求替换它们。这意味着批次组成在每步动态变化:任意给定前向传播时,批次中包含处于不同生成阶段的序列,有些刚开始,有些接近完成。由于新序列在槽位空出的瞬间就被填入,GPU 持续保持满负荷运行。
PagedAttention(Kwon et al., 2023,在 vLLM 中实现)是连续批处理的必要补充。必须为每个序列预分配 KV 缓存内存,而传统静态分配会浪费内存,因为最终序列长度事先未知。PagedAttention 以固定大小的页面管理 KV 缓存内存(类似操作系统中的虚拟内存),随序列增长按需分配新页面,序列完成后立即释放。这消除了内存碎片,允许系统服务更多并发序列,并为束搜索实现高效的写时复制。连续批处理与 PagedAttention 共同构成高吞吐量 LLM 服务系统的核心技术,相比朴素批处理可实现 10–20 倍的吞吐量提升。
Q15 [进阶] FlashAttention 在 LLM 训练和推理中扮演什么角色?
Q: FlashAttention 如何改善 LLM 训练和推理?其底层原理是什么?
A: 标准自注意力在应用 softmax 和与值矩阵相乘之前,将完整的 $n \times n$ 注意力矩阵在 GPU HBM(全局内存)中实体化。对于长度为 $n$ 的序列,这需要 $O(n^2)$ 次 HBM 读写。在现代 GPU 上,HBM 带宽是注意力计算的主要瓶颈——算术运算很快,但加载和存储大型注意力矩阵很慢。对于 32K 词元的序列,仅注意力矩阵在 FP16 下每层每头就需要约 4GB HBM。
FlashAttention(Dao et al., 2022)重构了注意力计算,避免实体化完整的 $n \times n$ 矩阵。它以适合 GPU 快速片上 SRAM 的分块方式处理查询、键和值矩阵。在每个分块内,计算部分注意力分数、应用数值稳定的在线 softmax,并累加加权值之和——所有步骤均不将中间结果写回 HBM。最终输出使用在线 softmax 归一化技巧从这些分块中汇总得到。这将 HBM 内存使用从 $O(n^2)$ 降至 $O(n)$,同时保持计算精确无近似。FlashAttention-2(2023)通过改进线程块间的工作划分进一步提高 GPU 利用率,在 A100 GPU 上实现接近峰值的算术吞吐量。
在 LLM 训练中,FlashAttention 对长上下文训练至关重要:它使 32K–128K 上下文长度在标准 GPU 集群上可行,否则注意力矩阵将无法放入内存。在推理中,FlashAttention 降低了预填充阶段(处理输入提示)的内存压力,此时所有提示词元同时参与注意力计算。对于解码阶段(逐词元生成),注意力模式是注意力矩阵的单行(新词元关注所有缓存键),FlashDecoding 对此比原始 FlashAttention 的并行化效率更高。这些优化共同使长上下文 LLM 推理在生产规模上切实可行。
应用与工程
Q16 [基础] 什么是检索增强生成(RAG)?它解决了哪些问题?
Q: RAG 是什么?如何工作?与标准 LLM 相比有何优势?
A: 检索增强生成(Retrieval-Augmented Generation,RAG,Lewis et al., 2020)是一种在推理时用外部知识库检索到的信息增强 LLM 生成的架构。标准流程包含三个组件:离线索引阶段,将文档语料库用独立编码器模型编码为密集向量嵌入并存入向量数据库;在线检索阶段,将用户查询编码到同一嵌入空间,使用近似最近邻搜索检索最相似的 top-k 文档片段;生成阶段,将检索到的片段前置于提示词,在 LLM 生成回复前为其提供相关上下文。
RAG 解决了独立 LLM 的若干根本局限。首先,它解决了知识截止问题:LLM 权重只编码训练日期前的知识,而 RAG 系统的检索索引可以实时更新新文档。其次,它通过将模型回复建立在检索到的证据上来减少事实性幻觉——模型基于能在上下文中"看到"的文档生成,而非依赖记忆不精确的事实。第三,它能在不需要昂贵微调的情况下,将模型专业化应用于公开训练数据中不存在的私有或领域专属知识。
检索质量是关键瓶颈:RAG 的效果取决于检索到的文档质量和用于拆分文档的分块策略。稀疏检索(BM25、TF-IDF)对关键词密集型查询效果好;密集检索(DPR、E5、BGE 嵌入)更好地处理语义相似性;混合检索结合两者。在将检索片段传递给 LLM 前使用交叉编码器重排序进一步提高精度。分块策略——如何将文档拆分为可检索片段——显著影响相关信息是否能被单个片段捕获。
Q17 [基础] 提示工程的核心技术有哪些?
Q: 最重要的提示工程技术有哪些?各自适用于什么场景?
A: 提示工程(Prompt Engineering)是在不修改模型权重的情况下设计 LLM 输入以获得更好输出的方法。最根本的区分是零样本提示(仅提供任务描述,不含示例)和少样本提示(提示中包含 2–8 个输入-输出示例)。少样本提示能可靠地提升任务性能,在期望格式或推理风格不能仅从任务描述中推断时尤为有效;具体示例的选择非常重要——多样化且具有代表性的示例持续优于随机选择。
思维链(Chain-of-Thought,CoT,Wei et al., 2022)提示通过在少样本示例中包含中间推理步骤,或在零样本提示中添加"让我们一步步思考",显著提升推理任务性能。CoT 有效的原因是它迫使模型将词元分配给中间推理而非直接跳到答案——模型通过生成调节最终输出的推理文本来"思考"。自一致性(Wang et al., 2022)通过采样多条独立推理链并对最终答案进行多数投票来扩展 CoT,进一步提升具有确定性答案的任务精度。
结构化技术包括角色提示(“你是一位资深数据科学家”)、输出格式规范(指示模型以 JSON、要点或特定模板回复),以及明确的约束声明(“回复不超过 3 句”)。对于复杂的多步骤任务,将任务分解为一系列更简单的提示并在每步间设置验证(提示链)通常比在单个提示中尝试所有内容更有效。实践准则是从清晰直接的任务描述开始——大多数提示工程失败源于指令模糊,而非缺少技巧。
Q18 [进阶] 基于 LLM 的 Agent 如何使用工具和规划?
Q: 什么是 LLM Agent?如何使用外部工具?有哪些主要架构模式?
A: LLM Agent 是以 LLM 为核心推理引擎的系统,迭代地决定采取什么行动、通过外部工具执行行动,并根据结果更新计划。与单轮 LLM 调用不同,Agent 在循环中运行:观察当前状态 → 推理应做什么 → 调用工具 → 观察工具结果 → 再次推理。循环持续到 Agent 判断任务完成或达到停止条件。
工具使用通过函数调用(GPT-4 和 Claude 等模型原生支持)或结构化输出提示实现。LLM 的系统提示中包含可用工具的描述(如网络搜索、代码执行、数据库查询、计算器、API 调用)。当判断需要工具时,它输出指定工具名称和参数的结构化调用;编排层执行调用并将结果作为新观察返回到上下文中。这使 Agent 能访问实时信息、执行代码、读写文件,以及与外部服务交互——远超 LLM 权重本身能提供的能力。
ReAct(Yao et al., 2022)是主流规划模式:模型交替进行思考(Thought,推理当前状态)和行动(Action,选择工具调用),每次行动后追加观察(Observation,工具结果)。这种推理与行动的交替使模型能根据观察到的结果调整计划。对于复杂多步骤任务,主要失效模式包括错误积累(早期步骤的错误在后续步骤中放大)、幻觉工具调用(模型生成看似合理但参数不正确的工具调用),以及陷入推理循环。缓解措施包括明确的验证步骤、约束工具调用格式的结构化输出模式,以及对高风险行动进行人机确认。
Q19 [进阶] RAG 有哪些局限性?与长上下文 LLM 相比如何?
Q: RAG 的主要失效模式是什么?何时长上下文 LLM 优于 RAG?
A: RAG 最根本的局限是检索质量:如果正确的文档片段未被检索到,LLM 无论能力多强都无法生成正确答案。以下情况检索会失败:查询语义与嵌入空间匹配较差(尤其对于复杂的多跳问题);相关信息分散在多个未被同时检索的片段中;或分块策略切断了相关信息的边界。对于需要跨多文档综合的任务(如"列出这 50 份报告中提到的所有风险"),RAG 的 top-k 检索从根本上无法同时呈现所有相关内容。
长上下文 LLM(128K–1M 词元上下文窗口)提供了替代方案:将整个知识库或所有相关文档直接加载到上下文中,完全省去检索。这避免了检索错误,自然处理多文档推理,并显著简化流程。然而,它扩展性差:在 128K 词元时,单次推理无论大多数内容是否相关都要处理 128,000 个词元,计算成本高昂,且存在"迷失在中间"问题——即使名义上支持上下文长度,模型对超长上下文中间部分的信息关注度仍然不足。
实际选择取决于知识库规模和查询类型。对于数十到数百份文档的知识库,长上下文 LLM 日益可行,在多文档推理任务上通常优于 RAG。对于数千到数百万份文档的知识库,RAG 的可扩展性仍不可或缺。混合方案——先用 RAG 检索候选集,再用长上下文 LLM 同时对所有检索片段进行推理——将检索的可扩展性与全上下文注意力的推理质量相结合,代表了当前复杂知识密集型任务的最优方案。
Q20 [进阶] 什么导致了 LLM 的幻觉?如何缓解?
Q: 为什么 LLM 会产生幻觉?最有效的减少幻觉的策略有哪些?
A: 幻觉(Hallucination)——生成听起来合理但事实上不正确或无依据的内容——源于几种不同的机制。最根本的是:LLM 被训练为生成流畅、语境合适的文本,而非追求准确性——训练目标(下一词预测)奖励产生看起来像人类写作的文本,而非可验证为真实的文本。当模型的预训练数据包含不正确或相互矛盾的信息,或模型未能可靠地记住某个事实(因为它在训练数据中出现频率极低)时,模型可能会捏造一个听起来合理的答案,而非表达不确定性。
幻觉也源于解码过程:较高的温度采样引入随机性,可能使模型偏离其最高概率(通常也是最可靠的)补全。束搜索或贪心解码减少这种随机性,但不能消除由模型知识缺口引起的幻觉。此外,模型倾向于过度自信——它们通常以与正确陈述相同的流畅度和信心表达错误陈述,因为训练数据没有系统地将不确定的主张与不确定性标记配对。
有效的缓解策略涵盖架构、训练和推理三个层面。基于 RAG 的事实锚定是事实性查询最可靠的方案:如果答案来自检索文档,可以指示模型只陈述上下文中明确支持的内容(“仅根据提供的文档回答”),大幅降低事实幻觉。带有事实性奖励的 RLHF 可以训练模型偏好准确、有适度保留的回复,而非听起来自信的错误回复。在推理时,自一致性采样(生成多个回复并选择多数答案)降低了具有确定性答案的事实问题上的幻觉。不确定性量化方法——要求模型评估自身置信度或生成多个样本衡量一致性——可以识别模型可能正在产生幻觉的时机,即使不总能纠正它。对于生产系统,最可靠的策略是将 RAG 用于事实锚定、精心设计要求模型引用来源并表达不确定性的指令提示,以及将答案与检索证据进行比对的输出验证相结合。
快速参考
| # | 难度 | 主题 | 章节 |
|---|---|---|---|
| Q1 | 基础 | 预训练目标(下一词预测) | 预训练与架构 |
| Q2 | 基础 | 缩放法则 | 预训练与架构 |
| Q3 | 基础 | 位置编码:RoPE vs ALiBi vs 绝对编码 | 预训练与架构 |
| Q4 | 进阶 | 长上下文扩展 | 预训练与架构 |
| Q5 | 进阶 | 混合专家(MoE) | 预训练与架构 |
| Q6 | 基础 | 监督微调(SFT) | 对齐与微调 |
| Q7 | 基础 | RLHF 流程 | 对齐与微调 |
| Q8 | 基础 | 直接偏好优化(DPO) | 对齐与微调 |
| Q9 | 进阶 | RLHF 的挑战与局限 | 对齐与微调 |
| Q10 | 进阶 | 对齐税与 RLHF vs DPO | 对齐与微调 |
| Q11 | 基础 | KV 缓存 | 推理与效率 |
| Q12 | 基础 | 模型量化(INT8/INT4) | 推理与效率 |
| Q13 | 基础 | 投机解码 | 推理与效率 |
| Q14 | 进阶 | 连续批处理 | 推理与效率 |
| Q15 | 进阶 | FlashAttention 在 LLM 中的作用 | 推理与效率 |
| Q16 | 基础 | 检索增强生成(RAG) | 应用与工程 |
| Q17 | 基础 | 提示工程技术 | 应用与工程 |
| Q18 | 进阶 | LLM Agent:工具使用与规划 | 应用与工程 |
| Q19 | 进阶 | RAG 局限性与长上下文 vs RAG | 应用与工程 |
| Q20 | 进阶 | 幻觉:成因与缓解 | 应用与工程 |
参考文献
- Kaplan et al., Scaling Laws for Neural Language Models (2020)
- Hoffmann et al., Training Compute-Optimal Large Language Models (Chinchilla, 2022)
- Ouyang et al., Training language models to follow instructions with human feedback (InstructGPT, 2022)
- Rafailov et al., Direct Preference Optimization: Your Language Model is Secretly a Reward Model (DPO, 2023)
- Su et al., RoFormer: Enhanced Transformer with Rotary Position Embedding (RoPE, 2021)
- Press et al., Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation (ALiBi, 2022)
- Dao et al., FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (2022)
- Dao et al., FlashAttention-2: Faster Attention with Better Parallelism and Work Partitioning (2023)
- Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (RAG, 2020)