语言模型中的扩散先验应生成预测状态而非词元级潜变量吗?

预测状态流把扩散语言建模拆成两步:流先验生成块级预测状态,解码器再确定具体词元。

直接答案

按这篇论文的观点,答案是肯定的:在连续扩散语言模型中,先验应生成高层的预测信息,把词元级选择留给解码器。预测状态流在每篇 1024 词元文档上用 K=8 个状态做到这一点,在熵 5.16 时生成困惑度为 22.8,消耗 0.31 TFLOPs;32 步 ELF-B 则为 24.0 和 7.2 TFLOPs。

1篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

先验与解码器应分工

论文追问的是:连续扩散先验应当负责生成哪些信息,哪些决定应留给解码器。在许多现有的连续扩散语言模型中,先验产生的潜变量几乎确定性地映射为词元,映射方式要么经由解码器,要么经由词元嵌入矩阵。这种安排把几乎全部生成工作压在先验上:先验必须在连续空间中指定细粒度的离散词元选择,而解码器基本只是还原已经编码在这些状态里的选择。

作者认为这种分工并不合适。在图像生成中,感知压缩可以丢弃视觉上可忽略的细节,并把剩余变化连续地表示出来。相比之下,基于重建的文本潜变量倾向于保留细粒度的离散差异,而正是这些差异区分了一个合理续写与另一个合理续写。于是先验必须在连续空间中联合建模这些差异及其依赖关系,论文称这会让联合潜变量分布难以学习。

因此论文提出的分工是:扩散先验生成指导后续内容的预测信息,解码器解决剩余的局部词元选择。论文其余部分检验这种拆分是否真的有效。

预测状态只看前文上下文

预测状态流(PSF)把长度为 L 的序列划分为 K 个连续块。每个块 k 对应一个连续状态 s_k,该状态只由这个块之前的词元计算得到,因此它概括的是前文上下文,并不观察它将要帮助生成的块。这正是它与内容潜变量的关键区别:内容潜变量编码当前块本身,因而同时携带预测信息和块内的具体词元选择。

一次块因果编码器前向传播产生池化状态,把这些状态整体后移一个块,就得到状态序列,其中第一个状态设为序列起始状态。由于每个状态都由前缀构建,先验从不需要对它前面那个块的确切词元作出承诺。

论文还训练了一条可选的实现码通道:第二个编码器头为每个块定义一个 64 维码的后验,并以每个词元一 nat 的预算把它正则化到标准正态分布。这些码为解码器提供额外的局部信息,论文随后测试了去掉它们会发生什么。

整流流先验生成 K 个状态而非 L 个词元

整流流先验联合生成预测状态轨迹。它作用在由 K 个状态组成的短序列上,状态之间使用全自注意力,在固定数量的采样步内把高斯噪声变换为完整的状态轨迹;主配置使用概率流 ODE 的 50 步欧拉法。先验以 x 预测的速度损失训练,时间分布采用 logit-normal。

压缩正是要点。扩散从 L 个词元级状态缩减为 K 个预测状态,K 远小于 L,词元级串行深度降到 L/K。对于一篇 1024 词元、K=8 的文档,先验处理的是 8 个状态,而不是 1024 个位置。

随后块因果解码器并行生成全部 K 个块,只在每个块内部自回归。每个分支读取截至自身块的累积状态记忆,并同步推进 L/K 步。论文报告的串行深度为 50 + L/K,而标准自回归生成为 L 步,其中 50 计的是先验的采样步数。

单字元落点目标连接并行块

如果每个块都只依据共享计划独立生成,块与块之间就没有联系。PSF 加入一种轻量耦合:在第一个解码步之后,每个分支都以紧随其后的那个块的第一个词元为条件,这个词元称为落点目标。第一个解码步产生这些落点目标,从第二步起,每个分支就带着下一个块实际如何开头的信息继续生成。

训练必须与这种推理行为匹配。论文使用自实现前缀:以概率 0.5 把每个块的状态替换为由模型自身在温度 0.65、核采样 0.95 下滚动生成的状态,从而让解码器学会处理来自生成过程而非干净文本的状态。

作者明确指出这种耦合很薄。各块依据共享计划并行解码,只通过单字元落点目标相连,因此许多块在更长文档中能否在主题、实体和语篇上保持一致尚未得到检验。他们指出,主题持续性已经是其样本最薄弱的方面,并把更强的耦合列为下一步工作。

更少 FLOPs 下生成困惑度更低

核心比较是在 OpenWebText 上的无条件生成。一个 197M 参数的 PSF 模型在 K=8 时,在熵 5.16 下达到生成困惑度 22.8,每篇 1024 词元文档消耗 0.31 TFLOPs。32 步采样的 ELF-B 达到 24.0,消耗 7.2 TFLOPs。这里的生成困惑度是评判模型下语料级平均词元负对数似然的指数,熵是评判模型词元的单字元熵按文档平均,因此两个数字必须一起读:比较是在匹配熵下进行的,而不是在任意采样设置下。

在这些实测工作点上,PSF 的 MAUVE@512 为 0.93,ELF-B 为 0.73。MAUVE 衡量的是在 512 词元窗口上与参考文本的分布接近程度,这与困惑度回答的是不同问题,论文同时报告两者,而不是用一个替代另一个。

讨论部分指出,对于一篇 1024 词元文档只用 K=8 个预测状态,PSF 使用的 FLOPs 比 32 步 ELF-B 少 23 倍,同时生成困惑度更低、MAUVE 更高、批量吞吐更高。论文也指出,FLOPs 的节省只有在较大批量下才转化为吞吐优势,因此效率结论以批量大小为条件。

预测状态优于编码自身块的状态

对论文论点最直接的检验,是预测状态与内容状态之间的受控比较。内容状态额外编码自身所在的块,因而携带了本应由解码器解决的词元选择。在这些受控比较中,内容状态的生成困惑度比预测状态高 8% 到 16%。

第二项对照去掉了状态轨迹的采样:用共享均值替代采样得到的预测状态轨迹,会使 MAUVE@512 下降 0.11。这分离出了生成多样轨迹而非单一平均计划的价值,而且它是在 MAUVE 而非困惑度上测量的。

论文还报告,增大块长度会改善 PSF,尽管它会让块扩散变差。这些比较共同支持作者的解读:重要的不仅是文本被表示得多紧凑,还包括先验与解码器之间如何划分生成角色。

去掉实现码以连贯性换困惑度

对于 K=8,论文训练了一个只生成预测状态的纯状态先验,使用零码目标,同时保留经码训练过的块解码器并把它的码输入固定为零。当先验只生成预测状态时,核采样把匹配熵下的困惑度降到比 ELF-B 低约 20%。

这一收益并非没有代价。论文指出,纯状态配置以主题持续性、多样性和评判连贯性为代价换取更低的困惑度。因此,比较不同配置的读者不能把困惑度改善当作一致的胜利;它取决于正在优化的是哪种输出属性。

训练配方本身是多阶段的,基础模型、落点目标、自实现前缀、实现码以及每个块长度各有独立阶段,每个先验都从上一个块长度的先验热启动。作者承认实现码的收益只被部分理解,更简单的配方仍属未来工作。

证据只覆盖小模型与无条件文本

所有实验最多使用 677M 生成参数、固定的 1024 词元画布和无条件 OpenWebText 生成。更大的模型和更长的序列尚未探索,因此不应假定所报告的 FLOPs 与质量比较在其他规模或序列长度下依然成立。

提示续写无需重新训练即可工作,但对提示的利用较弱,作者称这需要提示条件化的先验。自回归模型仍然领先,尽管与同数据基线的差距在测试的最大规模下有所缩小。生成困惑度也捕捉不到长程连贯性,论文把它列为仍有待测量的内容。

在这些边界之内,论文最具决策相关性的主张是一个比较,而不是通用配方:在 1024 词元无条件 OpenWebText 上、匹配熵时,K=8 的预测状态以一小部分 FLOPs 取得了比 32 步 ELF-B 更低的生成困惑度和更高的 MAUVE@512,并且预测状态在生成困惑度上比内容状态好 8% 到 16%。证据支持的优先事项是围绕先验容易生成、解码器能够解决的信息来设计潜变量,而不是围绕潜变量多完整地重建文本。

按角色分工设计潜变量而非按重建

论文的收尾论点是:有用的潜变量不必保留输出的每个细节。它可以表示连续先验容易生成、且足以让解码器转化为连贯文本的信息。预测状态是这一原则的一种实现,而受控比较才使这一论点超出设计偏好。

对于正在权衡连续扩散语言模型的读者,证据支持的实用划分是这样的:如果目标是在短的无条件文档上以匹配熵进行廉价的并行生成,那么用流先验生成 K 个预测状态、让块因果解码器解决词元,就是论文测得表现有利的配置。如果目标是主题持续性、多样性或评判连贯性,那么纯状态变体的权衡以及块之间薄弱的单字元耦合,就是应首先检查的条件。

本文引用的文献

1

重新审视扩散与解码的角色:面向并行语言生成的预测状态流

一个 197M 参数、K=8 的预测状态流模型在无条件 OpenWebText 上,在熵 5.16 时达到生成困惑度 22.8,每篇 1024 词元文档消耗 0.31 TFLOPs;32 步 ELF-B 则为 24.0 和 7.2 TFLOPs,MAUVE@512 分别为 0.93 和 0.73。