RelayLLM: Efficient Reasoning via Collaborative Decoding
(arxiv 2025)
一句话概括
训练小模型作为“主控者”,仅在推理遇到困难的关键时刻主动生成特殊指令(<call>)将生成过程短暂“接力”给大模型。
Motivation
目前的主流协作方案(如路由或级联)通常是粗粒度(Coarse granularity)的 。路由器会判断一个问题很难,然后将整个生成任务交给大模型 。
小模型实际上有能力处理推理过程中的大部分步骤,只需要专家在特定的关键节点进行干预 。
方法
$\mathcal{M} _ {S}$(小模型)正常生成文本。
当$\mathcal{M} _ {S}$遇到困难时,它会生成一个特殊的命令令牌 <call>n</call>,其中 n 代表需要大模型生成的令牌数量 。
当遇到困难时,生成暂停,当前的上下文(去掉命令令牌)被发送给 ML(大模型)。$\mathcal{M} _ {L}$生成接下来的 n 个令牌(或遇到 EOS 停止)。
大模型生成的内容被拼接到上下文中, $\mathcal{M} _ {S}$接收这些“专家指导”,并继续后续的推理。
如何训练
SFT冷启动
若直接使用RL,则可能无法自然生成<call>n</call>,故需要采用SFT来冷启动。作者构建了一个合成数据集$\mathcal{D} _ {warm}$,用于教会模型调用命令,同时避免引入分布偏移。
为防止小模型 $\mathcal{M} _ {S}$的分布偏移,作者首先通过直接从原始 $\mathcal{M} _ {S}$采样生成基础序列 y,而非依赖外部语料库。这确保了训练上下文与小模型自身的分布完全一致。在这些自采样序列中,我们在随机的索引位置 t 处以 token 级别插入命令 token。通过避免对句子或段落边界的严格限制,使模型能够在推理时精确地在出现推理缺口的瞬间触发辅助行为。
RLVR with GRPO
数据过滤
如果大模型在解决某个查询时始终失败,在训练过程中调用它不会带来任何正向收益。
因此,作者对数据集进行预处理,以过滤掉对大模型而言过于困难的样本。对每个查询采样10 个响应,并仅保留通过率不低于≥50%的样本。这一步骤确保了训练数据处于大模型的能力边界内,且生成的响应能够有效贡献。
基于问题难度的奖励机制
为了指导模型在“独立解决”和“寻求帮助”之间取得平衡,论文设计了基于问题难度的奖励机制:
- 学生可解决 (Student-Solvable) → 鼓励独立:
如果小模型能独立答对,给予高额奖励($r=1.5$)。目的:防止模型即使能自己做也去麻烦老师,鼓励独立性。
- 依赖老师 (Teacher-Dependent) → 惩罚固执:
如果只有在大模型介入时才能答对,而小模型自己答错,则对不呼叫的行为进行惩罚($r=-1.0$)。
目的:惩罚盲目猜测,强制模型在必要时求助。
- 老师无法解决 (Teacher-Unsolvable) → 激励探索:
如果大模型介入了也答不对,与其给零分,不如给一个小的探索奖励($r=\rho(y)$)。
目的:鼓励在极度不确定(极难)的情况下尝试求助,而不是直接放弃。
方法
使用GRPO。最终的目标函数:
$$
\mathcal{J} _ {GRPO}(\theta)=\mathbb{E} _ {q\sim\mathcal{D}}[\frac{1}{G}\sum _ {i=1}^{G}(\hat{A} _ {i}-\beta\mathbb{D} _ {KL})]
$$