Demystifying Reasoning Dynamics with Mutual Information: Thinking Tokens are Information Peaks in LLM Reasoning
感觉Motivation阐述的不是很明确,但是想法的不错但是工程方面似乎有些问题,详情请看下面的高亮块
大规模推理模型(LRMs)在复杂问题求解方面展现出了令人印象深刻的能力,但其内部的推理机制仍缺乏深入理解。本文从信息论的角度出发,研究了LRMs的推理轨迹。通过追踪中间表示与正确答案之间的互信息(MI)在LRM推理过程中如何演变,我们观察到一种有趣的MI峰值现象:在某些特定生成步骤中,MI会在LRM的推理过程中突然且显著地增加。我们对该现象进行了理论分析,并证明随着MI的增加,模型预测错误的概率会下降。此外,这些MI峰值通常对应于表达思考或转折的词元(token),例如“Hmm”、“Wait”和“Therefore”,我们将这类词元称为思考词元(thinking tokens)。接着我们表明,这些思考词元对LRM的推理性能至关重要,而其他词元则影响甚微。基于这些分析,我们提出了两种简单但有效的改进方法,通过精心利用这些思考词元来提升LRM的推理表现。总体而言,本研究为理解LRMs的推理机制提供了新的视角,并为提升其推理能力提供了可行的实践路径。代码地址为 https://github.com/ChnQ/MI-Peaks。
截止目前,LRM内部的推理的动态仍然是不可知的。且一些研究表明LRM的某些关键token会严重影响模型生成内容的安全性,所以作者希望弄清楚:
实验发现模型的中间步骤与gold answer之间的互信峰值的分布是稀疏且不均匀的
这表明在某些关键的推理步骤中,LRMs 的表示变得对正确答案影响较大。于是又提出另一个问题:
作者继续实验,发现当LRM的输出与ground truth之间的累积互信度增加时,LRM的推理出错的概率会降低。但是LRM所对应的基座模型就没表现出这么明显的峰值现象。所以作者认为峰值现象的出现可能源于密集的推理训练,并且可能和LRM卓越的推理能力相关
于是提出第三个问题:
发现这些具有互信息(MI)峰值的表示主要对应于诸如“Wait”、“Hmm”、“Therefore”、“So”之类的词符(token),这些词通常表达沉思、自我纠正或转折过渡的含义。
作者将上述具有MI峰值的token命名为thinking token,并假设这些思考token可能在模型的推理能力中发挥了关键作用,为了验证以上猜想,作者在某次实验中抑制了thinking token的生成,并且发现这样做显著损害的模型性能。且如果抑制的是其他token,则没有明显的区别
提出了两种Training free的提高LRM ACC的方法:
将一个数据集的X输入的Model中,获得T个输出Token(Y’),并且收集每个token对应的hidden state,设A为提取hidden state的函数,这个过程记为:
在提取表示之后,我们随后度量每个生成token的隐藏状态ht与标准答案的隐藏状态hy之间的互信息(MI),从而获得一个MI序列:[(ht; hy), I(ht; hy), …, I(ht; hy)]。
是怎么获得到hy的呢?看代码得知,LRM没使用任何template(hy和ht都没有),直接将ground truth输入到LRM中,并提取出对应的几个token的hidden statehy没使用任何template也可以理解,毕竟不希望template中的内容干扰hy但是为什么ht也不应用template呢?对于ht的问题我已经在github上提问了,尚未得到答复
采用希尔伯特-施密特独立性指标,用于衡量两个变量之间的独立性
对于一个MI序列,定义Q1和Q3是其中两端的两个四分位点,定义IQR(m)=Q3-Q1为四分位距,定义峰值为:
其中τ为超参数,实验中设置为1.5
在MATH数据集上实验,MI是稀疏的、不均匀的
作者想知道,MI峰值和Acc的关系
这一段我没看明白,不知道作者从哪里拿出两个定理,我推半天没推出来
其中Hb为二元熵:
作者声称定理1建立了LLM预测误差pe的下界。直观上,它表明若要LLM实现较低的误差率,其在生成过程中的一系列内部表示应能够捕捉关于正确答案的更多信息。换句话说,在生成轨迹中保持较高的互信息(MI)可能有助于降低模型可达到的最小误差。定理2给出了预测误差pe的一个上界,这补充了定理1中的下界。它表明,表示序列与正确答案之间的累积互信息(MI)越高,大语言模型(LLM)误差概率的上界就越紧。
直接将上述推理的结果decode出来,发现在MI峰值处出现的token主要是表达自我反思或LRM推理过程中转折的连接词。作者定义这些token为thinking token
抑制thinking token的出现会大大影响Acc,而抑制普通token的出现不会
抑制thinking token的方法是在生成过程中将其概率设置为0,导致无法采样到想要抑制的token
抑制普通token的方法是随机采样一些token,并将其概率设置为0
我觉得这抑制普通token的方法问题太大了
作者对于抑制thinking token的方法并非严格递减的解释如下,有时抑制Wait,模型会生成But wait短语来规避这种抑制
对于Thinking Token,将其对应的hidden state在某一层处理两次再传递给下一层
例如普通Token在第l层的处理为:$h_l=TF_l{h_{l-1}} $,但对于Thinking Token在第l层的处理就是 ${h’}_l=TF_l{h_{l-1}},h_l=TF_l{{h’}_l} $,但是对于其他层都是常规处理
为了评估RR的有效性,我们在三个数学推理基准测试中使用DeepSeek-R1-Distill-Llama-8B和DeepSeek-R1-Distill-Qwen7B进行实验。由于在推理过程中无法获取真实答案,我们首先使用MATH数据集的训练集记录思维token(如第3.1节所述),然后当模型生成这些思维token之一时触发RR。基于以往研究建议,LLMs的中间层或高层倾向于编码更具语义丰富的内容,因此我们经验性地将l设置为这些层次。
没介绍实验中具体取的哪一层
我不理解为什么7B和8B模型在AIME24上效果这么好,反而我们的Qwen25-32B-Instruct在AIME24上只有10%
以下是另外一篇文章汇报的Qwen25-32b-instruct的结果,感觉可能和sampling策略有关,我采用的是temperate,这些论文似乎更倾向于greedy
基于上面识别出的思维token集合,我们过滤掉语义内容较少的token(例如标点符号和单个字符),并保留诸如“So,”、“Hmm,”之类的token,这些token通常表示思考、过渡或进一步推理的开始。然后在推理过程中,我们将其中一个思维token附加到模型初始输出的末尾,并允许其继续生成额外的推理步骤。