在我作为博士生研究离散扩散语言模型(DLM)的第一年里,我积累了大量观察、学习和见解。其中一些想法尚未写成论文,要么是因为过于推测性,要么是尚未成熟。然而,将这些想法整合起来,一个有趣的图景开始浮现,即使还有些粗糙,也值得分享。因此,本文将视为一篇观点文章,其中包含了经验教训、热点观点以及对大型语言模型未来或多或少大胆的预测。
扩散语言模型扩展性更好
第一个、最有趣、也可能是最具推测性的预测是:扩散语言模型将具有比自回归模型更低的损失下限 [1]。这是一个重大的论断:如果属实,那么当前 LLM 的"不可约损失"可能并非真的不可约,实际上可能是由于过强的归纳偏差限制了模型在极大尺度上拟合数据的能力。这种归纳偏差,当然,就是当前自回归 LLM 所采用的严格的从左到右的生成顺序。
乍一看,这听起来令人惊讶——甚至荒谬——竟然认为下一个词元预测施加了如此强的归纳偏差,以至于限制了模型的可扩展性。毕竟,扩展自回归的下一个词元预测器一直是推动人工智能近期进步的主要驱动力。但如果你深入思考一下,不难发现一些场景中严格的从左到右顺序实际上使生成任务变得比必要更困难:简单的算术(加法、乘法等)就是一个例子,按逆序(从右到左)预测词元比按规范顺序容易得多 [2]。数独是另一个例子,填充最左边的数字可能是指数级困难的,可能需要解出整个谜题才能填好第一个数字。事实证明,扩散模型确实在数独任务上表现出色,而自回归模型则表现挣扎 [3, 4]。总的来说,使用教师强制(即所有当前 LLM 的训练方式)训练的自回归模型,难以学习第一步困难但后续步骤(在第一步正确的前提下)简单的问题 [5]。这里的一个警告是,"思考"模型(通过强化学习训练的)可能通过非自回归的思维链生成解决路径来规避这个问题。尽管如此,在预训练期间学习一项技能与在后训练期间学习,两者之间应该存在差异,后者的学习过程通常仅限于优化预训练期间学到的分布。
均匀扩散是未来
自离散扩散出现以来,均匀状态扩散就已存在,并且在很长一段时间里,一致的报告表明掩码扩散严格优于均匀扩散。与掩码扩散(模型被训练从完全空白的序列开始填充缺失的词元)相比,均匀扩散模型被训练从完全随机的词元序列开始修正词元。因此,生成过程变成了词元替换,模型的任务是用更合适的替代词替换看起来嘈杂的词元。从概念上讲,这一直有很多优点:均匀扩散模型实际上是完全被预训练来发现和修正错误,这是自回归模型和掩码扩散模型都迫切缺乏的理想属性。尽管如此,观察到的掩码扩散和均匀扩散之间的似然差距太大,无法忽视,这就是为什么许多人全力投入掩码扩散的原因。然而,越来越多的证据表明,均匀扩散模型并不像我们想象的那么差:是的,似然差距确实存在,但它会随着规模扩大而缩小 [1]。更重要的是,均匀扩散模型擅长生成高质量、高精度的样本——这最终是我们关心的——这得益于它们的自我修正能力 [1, 6]。
稍微大胆一点说,我甚至可能认为,均匀扩散模型在预训练期间获得的技能,在性质上不同于自回归模型和掩码扩散模型所学习的技能。要理解这一点,让我们想想在各种语言建模范式下需要哪些"技能"。对于自回归模型,现在已经很清楚,在给定所有先前词元的情况下高精度预测下一个词元,实际上比最初看起来更丰富 [7]。它不仅需要良好的语法和语义理解,还需要广泛的事实知识、常识、推理世界的能力等等。对于掩码扩散,所需的技能在很大程度上是相似的,但现在增加了在给定部分观测到的过去和未来的情况下预测缺失词元的难度(灵活性)。这已经导致了对语言更全面的理解,并有助于解决诸如逆转诅咒 [8] 和算术等问题。另一方面,均匀 diffusion 完全改变了游戏规则:任务不再是填充缺失的词元,而是发现输入中的错误、不准确和不一致之处,并找到合理的方法来解决它们。这仍然需要所有关于语法、语义、事实、常识等的知识,但这是一个根本不同的范式;一个迭代细化和改进的范式。不难想象,一个(大型)模型如果变得非常擅长于此,将会获得与现有自回归甚至掩码扩散 LLM 相比性质不同的技能。
令人兴奋的是,与掩码扩散相比,对均匀扩散模型的理解仍然相对较差,因为大多数工作都集中在掩码扩散模型上,并且这些成果不能轻易地转移到均匀扩散上。可能正有待取得突破——这是一个诱人的可能性。下面,我将详细阐述我认为一些有前途的方向。
#超越朴素的均匀扩散
关于均匀扩散模型,最令人兴奋的事实可能是,它们实际上是对"检测与修正"任务的一个非常粗略的近似。直观地理解这一点,考虑用从所有可能词中均匀随机选择的词替换句子中的某些词。通常情况下,随机选择的词元会明显错误,并且在上下文中非常容易发现(例如,一个完全不合适的罕见词),尤其是当随机词的数量较少时。在这些情况下,随机词只是掩蔽词元的一种复杂方式,因此我们不如坚持使用掩码。但有时,尽管可能很少见,随机选择的词元不会那么明显地错误,实际上可能适合上下文。也许这正是训练好的模型在推理时可能犯的那种错误。在这些情况下,检测与修正任务非常有意义,并能教会模型关于自然语言的细微差别,包括语法、语义、正确性等等。
因此,为了使训练任务具有最大的意义,我们应该尽可能地创造更多后一种情况,并在可能的情况下防止明显的、低信号的替换。如果说均匀扩散是信息不足的,以数据无关的方式添加噪声,那么这种语义上有意义的扩散过程需要是数据引导的,并以更有可能(近似)保留意义的方式添加噪声,而不是在一次转移中完全破坏意义。当然,这样的过程会比简单的掩码和均匀扩散过程更复杂。但巨大的设计空间也为创新提供了机遇。以下是我脑海中浮现的一系列想法,从可能是最简单版本的数据引导扩散过程开始。
#跳跃调度的重要性
稍微换个话题,我们来讨论一下驱动扩散语言模型的理论。离散扩散模型通常在连续时间下训练,这意味着底层的加噪/去噪过程是一个连续时间马尔可夫链。虽然离散扩散文献通常根据它们的转移速率(从一个状态跳到另一个状态的无穷小概率)来定义这些过程 [10],但还有另一种可以说更直观、更有洞察力的定义方式,即根据它们的保持分布和跳跃链。这种观点背后的直觉可以通过以下思维模型来捕捉。想象序列中的每个词元都有一个计时器,倒计时到下一次跳跃(状态转移)。计时器被设置为一个随机的初始时间,可能取决于当前状态。一旦计时器归零(当它"响"时),词元按照某个转移概率分布跳跃到一个新状态。这完美地描述了连续时间马尔可夫过程中发生的情况——事实上,你可以把它想象成一个在等待和跳跃之间交替的游戏。等待时间的分布被称为保持分布,通常是指数分布,而跳跃概率由跳跃链描述,这是一个离散时间马尔可夫链,它指定了在确实发生跳跃的条件下,两个状态之间的转移概率。这些保持时间和转移概率通常可能依赖于当前的噪声水平和当前状态。在正向加噪方向上,它们通常不依赖于当前状态,但在反向去噪方向上,它们通常依赖于当前状态。
更正式地说,一个具有状态 X_t 的 CTMC 完全由跳跃链 P ∈ R^(N×N)(其中 P_ij 表示从状态 i 跳到状态 j 的概率)和具有参数 λ_i 的保持分布(指定状态 i 在跳到别处之前保持多长时间)来定义。如果 X_t = i,我们有 保持时间 ~ Exp(λ_i), 下一个状态 ~ P_i, 其中 Exp(λ_i) 是比率为 λ_i 的指数分布。[注 2] A-2.orG.CN Pishro-Nik [11] 对 CTMC 的这种观点有很好的介绍。
可以证明,在连续时间下,如果正向扩散过程是一个 CTMC,那么反向去噪过程也是一个 CTMC,尽管可能具有不同的保持时间和转移概率。这反过来又很容易看出,为了逆转正向 CTMC,去噪模型必须预测两件事:前一个状态(即反向跳跃链)以及当前状态和前一个状态之间的保持时间(即反向保持分布)。事实证明,对于掩码扩散,正向和反向保持分布完全相同,因为每个词元无论链的方向是正向还是反向,都恰好经历一次跳跃(从非掩码到掩码,反之亦然)。当然,反向跳跃链仍然非常复杂:即使我们知道每个词元变得非掩码的时间,也很难正确地填充它们。因此,掩码扩散模型不需要拟合保持时间,只需学习如何填充缺失的词元就足够了。换句话说,它只需要拟合跳到哪里,而不需要拟合何时跳 [12],这使得它的任务稍微容易一些。
然而,对于均匀扩散,我们就没有这么幸运了。显然,反向保持时间应该取决于当前词元的"正确"或"噪声"程度:如果词元是噪声的概率很低("看起来正确"),那么反向保持时间应该很长,因为该词元不太可能再次改变。另一方面,如果词元是噪声的概率很高("看起来错误"),那么反向保持时间应该更短,因为该词元仍然需要至少一次转移才能达到干净状态。[注 3] 当前的均匀扩散模型通过一个关于给定一些噪声观察 z 的干净词元 x 的单一分类分布来隐含地学习反向保持分布和跳跃链,但有线索表明去噪目标实际上可能由两个不同的任务组成。
#分两部分去噪:学习何时与何处
具体来说,GIDD(广义插值离散扩散)ELBO [13] 有两个散度项:真实分布与模型预测边际分布之间的 KL 散度,以及在当前词元处相同分布之间的 IS 散度。我们有
L_GIDD(x, θ) = E_{t, z ~ q_t(·|x)} [ w_t(z, x) { D_KL(q_t(·|x) || q_t(·|x_θ)) + D_IS(q_t(z|x) || q_t(z|x_θ)) } ]. (跳跃链? 保持分布?)
这里,q(z|x) 表示给定干净数据 x 时,正向过程在时间 t 的边际分布,而 q(z|x_θ) 表示模型预测的对应分布。请参考原始论文以了解更多细节 [13]。虽然如果模型 x_θ 完美预测数据 x,两个散度项都最小,但它们并非以相同的方式最小化:KL 项激励匹配整个分布,而 IS 项只关心当前词元上的概率质量。换句话说,IS 项要求模型量化当前词元 z 正确的可能性,即近似 q(x=z | z_t=z)。特别地,它不关心其他词元的质量如何分布,而这由 KL 散度来调节。
关于这些散度的一个有趣事实是,IS 散度是对指数分布进行最大似然估计产生的损失函数,这与我们 CTMC 的保持分布相匹配。而且,KL 散度是对分类分布进行 MLE 的结果,这与跳跃链相匹配。巧合?我认为不是。(感谢 @HessianFree 首次指出这一点。)
稍微粗略地说,我们可以推测,有一种方法可以参数化我们的去噪模型,使其分别输出一个保持分布和一个跳跃链,通过两个独立的预测来解开 IS 损失和 KL 损失组件。[注 4] 除了优雅和美观之外,这将允许对去噪过程进行更具可解释性的建模:反向保持分布直接估计每个词元正确/需要修正的可能性,而反向跳跃链将在发生修正时直接预测最可能的干净词元。除其他外,这无疑会简化均匀扩散模型自适应采样策略的设计和实现。
#均匀扩散的自适应采样
基于置信度的自适应解码一直是掩码扩散模型取得最先进基准分数的主要驱动力之一。其核心思想是,某些非掩码顺序比其他顺序更容易,并且我们可以利用模型的预测(例如通过置信度或熵)来识别易于填充的词元,因此不太可能引入大的错误。这对于掩码扩散模型尤其重要,因为它们一旦采样到错误的词元,就没有办法修正。[注 5]
然而,这种自适应采样范式不能简单地转移到均匀扩散:掩码扩散模型保证更新序列中的每个词元恰好一次(从掩码状态到某个非掩码状态),而在均匀扩散中,我们需要准备好在每一步修正每个词元。我们需要的不是"填充置信度",而是"修正概率"和"修正置信度":当前词元正确的可能性有多大?我们修正它为更正确版本的能力有多自信?我们最近的一篇论文 [1] 中提出的一个相对朴素的启发式方法捕捉了这个想法:对于序列中的任何词元 z,取任何其他词元 z' ≠ z 上的最大置信度减去当前词元 z 上的置信度,即
score(z) = max_{z' ≠ z} p_θ(x=z' | z_t=z) A-3.orG.cN - p_θ(x=z | z_t=z).
然后,我们只取得分最高的前 k 个位置,并将这些词元更新为模型预测的置信度最高的词元,即 z ← argmax_{z' ≠ z} p_θ(x=z' | z_t=z).
虽然这工作得相当合理,但至少有两个明显的问题:
#扩散语言模型更充分利用你的数据
在我看来,已经有相当令人信服的证据表明,扩散模型能够比自回归模型更充分地利用训练数据。这是因为它们能够在过拟合之前,对相同的数据进行更多轮次的训练 [14, 15]。这背后的直觉很简单:每个训练样本都经过了大量随机噪声的增强,因此即使重复多次,我们看到完全相同版本的概率也微乎其微。
这非常重要,特别是对于那些我们非常关心数据质量的场景(例如,小型语言模型、SFT/后训练)。能够在不发生过拟合的情况下多次重复数据,这开启了新的可能性。例如,我们可以更积极地进行质量过滤,并通过更频繁地重复剩余数据来补偿,无论是在预训练还是后训练期间。我们仍然缺少的是缩放定律:多少过滤和多少重复是最理想的?两者之间存在固有的权衡,训练语料库的大小相对于模型容量也起着作用(较小的数据和较大的模型会导致更快过拟合)。
即使在这方面,均匀扩散模型也可能具有优势。由于均匀噪声本质上是一种更强/更丰富的增强,它可能允许在模型开始过拟合之前进行更多的数据重复。遗憾的是,关于这个主题的现有论文只研究了掩码扩散模型,因此这是未来工作的一个令人兴奋的方向。
#结论
扩散 LLM 的历史才刚刚开始书写,虽然这里提出的论点毫无疑问是对未来的乐观展望,但未来是光明的,充满潜力。另一方面,仍有许多更基本的问题需要回答。比如,最优的(去)噪过程是什么?离散扩散模型在预训练期间学习了哪些表示和能力?它们与自回归模型有何不同?扩散语言模型能做什么,更重要的是,不能做什么,是否存在任何根本性的限制?任何此类限制也可能在很大程度上取决于扩散过程,从而更加突出了找到正确噪声类型的重要性。例如,掩码扩散模型无法修正已生成词元的缺陷,只需注入一些均匀噪声或切换到完全的均匀扩散即可解决。另一个相关的限制是词元位置的固定性:虽然在均匀扩散中词元修正很容易实现,但插入新词元或删除现有词元则不能,这在某些情况下仍可能导致无法恢复的错误。除了简单的插入和删除,不难想象更复杂的操作,如词元交换或序列拼接。然而,所有这些操作都使得训练过程,特别是计算上高效的 ELBO 的推导,更具挑战性。就插入而言,最近已经在基于插入的扩散过程方面取得了一些进展 [16, 17],进一步开发这些方法应该是一项富有成果的努力。
最后,需要记住,非凡的主张需要非凡的证据,而本文无疑在很大程度上依赖于前者。然而,希望这里提出的论点和想法能够促使人们开始研究,并最终也揭示出后者。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。