Categories: 算法论文

SEAL:大语言模型的可操控推理 Traning Free

SEAL: Steerable Reasoning Calibration of Large Language Models for Free

摘要

大语言模型(Large Language Models,LLMs),例如 OpenAI 的 o1 系列,已展现出通过扩展的思维链(chain-of-thought,CoT)推理机制处理复杂推理任务的出色能力。然而,最近的研究(Fu 等,2024;Wang 等,2025)揭示了 CoT 推理轨迹中存在显著冗余,这不仅增加了推理延迟,还因将注意力分散至不必要的推理路径而对模型性能产生负面影响。为了解决这个问题,我们研究了 LLMs 内部的推理结构,并将其归类为三种主要思维类型:执行(execution)、反思(reflection)和过渡(transition)思维。此外,我们的分析表明,过多的反思与过渡思维与失败案例高度相关,并且这些思维类别在潜在空间中表现出清晰的分离性。基于这些发现,我们提出了 SEAL(Steerable rEAsoning caLibration),一种无需训练的方法,可无缝校准 CoT 过程,在提高准确性的同时展现出显著的效率提升。SEAL 包括一个离线阶段,用于在潜在空间中提取推理引导向量;随后是在推理过程中通过表示干预利用该引导向量进行即时校准。值得注意的是,该引导向量在多种任务之间表现出强迁移能力。广泛的实验在多个模型(DeepSeekR1-Distill 和 QwQ-32B-Preview)以及多个基准(Math500、GSM8K、LiveCodeBench)上验证了 SEAL 的有效性,准确率最高提升了 11%,同时推理 token 减少了 11.8% 至 50.4%。

https://github.com/VITA-Group/SEAL

Motivation

  • CoT 推理轨迹中存在显著冗余,这不仅增加了推理延迟,还因将注意力分散至不必要的推理路径而对模型性能产生负面影响。
  • CoT 推理轨迹中存在显著冗余,这不仅增加了推理延迟,还因将注意力分散至不必要的推理路径而对模型性能产生负面影响。

LLMs的推理模式

使用”\n\n”分割整个think过程,每一段作为一个thought,将这些thought分成3类:

  • 执行思维:其中模型分析问题并逐步求解
  • 执行思维:其中模型分析问题并逐步求解
  • 执行思维:其中模型分析问题并逐步求解

对于三种thought的token数量和最终答案正确与否分类统计了一下,得到以下结果:

  • 随着题目难度增加,Token消耗越来越多
  • 随着题目难度增加,Token消耗越来越多

且每种类型的思维在错误案例中均表现出更多的步骤。鉴于正确和错误样本的难度具有可比性,这些结果表明,此类过多的推理步骤在必要推理过程之外引入了显著冗余,并可能对性能产生负面影响。

错误样本中思维数量的增加主要由反思和过渡思维的增加所驱动,因为每个反思或过渡步骤通常都伴随着多个执行步骤。

不同thought的隐藏状态特征

t-SNE降维

  • 执行思维和其他思维在隐藏状态中可以区分开(例如第20层)
  • 执行思维和其他思维在隐藏状态中可以区分开(例如第20层)
  • 执行思维和其他思维在隐藏状态中可以区分开(例如第20层)

DeepSeek-R1-Distill-Qwen-1.5B在MATH500上

我没太理解为什么要汇报t-SNE结果

方法

推理引导向量提取

从数据集中抽取出一部分作为验证集,让Reasoning模型进行推理,并依据\n\n切分成多个thought,使用关键字将thought进行归类(‘Alternatively’就归类为过渡)

其他Thought将被归类为执行Thought

对于每个Thought j,从第i层Transformer中提取对应于第一个token“\n\n”的输出表示,记为Hj i。然后计算每个思维类别的平均表示:

由于作者的主要目标是保留执行Thought而减少不必要的反思和过渡,因此构建引导向量:

解码时隐藏状态干预

使用上述的S向量对于解码过程进行即时干预

在解码过程中,在每一个思维步骤结束时,通过对某一层所有 \n\n token 的隐藏状态应用基于 S 得到的偏移量来进行干预,其形式化表示为:He = H + α · S,其中 α 是一个超参数。

由于提取过程是离线进行的,因此不会在解码过程中引入任何额外的延迟

实验

超参数: $\alpha=1 $

模型:Deepseek-R1-Distill-Qwen-1.5B(干预第20层),Deepseek-R1-Distill-Qwen-7B(干预第20层),QwQ-32B-Preview(干预第55层)

数据集:Math500、GSM8K、LiveCodeBench

贪婪解码

下表中的Logits Penalty是baseline,指对于和对应thought相关的token施加logits惩罚的结果,比如对于wait和alternatively token,惩罚值为-3

下面两个表的引导向量S都是在MATH500的一个subset上提取出来的,但是都没有汇报是如何划分subset的,也没有汇报这个subset是否和测试用的数据集有重叠,所以第一个表参考价值不是很大,但是第二个表参考价值一些

对于为什么施加logits惩罚反而可能提升了token数量,作者解释如下:

Logit Penalty(即token空间调整)方法的一个局限性在于,它通常针对单个token进行操作,例如alternatively或wait,而不是在概念层面进行调整。然而,反思和过渡性思考通常通过短语或更长的句子表达,例如let me double-check或another approach is。这种情况仅通过Logit Penalty难以完全抑制。此外,我们观察到,即使降低了这些思考中代表性token的logit值,模型仍然表现出反思和过渡的倾向——只不过是以更隐晦的方式,例如通过改写表达。

消融实验

  1. 使用引导向量弱化不同thought
  1. 对不同层施加
  1. 不同系数 $\alpha $

abanana

Share
Published by
abanana

Recent Posts

Hmm等Token影响模型推理能力

Demystifying Re…

4 天 ago

算法笔记——Transformer

Transformer大致结构…

3 月 ago

运维文档1——服务器

服务器是什么? 服务器就是一台…

7 月 ago

Nginx调优——配置Brotli和Gzip共存

什么是Brotli 项目地址:…

9 月 ago