双院模型:平行语言模型间的双向隐藏状态耦合

arXiv cs.CL 论文

摘要

本文介绍了双院模型(Bicameral Model),该模型通过可训练的神经接口将两个冻结的语言模型在中间隐藏状态层面进行耦合,从而实现了无需序列化文本交换的连续且并发的协调。该方法通过允许辅助模型与主模型并行地操作工具,在算术和逻辑任务中展现出显著提升。

arXiv:2605.11167v1 公告类型:新发布 摘要:现有的多模型和工具增强系统通过生成文本来进行通信,将每次交互都通过输出词表进行序列化。两个预训练语言模型能否改为通过连续、并发的通道进行协调呢?双院模型通过中间隐藏状态上的可训练神经接口,将两个冻结的语言模型耦合在一起。在每一步生成过程中,两个模型同步运行:主模型驱动任务,而辅助模型则操作工具、求解约束或执行代码,两者通过一个翻译网络和一个学习得到的抑制门(约占组合参数的 1%)基于彼此的激活状态进行条件化。该抑制门仅从任务损失中学习选择性的通信协议,无需预设格式。我们在三种工具后端上展示了该机制的有效性。在算术任务中,将两个 0.5B 参数规模的模型与计算器耦合,使准确率从 36% 提升至 96%。在逻辑网格谜题中,将两个 0.6B 参数规模的模型与 Z3 求解器耦合,在 ZebraLogic 数据集上达到了未增强基线的 1.7 倍性能。在数学推理方面,与 Python 沙盒的耦合使得辅助模型能够仅凭隐藏状态信号生成特定问题的代码,而无需看到问题文本。
查看原文
查看缓存全文

缓存时间: 2026/05/13 06:09

# 两院制模型:并行语言模型间的双向隐藏状态耦合
来源: https://arxiv.org/html/2605.11167

###### 摘要
现有的多模型和工具增强系统通过生成文本进行通信,将每一次交互都序列化到输出词表中。两个预训练语言模型能否通过一个连续、并发的通道进行协调?*两院制模型(The Bicameral Model)*通过中间隐藏状态上的可训练神经接口,将两个冻结的语言模型耦合在一起。在每一个生成步骤中,两个模型同步运行:主模型驱动任务,而辅助模型操作工具、解决约束或执行代码,两者都通过一个翻译网络和一个学习到的抑制门(约占组合参数的 1%) conditioning 彼此的激活值。该门仅从任务损失中学习选择性的通信协议,无需规定格式。我们在三个工具后端上演示了该机制。在算术任务中,将两个 0.5B 模型与计算器耦合,准确率从 36% 提高到 96%。在逻辑网格谜题中,将两个 0.6B 模型与 Z3 求解器耦合,在 ZebraLogic 上达到了未增强基线的 1.7 倍性能。在数学推理方面,与 Python 沙箱的耦合使辅助模型能够仅凭隐藏状态信号生成特定问题的代码,而无需看到问题文本。

## 1 引言
今天,当两个预训练语言模型需要合作时,它们通过生成文本来通信,通过离散标记序列化每一次交互。本文探讨两个冻结的大语言模型(LLM)是否可以通过其中间隐藏状态进行协调,以及仅从任务损失训练时,学习到的耦合是什么样子的。

两院制模型通过一个可训练的神经接口耦合两个语言模型,为激活值在它们的中间隐藏状态之间流动提供桥梁。主模型 $M_p$ 协调任务并生成最终响应,而辅助模型 $M_a$ 维持一个并发流,并访问外部工具。两个模型在每一个生成步骤中同步推进,因此这两个流是同时且双向地相互 conditioning,而不是通过序列化的文本往返。

接口 $\phi$ 位于可配置的 Transformer 层之间,在模型的表示空间之间翻译激活值,并通过学习到的抑制门调节耦合强度。两个模型的权重保持冻结;只有 $\phi$ 通过双目标监督微调进行训练。主模型继续生成,而辅助模型并行操作工具,结果通过神经通道而非文本往返传递。

我们在三个工具后端上测试了该机制,这些后端旨在主模型和辅助模型之间制造巨大且明确的能力差距:计算器、Z3 约束求解器和 Python 沙箱。工具是我们用来产生这种差距的手段,而非机制本身;相同的隐藏状态耦合应适用于任何一对互补模型。

将 0.5B 模型与配备计算器的辅助模型耦合,使算术准确率从 36.2% 提高到 96.5%;将 0.6B 模型与 Z3 求解器耦合,在 ZebraLogic 上比未增强模型提高了 1.7 倍 (Lin et al., 2025 (https://arxiv.org/html/2605.11167#bib.bib1));在 Python 工具配置中,辅助模型仅凭隐藏状态信号生成正确的特定问题代码,而无需看到问题文本。

仅训练下一个标记损失,且未规定隐藏状态通道应携带的内容格式,抑制门收敛到一种选择性、方向结构化的通信协议:前向耦合($M_p \to M_a$)集中在与任务相关的标记上,如数字和操作关键词,而后向耦合($M_a \to M_p$)在工具输出可用或被回忆时激增(§5 (https://arxiv.org/html/2605.11167#S5))。此外,该通道在训练期间以严格的因果顺序发展:首先是前向耦合,然后是工具回忆,最后是准确率,这与架构的依赖结构一致。等效适配器消融实验证实,增益来自辅助模型的推理,而非可训练接口的容量。

## 2 架构
Tools (Z3, Calc, Python) -> Neural Interface $\phi$ -> Auxiliary $M_a$ <-> Primary $M_p$
(双向箭头表示辅助输入/输出和主模型输入/输出)
Figure 1: 两院制架构。冻结的主模型 $M_p$ 和冻结的辅助模型 $M_a$ 并行运行,通过轻量级可训练神经接口 $\phi$ 耦合。在每个生成步骤中,$\phi$ 从 $M_p$ 的第 $\ell_r^p$ 层读取隐藏状态,并向 $M_a$ 的第 $\ell_w^a$ 层注入扰动(前向耦合),然后从 $M_a$ 的第 $\ell_r^a$ 层读取,并向 $M_p$ 的第 $\ell_w^p$ 层注入(后向耦合)。辅助模型的输出标记路由到外部工具(Z3 求解器、计算器);工具结果作为输入标记强制返回。

##### 符号说明
我们使用 $m \in \{p, a\}$ 来索引主模型和辅助模型。每个模型都是具有 $L_m$ 个块的预训练 Transformer;我们将其在第 $\ell \in \{0, 1, ..., L_m\}$ 个块执行之前的残差流状态写为 $\mathbf{h}_m^{(\ell)}(t) \in \mathbb{R}^{d_m}$,其中 $t$ 是标记位置。当 $\ell=0$ 时,这是输入嵌入;当 $\ell=L_m$ 时,它是馈送给最终层归一化和解嵌入的状态;在整篇论文中,“层 $\ell$”指的是这个残差流索引。每个模型在位置 $t$ 产生的标记表示为 $x_t^p$ 和 $x_t^a$(主模型和辅助标记;来源描述在 §2.3 (https://arxiv.org/html/2605.11167#S2.SS3))。接口在四个层索引处读写(每个方向的读写):$\ell_r^{p \to a}, \ell_w^{p \to a}, \ell_r^{a \to p}, \ell_w^{a \to p}$。具体以前向方向为例,接口从 $M_p$ 读取 $\mathbf{h}_p^{(\ell_r^{p \to a})}(t)$,并用原始状态和翻译信号的加组合作替换 $M_a$ 中的 $\mathbf{h}_a^{(\ell_w^{p \to a})}(t)$(§2.2 (https://arxiv.org/html/2605.11167#S2.SS2));后向方向是对称的。我们的恒等耦合实验约束 $\ell_r^{p \to a} = \ell_w^{p \to a}$ 和 $\ell_r^{a \to p} = \ell_w^{a \to p}$(相同深度耦合,因为恒等映射要求 $d_p = d_a$);PullStandard 实验扫描一般的四元组。

### 2.1 系统概览
两院制模型由三个组件组成(图 1 (https://arxiv.org/html/2605.11167#S2.F1)):*主模型* $M_p$ 生成面向用户的文本,*辅助模型* $M_a$ 维持一个具有访问外部工具能力的并发推理流,以及*神经接口* 通过其中间隐藏状态耦合两者。$M_p$ 和 $M_a$ 都是预训练的 Transformer 语言模型,其权重已冻结;只有接口的参数进行训练。

接口由两个方向耦合算子组成,$\phi^{p \to a}: \mathbb{R}^{d_p} \times \mathbb{R}^{d_a} \to \mathbb{R}^{d_a}$ 和 $\phi^{a \to p}: \mathbb{R}^{d_a} \times \mathbb{R}^{d_p} \to \mathbb{R}^{d_p}$,每个算子将发送者和接收者的隐藏状态映射到更新的接收者状态。它们的具体形式(翻译网络加学习到的抑制门)在 §2.2 (https://arxiv.org/html/2605.11167#S2.SS2) 中给出。

每步的前向传播展开如下(图 2 (https://arxiv.org/html/2605.11167#S2.F2)):
1. 两个模型从输入嵌入运行到前向耦合层,产生 $\mathbf{h}_p^{(\ell_r^{p \to a})}(t)$ 和 $\mathbf{h}_a^{(\ell_w^{p \to a})}(t)$。
2. *前向耦合* 更新 $M_a$ 在 $\ell_w^{p \to a}$ 处的隐藏状态:
   $$ \mathbf{h}_a^{(\ell_w^{p \to a})}(t) \leftarrow \phi^{p \to a}\! \left( \mathbf{h}_p^{(\ell_r^{p \to a})}(t), \; \mathbf{h}_a^{(\ell_w^{p \to a})}(t) \right). \quad (1) $$
3. 两个模型通过中间层继续运行到后向耦合层,产生 $\mathbf{h}_a^{(\ell_r^{a \to p})}(t)$ 和 $\mathbf{h}_p^{(\ell_w^{a \to p})}(t)$。
4. *后向耦合* 通过对称性更新 $M_p$ 在 $\ell_w^{a \to p}$ 处的隐藏状态:
   $$ \mathbf{h}_p^{(\ell_w^{a \to p})}(t) \leftarrow \phi^{a \to p}\! \left( \mathbf{h}_a^{(\ell_r^{a \to p})}(t), \; \mathbf{h}_p^{(\ell_w^{a \to p})}(t) \right). \quad (2) $$
5. 两个模型完成剩余层并产生一个标记(采样或强制;见第 2.3 节 (https://arxiv.org/html/2605.11167#S2.SS3))。

前向耦合使辅助模型观察主模型的演变表示;后向耦合使辅助模型的推理流回传并影响主模型生成。我们将接口整体写为 $\phi = \{\phi^{p \to a}, \phi^{a \to p}\}$;$\phi$ 是唯一的可训练组件,$M_p, M_a$ 是冻结的。

### 2.2 神经接口
我们现在展开 §2.1 (https://arxiv.org/html/2605.11167#S2.SS1) 中介绍的耦合算子 $\phi^{p \to a}$ 和 $\phi^{a \to p}$。每个方向有两个可训练组件:*翻译网络* $f^{\cdot}$,将发送者隐藏状态映射到接收者的表示空间;以及*抑制门* $g^{\cdot}$,控制接收者允许多少翻译信号。具体以前向方向为例(后向是对称的):

$$ \phi^{p \to a}\! \left( \mathbf{h}_p, \mathbf{h}_a \right) = \big( 1 - \sigma^{p \to a} \big) \, \mathbf{h}_a \; + \; \sigma^{p \to a} \, f^{p \to a}( \mathbf{h}_p ), \quad \sigma^{p \to a} = \mathrm{Sigmoid}\! \big( g^{p \to a}( \mathbf{h}_a ) \big). \quad (3) $$

这里 $f^{p \to a}: \mathbb{R}^{d_p} \to \mathbb{R}^{d_a}$,且 $g^{p \to a}: \mathbb{R}^{d_a} \to \mathbb{R}^k$ 输出维度为 $k \in \{1, d_a\}$(标量或逐元素)的门。四个网络 $(f^{p \to a}, g^{p \to a}, f^{a \to p}, g^{a \to p})$ 是 $\phi$ 的完整参数化。

**Pull 设计。** 门读取*接收者*的隐藏状态,因此接收者根据其自身状态决定允许多少外部信号。由于方程 (3) (https://arxiv.org/html/2605.11167#S2.E3) 是 $\sigma \in [0, 1]$ 的凸组合,两个极端具有可解释的含义:在 $\sigma \approx 0$ 时,接收者忽略发送者并像未耦合一样继续;在 $\sigma \approx 1$ 时,接收者的隐藏状态完全被翻译的发送者信号替换。111 带有“Push”变体(门从发送者计算)和无门变体的初步实验也学习了有效的耦合;我们在下面报告 Pull 设计。

**实例化。** 我们考虑 $\phi$ 的两种具体选择:
- **PullStandard**: 每个 $f^{\cdot}$ 是一个多层感知机(MLP),每个 $g^{\cdot}$ 是一个较小的 MLP,都具有 ReLU 激活。我们的扫描中使用标量和逐元素门。这是我们实验中使用的主要变体。
- **PullIdentity**: $f^{\cdot}$ 被替换为恒等映射(要求 $d_p = d_a$),仅训练抑制门。此变体需要具有兼容潜在空间的模型,例如在匹配深度耦合的相同模型。

**层适配器。** 除了 $\phi$ 之外,一些配置在冻结模型自身的 Transformer 层上直接插入低秩瓶颈适配器 (Houlsby et al., 2019 (https://arxiv.org/html/2605.11167#bib.bib34))。这些适配器与 $\phi$ 不同:每个适配器对层的输出应用加性残差 $\mathbf{h} \leftarrow \mathbf{h} + \frac{\alpha}{r} W_{\mathrm{up}}( \mathrm{ReLU}( W_{\mathrm{down}} \mathbf{h} ) )$,其中 $W_{\mathrm{up}}$ 初始化为零,因此适配器在初始化时是无操作的。我们仅在恒等式风格的接口中使用它们,在这些情况下,它们似乎是耦合模型处理并行叠加隐藏状态流所必需的。

Primary $M_p$ <-> Interface $\phi$ <-> Auxiliary $M_a$
Figure 2: 展开的生成。算术示例“$4 \times 3$ 等于多少?”的逐标记锁定步解码。箭头不透明度反映耦合强度(学习到的抑制门 $\sigma$)。
Phase 1: $M_a$ 处理其工具指令提示(无耦合)。
Phase 2: $M_p$ 处理用户查询;双向耦合激活($M_a$ 上的“等待”标记 •)。
Phase 3: 两个模型自由生成,双向耦合。$M_a$ 发出 `calc(4*3)`;工具将 `=12` 强制返回为输入标记(绿色)。$M_p$ 产生答案“4 * 3 equals 12”,从未看到计算器语法。

### 2.3 三阶段生成
在推理时,两个模型在每个位置同步前进一个标记。在步骤 $t$,每个模型发出一个标记:主标记 $x_t^p$ 和辅助标记 $x_t^a$。每个标记来自以下三个来源之一:
- **采样**,从模型的条件分布中抽取,耦合信号 $\phi$ 已注入到相关隐藏状态(例如 $x_t^p \sim M_p(\cdot | x_{<t})$)。
- **强制**,由外部工具或训练数据中的特定序列指定。
- **等待**,标记 `•`,用于在 $M_a$ 尚未准备好输出时保持同步。

... (后续内容涉及具体实验设置和数据生成细节,此处省略以符合上下文长度)

##### 声明和查询
实体用 `@entities: a,b,c;` 声明,属性域用 `@domain: color: red,blue,green;`(离散)或 `@domain: age: int[1,100];`(算术)声明。默认情况下,所有属性在实体之间是唯一的;`@nonunique: hobby;` 放宽了这一限制。查询有四种形式:`?entity.attr;`(特定值),`?entity;`(所有属性),`?;`(可满足性检查),以及 `?json;`(完整解作为 JSON)。命令可以用 `!N;`(取消命令 N)或 `clear;`(重置所有状态)撤销。

##### 约束语法
表 5 (https://arxiv.org/html/2605.11167#A3.T5) 列出了约束原语。操作数可以是*直接*的(实体名,例如 `alice.house`)或*间接*的(属性-值引用,例如 `@pet: dog.house`,意思是“拥有狗的人的房子号码”)。所有运算符都接受两种操作数形式,产生三种引用模式:直接-直接、间接-直接(或反之),以及间接-间接。

表 5: ZebraDSL 约束语法。操作数 LL 和 RR 是直接(entity.attr)或间接(@attr:val.attr)引用。所有约束都以分号结尾。

##### 训练数据的线索类型

相似文章

训练具有部分双向性的混合块扩散语言模型

arXiv cs.LG

本文提出了一种用于块扩散语言模型的混合Mamba-注意力架构,该架构将反向Mamba扫描限制在活跃去噪块内,从而实现了块间的精确缓存,并在长上下文生成中达到了高吞吐量。

水平扩展LLM:无需权重修改的隐藏状态耦合 [R]

Reddit r/MachineLearning

残差耦合(RC)使用轻量级学习线性桥接器并行连接冻结的语言模型,实现无需权重修改的水平扩展。与MoE相比,它最多可将困惑度降低80.7%,并在TruthfulQA上提升9.1个百分点的准确率。

贝叶斯模型合并

arXiv cs.LG

介绍贝叶斯模型合并(BMM),这是一个即插即用的双层优化框架,用于将多个任务特定的专家模型合并为一个单一模型,在视觉和语言基准测试上实现了最先进的性能。