正文
扩散式「发散思维链」
为了建模真实文本数据的分布,扩散语言模型构建了一个从 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 以避免标记过于冗余。