大语言模型 (LLM) 无疑令人印象深刻。它们能写诗、调试代码并总结历史。然而,任何深入使用过它们的人都知道,它们并非完美无缺。它们可能会产生幻觉、生成有害内容,或者在复杂的推理任务中失败。
为了解决这个问题,我们通常有两种选择: 微调模型 (但这冒着“灾难性遗忘”的风险,即模型丢失其原有知识) 或推理干预 。 推理干预涉及使用一个独立的、较小的“校准”模型 (通常是奖励模型) 在文本生成过程中指导主 LLM。
虽然推理干预很有效,但计算成本高昂。它需要同时运行两个模型——庞大的 LLM 和校准模型——这使得内存需求翻倍,并显著降低了生成速度。
但是,如果我们不需要单独的模型呢?如果我们能在不干扰主 LLM 原有知识的情况下,将校准机制偷偷带入其内部呢?
在这篇文章中,我们将探讨 Otter (NOn-disruptive parameTER insertion,无损参数插入) ,这是由曼彻斯特大学和阿里巴巴集团的研究人员提出的一种新颖架构。Otter 在 Transformer 架构内部创建了一个“侧车” (sidecar) ,允许模型在生成正常 Token 的同时预测奖励或校准信号,与传统方法相比,节省了高达 86.5% 的空间和 98.5% 的时间。

当前干预方法的瓶颈
在深入了解 Otter 之前,让我们先弄清楚它解决的瓶颈问题。
在标准的推理干预设置中 (如 ARGS 或 DEXP 方法) ,你有一个正在生成文本的基础 LLM (比如 Llama-7B) 。为了确保生成的文本是安全或高质量的,你需要将生成的 Token 通过二级“奖励模型”或“专家模型”进行运算。这个二级模型会对 Token 进行评分,系统随之调整概率。
缺点显而易见:
- 空间开销: 你需要 GPU 显存来同时容纳两个模型。
- 时间开销: 数据必须通过 LLM,然后通过奖励模型,然后再返回进行下一步。
- 延迟: 这种来回传输严重影响了实时性能。
Otter 提出了一种不同的方法: 参数插入 。 与其使用外部模型,不如在 LLM 的层内部添加一小组可训练参数?这些参数与原始计算“搭车”同行,在预测下一个 Token 的同时并行计算奖励信号。
核心方法: Otter 架构内部
Otter 的天才之处在于它如何修改标准的 Transformer 块。它引入了一个我们可以称之为“扩展隐藏状态”的概念。
在标准的 Transformer 中,一个隐藏状态 \(h\) 穿过各个层。在 Otter 中,隐藏状态被扩展为 \(\tilde{h} = [h, h']\)。
- \(h\) 是原始隐藏状态 (冻结的,未触动的) 。
- \(h'\) 是新的“Otter”状态 (可训练的) 。
这允许模型同时携带两股信息流: 原始的语言生成上下文和新的干预/奖励信号。
让我们看看这个架构:

如图 2 所示,Otter 将参数插入到两个特定区域: 前馈神经网络 (FFN) 和多头注意力 (MHA) 层。
1. FFN 层适配
在标准的 FFN 层中,输入通过权重矩阵投影到更大的维度,然后再投影回来。Otter 扩展了这些权重矩阵。
想象一下原始权重矩阵 \(W\)。Otter 通过拼接一个全零矩阵和一个新的可训练矩阵 \(W'\) 来创建一个新的、更大的矩阵。

这里的关键是“无损” (non-disruptive) 特性。通过精心构建矩阵 (通常利用零初始化或特定的掩码) ,隐藏状态原始部分 (\(h\)) 的计算在数学上与原始模型完全相同。新参数只影响隐藏状态的新部分 (\(h'\)) 。这意味着原始 LLM 甚至“不知道”Otter 参数的存在。
2. 多头注意力 (MHA) 适配
注意力机制是 Token 之间相互关联的地方。Otter 通过添加额外的注意力头来适配这一点。

原始的头 (\(head_1\) 到 \(head_n\)) 保持冻结状态。Otter 引入了处理扩展状态信息的新头。结果被拼接在一起。由于原始头未被触动,核心的语言建模能力得到了完美的保留。这种无缝集成使得 Otter 能够在不破坏现代优化技术 (如 FlashAttention) 的情况下与之协同工作。
3. “无损”的秘密: RMSNorm
Transformer 中有一个特定的操作会对这个“无损”目标构成风险: 层归一化 (Layer Normalization) 。
标准的归一化 (如 RMSNorm) 会查看整个向量来计算方差。如果我们在计算中包含新的 Otter 参数 (\(h'\)) ,它们的值会改变均值和方差,从而改变原始隐藏状态 (\(h\)) 的归一化值。这实际上会“破坏”原始模型,导致文本质量下降。
为了解决这个问题,研究人员修改了归一化步骤:

在这个修改后的 RMSNorm 中,方差仅使用原始隐藏状态 (\(h_{ffn}\)) 计算,忽略 Otter 状态 (\(h'_{ffn}\)) 。这确保了向量的原始部分完全按照基础模型的方式进行归一化,完美保留了原始分布。
为了在训练期间强制保持稳定性,他们还在损失函数中添加了一个正则化项。如果组合状态的统计数据偏差过大,该项会惩罚模型,从而确保新参数与旧参数良好共存。

实验结果
研究人员在三个高要求的任务上测试了 Otter: 对齐 (有用/无害) 、去毒 (Detoxification) 和投机解码 (Speculative Decoding) 。
任务 1: 对齐 (有用和无害)
这里的目标是引导 LLM 生成安全且有用的回答,类似于 RLHF (基于人类反馈的强化学习) ,但这是在推理时完成的。
他们将 Otter 与 ARGS 进行了比较,后者是一种使用独立奖励模型的先进方法。他们使用的是 Llama-7b 模型。

从表 1 中得出的主要结论:
- 性能: Otter 获得了与重型 ARGS 模型 (奖励 5.026) 相当的平均奖励 (4.916) 和胜平率 (62.75%) 。
- 空间开销: ARGS 需要 2.02倍 的内存 (因为它加载了第二个模型) 。Otter 只需要 1.26倍 。
- 时间开销: ARGS 使推理时间翻倍( 2.07倍 )。Otter 几乎是无感的,只有 1.03倍 的时间开销。
这意味着你在几乎没有延迟成本的情况下获得了奖励模型的安全优势。
我们在 Llama2-7b-chat 等更大的模型上测试时也看到了类似的效率提升:

即使在更先进的 Llama2 上,Otter 也保持了高奖励分数与极低计算成本的最佳平衡点。
任务 2: 去毒
研究人员使用 “RealToxicityPrompts” 数据集来观察 Otter 是否能阻止 GPT-2 模型生成有毒文本。
结果与对齐任务相呼应。Otter 显著降低了毒性概率 (从基础模型的约 52% 降至约 16%) ,同时保持了文本的流畅性。最重要的是,它所需的参数量仅为 “DEXP” 基线的一小部分,DEXP 使用大型专家和反专家模型来引导生成。
任务 3: 投机解码 (加速)
这是一个令人着迷的应用。 投机解码是一种技术,其中一个小的“草稿”模型猜测接下来的几个 Token,然后大模型对其进行验证。如果草稿是正确的,你就节省了时间。
Otter 可以被训练成主模型内部的这个“草稿”模型。Otter 的头不再预测奖励,而是预测接下来的几个 Token。

如表 3 所示,Otter 优于标准的投机解码 (Vicuna-draft) 和 “Medusa” 架构。
- 加速比: Otter 比基础模型实现了 2.72倍 的加速。
- 接受长度: 平均而言,每步有 2.91 个由 Otter 生成的 Token 被接受,这高于基线模型。
初始化重要吗?
由于 Otter 向预训练模型添加了新参数,如何初始化这些参数至关重要。研究人员测试了随机初始化、正态分布初始化和参数复制 (从原始模型复制权重到新的 Otter 插槽) 。

图 3 显示参数复制 (绿线) 是更优的策略。与随机初始化相比,它导致更快的收敛 (更低的损失) 和更高的奖励值/准确率。这是合理的: 从基础模型的“知识”开始,给了 Otter 参数一个领先的起点。
训练效率
最后,人们可能会担心训练这些内部参数是否困难。

表 8 打消了这些顾虑。训练 Otter 实际上比训练独立的 ARGS 模型更快 (108 分钟 vs 163 分钟) ,这可能是因为 Otter 更有效地利用了冻结骨干网络的共享前向传播。
结论与启示
Otter 论文提出了我们思考如何控制 LLM 的一个引人注目的转变。很长一段时间以来,人们假设要控制一个模型,你要么必须从根本上改变它 (微调) ,要么从外部监督它 (外部奖励模型) 。
Otter 证明了还有第三种路: 内部增强 。 通过插入无损参数:
- 我们保持了原始模型的“大脑”完好无损 (无灾难性遗忘) 。
- 我们避免了外部监督的延迟。
- 我们在对齐、安全性和速度方面实现了最先进的性能。
对于学生和研究人员来说,这开辟了令人兴奋的途径。这表明 LLM 架构并非不可变的庞然大物,而是灵活的骨干,可以在单个前向传播中支持多个并行的“意图” (如生成 + 安全检查) 。随着模型变得越来越大,像 Otter 这样高效的技术很可能成为在生产环境中部署安全、对齐的 AI 的标准。
](https://deep-paper.org/en/paper/2408.10764/images/cover.png)