- 文档
- 教程
- 大模型
【免费下载链接】Foundations-of-LLMs
A book for Learning the Foundations of LLMs
SLED(Self Logits Evolution Decoding)由杜克大学与 Google Research 联合提出,是一种仅作用于解码阶段、无需任何训练与参数修改的即插即用解码技术:通过对比大语言模型不同层的 logits 来"唤醒"潜在知识,并让最终层 logits 向估计出的真实知识分布"自我进化",从而显著提升输出的事实性与可靠性。读完本文,你将掌握 SLED 的完整技术原理(真实知识分布估计、logits 自我进化、计算复杂度优化)、三个核心超参数的设置逻辑,以及它在多选、开放生成、思维链推理等任务上的实验表现,并能在本仓库《大模型基础》教材的配套章节中找到继续深挖 logits 与解码机制的路径。
论文概览与研究动机
本文所解读的论文为SLED: Self Logits Evolution Decoding for Improving Factuality in Large Language Models,作者为Jianyi Zhang、Da-Cheng Juan等人,单位包括Duke University(杜克大学)与 Google Research(谷歌研究院),对应 Arxiv 论文编号2411.02433。
研究瞄准的是大语言模型部署中最棘手的问题之一——输出真实性(Factuality):模型在生成开放域内容时,往往会一本正经地"编造"与事实不符的信息,即所谓的幻觉。现有的真实性提升方法在高效性与广泛适用性上均存在短板:要么需要额外训练或微调模型,要么只对特定任务、特定规模模型有效,难以做到通用且轻量。
SLED 的关键洞察来自对模型内部不同层 logits 关系的观察:在大语言模型的深层 Transformer 堆叠中,各层对下一个 token 的预测信号(logits)并不等价,最终层的输出与真实知识分布最接近,而早期层则蕴含未被最终输出充分采用的"潜在知识"。基于这一洞察,SLED 通过分析不同层 logits 的差异来挖掘潜在知识、估计真实知识分布、实现 logits 自我进化,并降低计算复杂度,从而在不改变模型权重、不增加训练的前提下提升输出真实性。
SLED 方法总览
SLED 是一种黑盒友好的解码端方法,即插即用于任何基于自回归 Transformer 的生成过程。整体方法分为三个主要部分:
| 步骤 | 核心目标 | 关键手段 |
|---|---|---|
| ① 估计真实知识分布 | 用各层 logits 信息逼近无法直接观测的P_real | 对比早期层与最终层 logits 的差异,近似 KL 梯度,做硬/软估计后加权平均 |
| ② 实现 logits 自我进化 | 让最终层 logits 向估计出的真实知识分布靠拢 | 计算KL(P_latent, P_logits_N)的梯度,沿负梯度方向更新 logits |
| ③ 降低计算复杂度 | 让方法在真实推理场景可用 | 只对 top-k 高概率 Token 做自我进化,复杂度由O(d²)降至O(k²) |
下面逐一对这三个环节的原理与公式进行详解。
估计真实知识分布:用层间 logits 差异逼近真实分布
大语言模型在生成过程中,不同层的 logits 蕴含的信息丰度不同。通过对比早期层 logits(记为logits_n)与最终层 logits(记为logits_N),可以发现二者之间的差异能够反映模型在推理过程中的潜在知识变化,从而近似刻画"真实知识分布(P_real)"与"模型输出分布"之间的关系。SLED 正是利用早期层与最后一层 logits 的差别来估算梯度、进而估计真实知识分布,其依据建立在三条原理之上:
1. 训练阶段的启示:最终层 logits 更接近真实知识分布。
在大语言模型的训练过程中,最终层的logits_N直接通过损失函数与真实知识分布P_real相关联,训练目标就是最小化真实分布与输出分布之间的 KL 散度。因此有:
KL(P_real, P_logits_N) < KL(P_real, P_logits_n)即logits_N比早期层的logits_n更能反映真实知识分布。
2. 方向近似性:层间差可以近似为 KL 梯度的方向。
基于上述训练特性,如果对比logits_n和logits_N,那么它们的差(logits_n − logits_N)在方向上可以近似于 KL 散度在logits = logits_n处的梯度:
logits_n − logits_N ≈ ∇_{logits_n} KL(P_real, P_logits_n)这为"用层间差替代真实梯度"提供了理论依据。
3. 估计真实知识分布P_real。
由于真实知识分布难以直接获取,SLED 利用上述近似关系来反推P_real。具体而言,对于每个早期层n,通过计算余弦相似度(CosSim)来度量该层 logits 差与"某个标准基向量对应的梯度"的接近程度:
CosSim(logits_n − logits_N, ∇_{logits_n} KL(P_{e_i}, P_logits_n))其中每个 Token 对应的梯度为:
∇_{logits_n} KL(P_{e_i}, P_logits_n) = (P_logits_n − P_{e_i}) / τ这里P_{e_i}是标准基向量,表示真实知识分布要求生成词汇表中的第i个词,τ为温度系数。选择与层间差余弦相似度最高的那个P_{e_i}作为该层的硬估计P_latent^(n);在此基础上进一步扩展为软估计:
P_latent^(n) = (m_1^(n), m_2^(n), …, m_d^(n)) / m^(n)其中m^(n) = Σ_{i=1}^{d} m_i^(n)为归一化因子,d为词汇表大小,软估计相当于按相似度对各 Token 进行加权分布化,而不是只取一个独热向量。
最后,将所有早期层的P_latent^(n)进行加权平均得到最终估计P_latent,作为真实知识分布的最终估计。其中权重s^(n)依据各层梯度近似与词汇表中 Token 的对齐程度确定:如果某一层n的logits_n − logits_N与词汇表中各 Token 的梯度∇_{logits_n} KL(P_{e_i}, P_logits_n)整体更为接近,说明该层蕴含的知识信号更可靠,那么该层在最终估计中的权重s^(n)就更大。
实现 logits 自我进化:沿梯度方向修正最终层输出
得到真实知识分布的最终估计P_latent后,SLED 计算KL(P_latent, P_logits_N)在logits = logits_N处的梯度:
∇_{logits_N} KL(P_latent, P_logits_N) = (P_logits_N − P_latent) / τ进而得到进化后的 logits:
\tilde{logits}_N = logits_N − α · ∇_{logits_N} KL(P_latent, P_logits_N)其中α为进化率(evolution rate),控制对logits_N调整的幅度。直观理解:该更新让最终层输出分布向"模型自身潜在知识所暗示的真实分布"靠拢——因为P_latent是从模型内部各层挖掘出来的知识信号,而非外部引入的额外信息,因此整个过程被称作logits 的"自我进化"(Self Logits Evolution)。经过此步骤,最终用于 softmax 采样/贪婪解码的 logits 已经被修正,幻觉倾向高的 token 的概率被压低,更符合事实的 token 概率被抬高,且整个过程无需反向传播、无需修改任何模型参数。
降低计算复杂度:top-k 截断式自我进化
使 SLED 真正具备实用价值的关键一步是计算复杂度优化。自我进化过程中涉及对词汇表维度d(通常可达数万乃至数十万)的梯度与相似度计算,若对所有 Token 全量计算,复杂度高达O(d²),在推理场景中不可接受。
SLED 的做法是:仅选择最终层 logits 值最高的前k个 Token 参与自我进化,其余 Token 的 logits 统一调整为较低数值(论文中采用-1000),从而将计算复杂度从O(d²)降低到O(k²)。其中k ≪ d,k被称为进化规模(evolution scale),它决定了参与自我进化的高概率 Token 数量,是方法在"覆盖面"与"效率"之间的关键权衡超参数。由于生成过程中真正可能被采样的通常就是 top-k 范围内的 token,这种截断在几乎不影响输出质量的前提下大幅压缩了计算量,使得 SLED 的推理开销保持在非常低的水平(详见下文实验部分)。
实验结果
广泛的 LLM 基准测试结果
实验基线主要采用DoLa——一种与 SLED 类似的、基于层对比(layer contrastive)的解码方法。从原论文实验结果来看,SLED 在多选任务、开放生成任务以及思维链(Chain-of-Thought)推理任务三类场景中均表现良好,且在几乎所有指标上超越了 DoLa 基线。这验证了 SLED 不止能压制幻觉,还能对依赖推理链条的任务带来正向增益。
多样化 LLM 配置评估结果
SLED 的泛化能力在多种模型配置下得到验证,覆盖:
- 不同模型家族:LLaMA 2、LLaMA 3、Gemma 等主流开源模型;
- 不同模型规模:从 2B 到 70B 的跨度;
- 不同架构:包括 Mixture of Experts(MoE,专家混合)架构。
在如此广泛的配置上均取得一致的效果提升,说明 SLED 对模型的层数、参数量与架构类型不敏感,具备较强的跨模型迁移能力——这与它"仅读取各层 logits、不做参数级假设"的设计是自洽的。
解码时间开销
实际部署最关心的是额外延迟。实验结果显示,SLED 增加的解码时间开销较小,与 DoLa 相比增加范围仅为 0.1% ~ 10%。考虑到 DoLa 本身已是轻量级的层对比解码方法,SLED 在显著提升真实性的同时几乎没有牺牲推理速度,确保了方法在生产环境中的实用性。
结合本仓库延伸学习:logits、解码与架构的底层知识
SLED 的核心操作对象是"各层 logits"以及"采样概率分布",要深入理解其机理,可以在本仓库配套的《大模型基础》教材中找到对应的底层知识铺垫:
- logits 与概率分布的关系、各类解码采样方法(如 temperature、top-k、top-p 采样)属于语言模型基础的核心内容,可参阅 《大模型基础》第 1 章 语言模型基础,其中"语言模型的采样方法"一节与 SLED 中基于修正后 logits 的采样环节直接相关;
- 不同层级的表示与 logits 的产生过程(Decoder-only Transformer 如何逐层计算并输出预测分布)可参阅 《大模型基础》第 2 章 大语言模型架构,SLED "层间 logits 差异蕴含潜在知识"的假设正建立在这一架构理解之上;
- 若想对比阅读解码与采样方向的其他经典工作,如Diverse Beam Search(AAAI 2018)、The Curious Case of Neural Text Degeneration(ICLR 2020,即 top-p 采样原始论文)等,可浏览仓库的 大模型经典论文列表,其中"语言模型的采样方法"章节收录了相关论文及其原文链接;
- 需要系统学习时,也可直接阅读完整的 《大模型基础》完整版 PDF。
需要注意的是,本仓库当前以教材与论文清单形态存在,未附带 SLED 的官方实现代码;若需复现或进一步实验,建议以论文正文(Arxiv 2411.02433)提供的公式与超参数说明为准进行实现。
总结
SLED 代表了一类颇具工程价值的解码优化思路:不训练、不改权重、不引入外部知识,仅凭模型自身多层 logits 的"内部对话"来发现并修正输出分布。其三步流程环环相扣——以层间 logits 差近似 KL 梯度来估计真实知识分布,以进化率α控制的梯度更新实现最终层 logits 的自我进化,再以进化规模k的 top-k 截断将复杂度从O(d²)降到O(k²)。结合其在多选、开放生成、思维链任务上全面优于 DoLa 基线的表现,以及在 LLaMA 2 / LLaMA 3 / Gemma、2B-70B、MoE 等多样化配置上的泛化结果,SLED 为提升大语言模型输出的真实性与可靠性提供了一条低成本、易集成、可落地的实用路径。
- 文档
- 教程
- 大模型
【免费下载链接】Foundations-of-LLMs
A book for Learning the Foundations of LLMs
相关推荐
Foundations-of-LLMs 论文解读:Learning How Hard to Think——输入自适应的语言模型推理算力分配
Foundations of LLMs 论文解读:Learning How Hard to Think——输入自适应的语言模型推理算力分配 导读 本文深度解读
文档教程大模型smtp4dev SMTP会话日志分析:调试邮件发送问题的终极指南
smtp4dev SMTP会话日志分析:调试邮件发送问题的终极指南 在开发和测试邮件功能时,遇到邮件发送失败或接收异常是常见问题。 smtp4dev 作为一款强
后端开发工具Foundations-of-LLMs数据信任:透明度与可靠性
Foundations of LLMs数据信任:透明度与可靠性 引言:大模型时代的信任危机 在人工智能快速发展的今天,大语言模型(Large Language
文档教程大模型
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考