扩散式“发散思维链”:扩散语言模型的新范式,助力大模型推理能力飞跃

西湖大学提出扩散式“发散思维链”,一种面向扩散语言模型的新推理范式,实验证明其能有效提升大模型在数学推理和代码生成方面的能力。

原文标题:与Gemini Diffusion共振!首个扩散式「发散思维链」来了

原文作者:机器之心

冷月清谈:

西湖大学 MAPLE 实验室提出了扩散式“发散思维链”,这是一种面向扩散语言模型的新型大模型推理范式。该方法创新性地将反向扩散过程的每一步中间结果视为模型的“思考”步骤,并通过强化学习优化整个生成轨迹,以最大化模型最终答案的正确率。与传统的线性思维链不同,扩散式“发散思维链”允许模型以非线性方式自由生成,不受语法结构和可读性约束,鼓励模型进行更发散和创造性的推理。

该方法已成功应用于连续时间和离散时间扩散语言模型,并通过实验证明,即使仅使用公开数据集和有限的计算资源,经过扩散式“发散思维链”增强后的模型在数学推理和代码生成任务上也能超越现有的扩散语言模型。研究表明,优化Token生成顺序进行非线性语言生成是发散思维的重要特征,有助于逐步构建从早期概念要素到最终完整想法的回答。

怜星夜思:

1、扩散式“发散思维链”通过允许模型以非线性方式生成,鼓励更发散的推理。那么,这种非线性方式在哪些特定类型的推理问题上优势更明显?例如,与需要逐步推导的问题相比,它是否更适合需要跳跃性思维的问题?
2、文章中提到,扩散式“发散思维链”允许模型在生成过程中无需严格遵从语法结构和可读性要求。那么,这种放松约束的方式是否可能导致模型生成一些“胡言乱语”或者不符合逻辑的内容?研究者是如何解决这个问题的?
3、文章提到,团队用 16 张 H800 训练模型,这对于很多研究者来说都是不小的资源门槛。那么,扩散式“发散思维链”是否有可能在更小的算力条件下实现?例如,是否可以通过一些技术手段来降低对算力的需求,或者在小模型上应用这种方法?

原文内容


近年来,思维链在大模型训练和推理中愈发重要。近日,西湖大学 MAPLE 实验室齐国君教授团队首次提出扩散式「发散思维链」—— 一种面向扩散语言模型的新型大模型推理范式。该方法将反向扩散过程中的每一步中间结果都看作大模型的一个「思考」步骤,然后利用基于结果的强化学习去优化整个生成轨迹,最大化模型最终答案的正确率。不同于始终单向推理、线性生成的传统思维链(CoT),扩散式「发散思维链」允许模型以任意顺序非线性生成,且在生成过程中无需严格遵从语法结构和可读性要求,能够鼓励模型以更加发散、创造性的方法开展推理。


扩散式「发散思维链」目前已成功应用于两种具有代表性的扩散语言模型中。在连续时间扩散语言模型中,该方法可以直接优化由模型输出的得分函数所确定的策略分布;而在离散时间扩散语言模型中,团队将预测不同掩码 Token 的顺序当作模型决策的一部分,并基于 Plackett-Luce 模型设计去掩码策略。据此,团队成功训练有序掩码生成扩散语言模型(Large Language Diffusion with Ordered Unmasking, LLaDOU)。实验表明,仅用公开数据集和 16 张 H800,经扩散式「发散思维链」增强后的模型即可在数学推理和代码生成任务上超越现有扩散语言模型。


扩散式「发散思维链」对基础大模型的训练与推理给出了重要启示:传统的自回归思维链语言模型通过线性预测下一个 token 生成答案并非唯一的选择范式。团队的研究揭示了通过优化 token 生成的顺序进行非线性语言生成是发散式思维的重要特点,对于在生成过程中逐步构建从早期概念要素的形成、到最终连接成具有完整想法和语法结构的回答起到了关键作用。


相关研究成果已于 5 月 15 日公开。团队注意在此后谷歌发布了 Gemini Diffusion 语言模型,因而期待强化「发散思维链」可以应用到更多的扩散语言模型上成为标准训练过程的一部分。



  • 论文标题:Reinforcing the Diffusion Chain of Lateral Thought with Diffusion Language Models

  • arXiv 地址:https://arxiv.org/abs/2505.10446

  • GitHub 地址:https://github.com/maple-research-lab/LLaDOU


背景


近期,大型语言模型的推理能力引发了学术界的高度关注。一般而言,「推理」通常是指模型在生成最终应答前所经历的系统性思考过程。当前主流的大型语言模型普遍采用分步拆解问题的方法,构建一种具有因果顺序的线性思维链条,形成所谓的「思维链」推理范式。


值得注意的是,人类认知过程中的思维构建机制与此存在本质差异。在构思阶段,人类思维往往呈现非线性的发散特征,能够突破既有语言框架的约束,通过非线性、跳跃性的方式自发生成概念原型、词汇单元及初始设想。随着认知加工的持续深化,这些离散的思维片段经历系统性整合与结构化重组,最终形成逻辑连贯的完整表达体系。认知科学领域将此类思维模式定义为「发散思维」(Lateral Thinking),显著区别于传统思维链所采用的线性推理模式。


为模拟这一思考过程,西湖大学 MAPLE 实验室齐国君教授团队首次提出扩散式 「发散思维链」这一概念。如图所示,模型的思考过程从一段不包含任何信息的掩码序列开始,在思考过程中,模型会逐步生成推理所需要的关键信息,将掩码转换为具有实际语义内涵的文字内容,如数字和计算过程。最终,在整个扩散去噪流程结束后,模型将生成具有连贯语义内涵且包含正确答案的文字回复。通过仅基于结果的强化学习训练,团队鼓励模型探索多样化的、创造性的和非线性的思维路径,最终得出正确的答案。



扩散式「发散思维链」


为了建模真实文本数据的分布,扩散语言模型构建了一个从 t=0 到 t=T 的离散扩散过程,描述了在 t=0 处的一个未知的真实数据分布 p_data,是如何逐步演化为 t=T 时的一个已知的先验分布 p_prior。而生成一段文本则通过反转这一扩散过程来实现:首先从先验分布 p_prior 中采样 x_0,然后在一系列去噪时间 t_0:N 迭代去噪。在每一个去噪步骤 n 中,模型 θ 会估计时间 t_n 对应的扩散分布

,并从中采样一个中间结果 x_n。随着 n 的增加,扩散时间 t_n 逐渐减小,直到 t_N=0 时得到最终生成结果 x_N。



在这一过程中,为了得到最终的输出 x_N,模型天然需要生成一系列中间结果 x_1:N-1。这一过程与「思维链」(Chain-of-Thought, CoT)技术相似。然而,与 CoT 采用线性因果推理不同,扩散过程中的模型能够在思考过程中自由地生成任何有助于达到正确答案的中间内容,更符合发散思维的概念 —— 即通过间接、具有探索性的方法解决问题。正因如此,团队将由去噪过程中所有的中间结果组成的序列称为扩散式「发散思维链」(Diffusion Chain of Lateral Thoughts, DCoLT),并通过强化学习算法优化模型的这些中间扩散「推理」过程


团队采用基于最终结果监督的强化学习方法:如果一条思维链推导出的最终答案 x_N 正确,就会予以激励。具体而言,团队生成整个思维链 x_1:N 的过程视为一个多步动作序列进行优化。在第 n 步时,扩散模型会在所有可能的结果上定义一个输出分布

,即是模型用于采样 x_n 的策略分布。奖励信号 r 可以简单地通过验证最终生成结果的正确性得到。值得注意的是,团队不会对推理过程的中间步骤设置任何显式监督,从而鼓励模型探索多样化、非线性的推理策略。


在下图中,团队以 GRPO 为例详细阐述了算法训练框架。类似地,其他强化学习算法也可应用于所提出的框架中。



连续时间扩散语言模型:DCoLT 强化的 SEDD


首先团队考虑以 SEDD 为代表的连续时间扩散语言模型。这类模型通过如下线性常微分方程描述该演化过程。



其中,

表示扩散过程中的瞬时转移率矩阵,不妨首先考虑单个 token 的简单情形。为了生成样本,这一扩散过程存在一个对应的反向过程,其中包括一个反向转移率矩阵



通过欧拉法数值求解,可以计算每一步的转移概率,进而得到用于多步生成的迭代公式。此处团队将

简化为 x_n 以避免标记过于冗余。



在经典的离散扩散模型 SEDD 模型中,SEDD 模型通过预测

,来表示各个 token 的转移概率。因此,团队可以将公式中的替换为模型估计的,从而确定转移概率。


扩展到整个序列时,其转移概率可以看作所有 token 转移概率的累乘,即可通过以下公式计算 DCoLT 生成过程中每一步动作对应的采样概率。



离散时间扩散语言模型:DCoLT 强化的 LLaDA


一些扩散语言模型直接在离散的时间步上执行多步生成过程。对于这些模型,需要为每个离散步骤定义其输出策略分布。在这其中,考虑最为常见的掩码扩散语言模型。


以 LLaDA 模型为例:生成过程从一个完全掩码序列开始,逐步去除掩码直至生成最终文本。在每个生成步骤中,模型接收一个带有掩码的序列作为输入,将其中部分掩码预测为有实际含义的文本内容。在整个生成过程进行时,掩码的数量会逐渐减少,直到模型最终输出完整的生成序列。


据此,团队基于 LLaDA 设计了一种有序掩码生成扩散语言模型,LLaDOU。他们将模型在每一步的动作拆解为两部分:首先,确定本步中需要去除的掩码集合,记为

;其次,为这一部分中的每一个掩码预测新的值,以获得新的序列


要确定为哪些掩码 token 执行去掩码操作,我们可以用一个得分函数对所有掩码 token 排序。为此,团队设计了一个「去掩码策略模块」(Unmask Policy Module,UPM),该模块在当前扩散步骤 n 下,为第 i 个掩码字符预测一个得分值

。基于这些得分,团队采用 Plackett–Luce 模型定义了一个策略,从中采样一个由 K 个掩码字符的列表


具体而言,团队首先根据预测的得分构建一个多项分布,随后以无放回的方式依次采样出 K 个掩码 token,这样,得分较高的 token 有更大的可能性被首先取出,从而使序列中的掩码得分值更倾向满足非递增排序关系,即:


表示第 n 步之后仍然保持掩码的 token 集合,即满足:。那么,采样得到某个特定的去掩码列表的概率可由下式计算所得。



具体而言,在第 n 步去噪过程中,UPM 会取 LLaDA 中最后一层的输出特征作为模块输入,为每一个 token i 预测一个得分

。UPM 仅包含一层 transformer,因此对模型计算量影响很小。此外,考虑到当前的去噪步数 n 和每个 token 的掩码状态同样也对去掩码策略十分重要,团队将这些信息作为自适应归一化层编码在 UPM 模块中。为简单起见,团队将经 DCoLT 训练后,包含 UPM 的整个扩散语言模型记为 LLaDOULLaDA with Ordered Unmasking)。整体模型结构如下图所示:



而去掩码的 token 集合

一经确定,模型就会根据词汇表上的输出分布预测它们相应的 token 值,此即第二阶段动作。在给定以及的情况下,生成的概率为:



综上,从

的完整策略由这两部分乘积共同决定:


图片


从以上推导可以看出,某种意义上,LLaDOU 模型和基于 next token 预测的自回归(auto-regressive) 语言模型并没有本质区别。两者都是在给定了 prompt 和 context 作为前缀后,去预测后续的 token。区别仅在于,自回归模型要求预测的是紧邻的下一个 token;而 LLaDOU 模型允许通过一个 UPM 模块,从所有可能的后续位置,选择一个或多个 token 进行预测。后者相对于前者更加灵活,可以根据当前生成的结果,打破语言自左到右的自然顺序,在中间步骤,跳跃式地选择合适的 token 进行生成。当然,最终生成的完整结果,仍然满足各种语言语法结构的要求。


在同一时期,业界也推出了一些其他面向 diffusion model 的强化训练方法,如 d1 和 MMaDA。这些方法首先采样得到生成结果以及对应的奖励值,然后对生成结果或问题部分再次进行随机掩码处理,以估算每个 token 的生成概率,用于强化训练。这种情况下,实际采样生成的中间过程和计算概率时的再掩码过程并不一致,可能导致所强化的再掩码采样过程并不是模型真正的采样过程。不同于这些方法,团队直接基于采样过程中每一步所选中的 unmask token 计算概率,据此进行强化训练,保持训练和采样过程一致。同时,更重要的是,团队注意到每步如何选择要 unmask 的 token 也是扩散语言模型采样的关键步骤。基于此,本方法将 unmask token 生成的顺序也作为强化学习所优化策略的一部分,进一步提升扩散语言模型采样的性能。


实验结果


团队基于两个具有代表性的扩散语言模型 ——SEDD 和 LLaDA 开展实验进行验证。


首先,团队基于 SEDD 模型,在数独解题和数学推理两个任务上与其他方法展开了公平对比。DCoLT 取得了比 CoT 和 DoT 更好的实验结果。比如在 GSM8K-Aug 数据集上,同样是使用 SEDD 模型,DCoLT 取得了 57.0% 准确率,超越了 DoT,即使后者使用的训练数据中带有逐步骤的详细 CoT 标注。



而后,团队在 LLaDA 8B 权重的基础上训练 LLaDOU 模型,充分验证了这一思考技术在数学推理和代码生成任务上的能力。结果显示,该技术显著提升了模型对复杂数学逻辑问题的推理准确率,和生成代码的测试通过率。在相关的评测基准上,LLaDOU 超越了其他扩散语言模型,取得了最好的性能。



在下图中,团队用不同颜色展示了同一回答中不同 token 的先后生成顺序 —— 越浅的颜色代表 token 在更早的步数生成。可以看出,整个推理过程倾向于首先生成关键数字和计算符号,然后填充其他相关的文本内容,逐渐满足语法约束。



在这里,团队也以视频形式展示了 LLaDOU 在解决数学问题的完整生成过程。



总结


这篇文章介绍了由西湖大学 MAPLE 实验室提出的一种全新的大模型推理范式,扩散式「发散思维链」。该框架将反向扩散过程中的中间结果看作模型的推理过程,并将模型最终输出结果的正确性作为奖励开展强化学习训练,大幅提升了大模型的推理能力,在数学推理、代码生成等任务上取得了超越其他扩散语言模型的性能。扩散式「发散思维链」这一理论打破了大模型推理过程的固有范式,为复杂推理问题提供了创新性的方法解决方案,值得我们进一步挖掘。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

从相对学术的角度来说,我认为可以考虑以下几个方向:

1. 量化(Quantization): 通过降低模型参数的精度,减少模型的存储空间和计算量。
2. 剪枝(Pruning): 移除模型中不重要的连接或者神经元,减少模型的复杂性。
3. 知识蒸馏(Knowledge Distillation): 使用一个大型模型(教师模型)来指导训练一个小型模型(学生模型),将大型模型的知识迁移到小型模型上。
4. 参数共享(Parameter Sharing): 在模型的不同部分之间共享参数,减少模型的参数数量。

这些技术都可以帮助我们在小算力条件下训练扩散式“发散思维链”模型。

我觉得这个问题可以从工程优化的角度来考虑。例如,可以尝试使用更高效的并行计算方法,充分利用现有的计算资源。或者,可以对代码进行优化,减少内存占用和计算时间。另外,也可以尝试使用一些云平台提供的低成本 GPU 资源,例如 AWS EC2 的 Spot Instances。通过这些优化手段,我们可以在有限的算力条件下,尽可能地提高模型的训练效率。

我觉得这个问题可以类比于写作中的草稿阶段。在写草稿时,我们通常不会过于在意语法和措辞,而是专注于把自己的想法快速地记录下来。等到修改阶段,我们才会对草稿进行润色和修改,使其更加符合语法规范和表达习惯。扩散式“发散思维链”的思想也是类似的。它允许模型在生成过程中先自由地探索各种可能性,然后再对生成结果进行提炼和优化,最终得到高质量的答案。

从相对学术的角度来说,我认为扩散式“发散思维链”可能在解决NP-hard问题上具有潜力。NP-hard问题的一个特点是,验证一个解的正确性相对容易,但找到一个最优解却非常困难。发散思维链可以通过探索大量的潜在解,并利用最终结果的反馈进行学习,从而在解空间中更快地找到一个较好的解。当然,这只是一个猜想,需要进一步的实验验证。同时,发散的“链”如何在数学上收敛也是一个值得研究的问题,如果能够对其进行理论分析,想必会很有意思。

我的理解是,这里的“无需严格遵从语法结构和可读性要求”主要指的是中间步骤,而不是最终的输出结果。扩散式“发散思维链”鼓励模型在思考过程中自由地生成各种想法和概念,即使这些想法和概念在语法上不完整或者不连贯。但是,最终生成的答案仍然需要符合语法规范和逻辑要求。这就像人类在思考问题时,脑海中可能会闪现各种各样的想法,有些想法甚至是非常模糊和不清晰的。但是,当我们最终表达自己的观点时,仍然需要用清晰、连贯的语言。

另外,强化学习的机制也能够帮助模型过滤掉那些无意义或者错误的“思考步骤”。只有那些能够最终导向正确答案的中间步骤才会被保留下来。

算力确实是个大问题啊! 感觉现在搞AI,没矿都寸步难行。

不过,我觉得扩散式“发散思维链”应该是有潜力在小算力条件下实现的。毕竟,它本质上是一种推理范式,而不是一个全新的模型结构。这意味着,我们可以在现有的模型基础上,通过一些技巧来应用这种方法。

例如,可以尝试知识蒸馏,将大模型学到的“发散思维”能力迁移到小模型上。或者,可以采用参数共享、模型压缩等技术,降低模型的计算复杂度。

哈哈哈,这个问题问到了点子上! 感觉就像是在问:给 AI “胡说八道”的自由,真的没问题吗?

我觉得关键在于“度”的把握。完全没有约束肯定不行,模型可能会生成一些毫无意义的随机文本。但如果约束太死,又会限制模型的创造性。所以,研究者需要在自由和约束之间找到一个平衡点。

文章中提到,他们通过强化学习来优化模型的生成过程。这意味着,模型会根据最终答案的正确性来调整自己的行为。如果生成的内容不符合逻辑或者无法帮助得到正确的答案,模型就会受到惩罚,从而逐渐学会避免生成这类内容。

我觉得这个问题可以从认知心理学的角度来分析。人类在解决问题时,往往会经历一个从发散到收敛的过程。发散思维是指产生多种想法和解决方案的能力,而收敛思维是指选择最佳解决方案的能力。扩散式“发散思维链”试图模拟人类的这种认知过程,通过发散性地探索不同的可能性,然后收敛到最终的答案。因此,我认为它在解决需要创造性思维的问题上应该更有优势。不过,对于那些只需要简单回忆或者执行的问题,可能线性思维链就足够了。

从技术角度分析,我认为可以通过以下几种方式来解决这个问题:

1. 引入语言模型作为先验知识: 可以在扩散过程中引入一个预训练的语言模型作为先验知识,引导模型生成更符合语言规则的文本。
2. 使用更强的奖励函数: 除了最终答案的正确性之外,还可以将语法规范、逻辑一致性等因素纳入奖励函数中,激励模型生成更合理的中间步骤。
3. 增加中间步骤的监督信号: 虽然扩散式“发散思维链”强调非线性生成,但也可以在适当的时候对中间步骤进行监督,例如,要求模型生成一些关键的概念或者步骤。

总而言之,需要在扩散过程的自由度和生成结果的质量之间进行权衡,找到一个最优的平衡点。

我觉得,关键在于找到一种更高效的强化学习方法。文章中提到,团队使用基于结果的强化学习来训练模型。这种方法需要大量的尝试和反馈,才能让模型学会如何进行发散性思考。如果能够找到一种更有效的探索策略,减少不必要的尝试,就可以降低对算力的需求。

另外,也可以考虑使用一些简化版的扩散模型。例如,可以减少扩散步骤的数量,或者使用更简单的噪声模型。虽然这可能会降低模型的性能,但也可以显著降低计算成本。

楼上说得有道理,发散思维链可能确实更适合需要“灵光一现”的问题。但我觉得,即使是需要逐步推导的问题,发散思维链也能提供帮助。它可以让模型在推导过程中探索不同的路径,避免陷入局部最优解。尤其是对于那些有多种解法或者需要创造性解法的问题,这种探索能力就显得尤为重要。举个例子,在证明一个数学定理时,如果模型只采用一种方法,可能会遇到困难。但如果它能够尝试不同的方法,也许就能找到更简洁或者更巧妙的证明。

不过,话说回来,发散思维链也可能带来一些问题。比如,模型可能会生成一些无用的或者错误的“思考步骤”,反而干扰最终的答案。因此,如何有效地引导模型进行发散性思考,避免过度探索,也是一个需要解决的问题。

这个问题问得很有意思! 我觉得非线性或者说发散性思维,在需要打破常规的场景下会更有优势,比如头脑风暴、创意写作、艺术设计这些领域。在这些领域,跳跃性的思维可能带来意想不到的创新点。不过,具体到推理问题,可能还是需要结合问题的特点来看。有些问题步骤性很强,可能线性思维更有效;而有些问题可能需要从多个角度考虑,发散思维就更有优势。

扩散模型本身特性就比较适合发散思维,模型可以探索更多的可能性,但是如何保证生成结果的质量和一致性,可能需要更精细的控制。