![]()
这项由首尔大学数据科学研究生院与生物系统及生物材料科学工程系联合开展的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.14368,有兴趣深入了解的读者可以通过该编号查询完整论文。
**序章:两种生成世界的方式**
人工智能领域里有两种截然不同的"创作者"。一种叫做自回归语言模型,就是ChatGPT那一类——它们像一个逐字逐句打稿子的作家,每次只写一个字,然后根据已经写下的内容推断下一个字该是什么,就这样一个字一个字地把文章写完。另一种叫做扩散模型,它们更像一个在黑板上画画的艺术家——先在黑板上涂满随机的噪点雪花,然后一遍一遍地擦拭和整理,让图案从混沌中逐渐清晰浮现出来。后者在图片生成领域已经大放异彩,Stable Diffusion、DALL-E这些名字都是它们的代表作。
然而,当研究者们试图让扩散模型也来写文章时,却碰了壁。效果一直比不上那些逐字输出的语言模型。为什么呢?大多数人的第一反应是:文字是离散的(每个词要么是"猫"要么是"狗",不存在"半只猫半只狗"这样的中间状态),而扩散模型擅长处理连续变化的东西,比如像素颜色的渐变。这种本质上的不兼容,被认为是扩散模型在语言领域表现欠佳的根本原因。
但首尔大学的研究团队对这个解释产生了质疑。他们想:等等,Transformer语言模型内部也到处是连续的数值计算啊——输入的文字确实是离散的,输出的词表概率也是,但模型内部那几十层神经网络处理的都是连续的数值向量。那为什么不能在模型内部、在这些连续计算的某个中间环节植入扩散模型呢?或许问题不是"连续 vs 离散",而是"扩散模型被放在了一个不合适的地方"。
这个想法催生了他们的研究成果:**DiHAL**(Diffusion-Transformer Hybrid Architecture for Language Generation,扩散-Transformer混合语言生成架构)。这套方法的核心思路可以用一句话概括:**找到语言模型内部最适合扩散的那一层,然后把扩散模型"插"进去。**
**一、为什么之前的扩散语言模型总是差那么一口气?**
要理解这项研究解决了什么问题,得先搞清楚之前的尝试是怎么做的,又卡在了哪里。
在此之前,研究者们主要尝试了几条路线。最直接的一条是让扩散模型在"词嵌入"(word embedding)空间里工作——所谓词嵌入,就是把每个词转换成一个数值向量,比如"猫"变成[0.2, 0.8, 0.5, ...]这样一串数字。扩散模型在这个空间里添加噪声、然后去噪,最后把得到的向量再换回词语。这条路的问题在于:嵌入空间的几何结构非常复杂,"猫"和"狗"在空间中的位置可能非常接近,稍微一点点去噪误差就可能让"猫"变成"狗",或者变成一个根本不存在的词。
另一条路是用额外的编码器把文本压缩成一个"潜变量"(latent variable),在这个压缩后的空间里做扩散,然后再解码回文本。LD4LG这类方法走的是这条路,效果稍好,但仍然需要一个单独训练的编解码器,整个系统变得更复杂,而且压缩和解压缩的过程本身也会损失信息。还有一些方法直接对词序列做离散扩散,或者做掩码扩散,但这些方法各有局限。
首尔大学团队提出的新视角是:上面这些方法有一个共同的盲点——它们都在模型"外面"做扩散,不管是在输入端的词嵌入层,还是在一个单独的潜变量空间里。**但一个成熟的Transformer语言模型内部,已经存在很多层连续的中间表示(hidden states),这些中间层的数值向量经过了大量预训练的"调教",结构比原始词嵌入复杂得多,语义信息也更丰富。如果能在某个合适的中间层上做扩散,然后让上面剩余的那些层继续把中间表示转换成词语,岂不是两全其美?**
这个思路有一个关键优势:扩散模型的目标从"猜词"变成了"重建中间层的数值向量"。只要这个向量被重建得足够准确,上面的Transformer层就能顺利把它变成正确的词,而不需要扩散模型直接面对连续到离散转换这个最棘手的步骤。就像一家装配工厂:之前是让临时工(扩散模型)从零开始生产零件并直接装配成产品,现在改成了临时工负责生产到某个中间步骤的半成品,然后交给经验丰富的老工人(预训练的上层Transformer)完成最后的精加工和组装。
**二、什么样的中间层才算"适合扩散"?**
想法是好的,但一个有三四十层的大模型,到底应该选哪一层来"插入"扩散模块呢?这不是靠直觉能决定的事情。首尔大学的团队决定用数学工具来回答这个问题。
他们引入了一个核心概念:**"扩散友好性"(diffusion-friendly)**。所谓扩散友好,就是指某个数值空间适合扩散模型工作——在这里,去噪过程能快速收敛到正确答案,而且即便去噪过程中有一点误差,最终结果也不会差太多。
为了让这个感性描述变得可以量化,研究团队借用了一个叫做"过阻尼朗之万动力学"(overdamped Langevin dynamics)的物理概念。这听起来很高深,但本质上是在描述一个粒子在势能场中的运动:如果势能场像一个深陷的碗(曲率大),粒子会迅速滚向碗底并稳定下来;如果势能场像一个很浅的盆地(曲率小),粒子需要很久才能稳定,而且很容易被轻微扰动推离中心。扩散模型的去噪过程在数学上和这个粒子运动非常相似——"曲率"越大的空间,去噪越快,也越稳健。
研究团队通过两个定理建立了这套理论。第一个定理说:如果数据分布的"势能场"有足够大的曲率参数m,那么扩散过程收敛到目标分布的速度是e^(-mt),m越大收敛越快。第二个定理说:如果神经网络估计的"分数函数"(score function,就是扩散模型用来判断去噪方向的关键信号)有误差,那么这个误差对最终结果的影响被限制在误差除以m——所以m越大,系统对估计误差的容忍度越高。
这两个定理共同指向了一个结论:**数值空间的"曲率"越大,扩散模型在那里工作就越顺畅**。除此之外,团队还引入了第三个维度:**有效秩**(effective rank)。有效秩衡量的是数据在空间中实际占用了多少个方向——如果数据虽然存在于一个4096维的空间里,但实际上只沿着5个主要方向分布,那有效秩就约为5。有效秩越低,扩散模型需要学习的复杂度越低,工作就越容易。
把这三点合在一起,一个"扩散友好"的层应该具备:局部曲率大(邻近点之间紧凑集中)、全局方向刚性大(整体分布结构稳定)、有效秩低(实际变化方向少)。
当然,这些理论推导都是基于理想化的数学假设(比如强对数凹性),在真实的Transformer隐藏层里不可能完全满足。研究团队明确指出,这些理论不是对Transformer激活值的精确描述,而是为了给"扩散友好性"这个概念提供一个合理的数学动机,并从中提炼出可以实际测量的代理指标。
**三、如何用三把"尺子"量出最佳插入点?**
理论有了,接下来要把它变成可操作的工具。研究团队设计了三个可以从数据中直接计算的代理指标,分别对应上面三个维度。
第一把尺子叫做**局部曲率代理(m_curv)**。对于某一层的每个数据点,找出它在空间中的k个最近邻居,计算这一小片邻域的协方差矩阵,取最大特征值的倒数作为这个点的局部曲率分数——邻域越紧凑,最大特征值越小,倒数越大,曲率分数越高。把所有点的分数取中位数,就得到这一层的局部曲率代理值。
第二把尺子叫做**单调性代理(m_mono)**。用整层数据的协方差矩阵的逆矩阵(精度矩阵,P)来计算全局方向刚性。对于随机抽取的点对(x_i, x_j),计算一个比值:分子是连接两点的向量经过精度矩阵"拉伸"后的长度,分母是原始向量长度。这个比值越大,说明精度矩阵对这个方向的"阻力"越大,全局几何结构越稳定。取所有点对的中位数,得到这层的单调性代理值。
第三把尺子叫做**有效秩(k)**,计算方式是:用所有特征值的总和(等于协方差矩阵的迹)除以最大特征值。如果数据在各个方向上的方差很均匀,有效秩就接近实际维度;如果数据主要集中在少数几个方向上,有效秩就会远小于实际维度。
把这三个指标组合成一个选层得分:得分等于局部曲率代理的标准化值加上单调性代理的标准化值,再减去有效秩的标准化值(因为有效秩越低越好,所以要减去)。得分最高的那一层,就是最适合插入扩散模块的候选层,记作l*。
这套评分系统的好处是:它不需要实际训练扩散模块,只需要把预训练模型跑一遍,收集各层的激活值,然后做一些统计计算,就能给每一层打分。整个过程计算量很低,对比之下,如果要用传统方法(暴力枚举每层都训练一遍)来找最佳插入层,计算量会高出几十倍。
**四、找到好位置之后,扩散模块是怎么工作的?**
选定了插入层l*之后,接下来要做的是"替换":把原模型从输入到l*层的那些下层Transformer层,替换成一个扩散模块,同时完整保留l*层之后的所有上层Transformer和最终的词表输出头(LM head)。
这个扩散模块被称为"扩散桥"(diffusion bridge)。它的工作方式如下:给定一段输入文本,先用原模型的词嵌入层提取出嵌入向量c(x)(这个向量作为条件信号,告诉扩散桥要生成什么内容),然后扩散桥从随机噪声出发,经过多步去噪,生成一个对l*层隐藏状态的重建向量h_l*。这个重建向量随后被传入原模型保留下来的上层网络,一路传递到最后的LM head,输出词语概率。
扩散桥的具体架构借用了Stable Diffusion(稳定扩散)的UNet结构,但做了彻底的改造:目标从生成图片变成了重建语言模型内部的隐藏向量。为了让隐藏向量能够"喂给"图像处理架构,研究团队把序列维度重新排列成一个32×32的空间网格(类似于32×32像素的图片),然后用学习的投影层把隐藏维度映射到图像通道维度。去噪完成后,再用另一个投影层把输出映射回原始隐藏状态的形状。团队特别说明,这种2D排列只是一个工程接口,并不意味着语言模型的内部表示真的有什么二维空间含义。
训练扩散桥的目标函数包含四个部分:扩散去噪损失(标准的噪声预测误差)、重建损失(重建向量和真实l*层向量之间的L2距离)、语言建模损失(用重建向量生成下一个词的交叉熵),以及知识蒸馏损失(让扩散桥的输出词表概率分布接近原始教师模型的分布)。这四个损失共同确保扩散桥既能准确重建中间层,又能保持良好的语言生成能力。
推理时,用户给出一段前缀文本,扩散桥以这段文本的嵌入为条件进行去噪,生成l*层的隐藏状态估计,然后交给上层网络预测下一个词。为了保持语言模型的因果性(每次只能看到左边的词,不能"偷看"未来),条件信号只使用当前位置及之前的词,未来位置被遮蔽掉,和普通自回归模型一样。
**五、实验结果:几何得分真的能预测扩散效果吗?**
研究团队在两个8B规模的大型语言模型上验证了他们的方法:Meta开发的Llama-3.1-8B-Instruct(32个Transformer层)和阿里巴巴开发的Qwen3-8B(36个Transformer层)。数据来自Dolma v1.7开放语料库,共处理了30万条文本序列,保存了每层的隐藏状态用于后续分析。
**几何代理值随层深度如何变化?**
首先,研究团队对每一层计算了三个代理指标,结果展示出非常清晰的规律。靠近输入端的前几层(第0、1、2、3层),局部曲率代理值非常高,在Llama上可以达到700-900量级,而越往深层走,这个值急剧下降,到第27层已经跌落到个位数。有效秩的变化规律则相反,前几层非常低(约1.3-1.5),深层逐渐升高。单调性代理的变化规律介于两者之间。
这种系统性的变化说明:Transformer各层对数据的处理方式确实截然不同——浅层保留了更多接近词嵌入的几何结构(紧凑、低维),深层的表示变得越来越专门化和复杂,几何结构对扩散来说越来越"不友好"。
把三个代理值综合成选层得分后,在Llama-3.1-8B上,得分最高的是第3层;在Qwen3-8B上,得分最高的是第2层。两个模型都指向了非常靠近输入端的浅层。
**几何得分能预测桥接难度吗?**
这是最关键的验证。研究团队对Llama-3.1-8B的每一层(共32层)和Qwen3-8B的每一层(共36层)各自训练了一个扩散桥,每个桥只训练一个轮次(epoch),在15万条样本上训练,然后测量在验证集上的重建损失——损失越低,说明这一层的隐藏状态越容易被扩散桥重建(即"桥接性"越好)。
结果令人信服:选层得分高的层,验证损失确实更低;选层得分低的层(尤其是深层),验证损失急剧升高。具体到数字:在Llama上,得分最高的第3层验证损失为0.331,中间的第17层为0.397,深层第27层高达0.656。在Qwen上差异更加戏剧性:得分最高的第2层验证损失仅为0.060,而深层第30层高达276.584,相差超过4000倍。
通过对30次重复实验(每次用500个样本重新估算几何代理值)的统计,在Llama上,选层得分与验证损失的Spearman秩相关系数为0.914(标准差±0.007),在Qwen上为0.927(标准差±0.016)。这意味着几何得分对桥接性的预测非常稳定可靠,不依赖于特定的随机样本。Pearson相关和Kendall相关同样都在0.8以上。
在所有比较方案中,只用曲率代理选层会选到第1层(Llama)或第1层(Qwen),只用维度代理选层会选到第2层(Llama)或第6层(Qwen,验证损失高达139,非常差)。相比之下,综合得分的表现更加稳健:选择的层虽然不一定是验证损失绝对最低的层(在两个模型上分别比最优层差了2名和1名),但远远优于中层和深层基线,而且不需要实际训练任何扩散桥就能得出这个结论。
**与其他连续扩散方法的对比**
研究团队还在统一的计算预算下对比了几种主流连续扩散方法,均使用Qwen3-8B作为基础模型,30万训练样本,40个H100 GPU小时的扩散/恢复训练预算。对比对象包括Diffusion-LM(在词嵌入上做扩散)、SED(自条件嵌入扩散)、LD4LG(学习文本潜变量扩散,使用冻结的BART模型)和CoDAR(连续到离散恢复)。
评测指标有两个:Gen.PPL(生成困惑度,用GPT-2评估生成文本的流畅性,越低越好)和多样性(Distinct-1到Distinct-4的乘积,反映生成文本不重复的程度,越高越好)。
DiHAL在两个指标上均表现最好,生成困惑度为136.02,多样性为0.5913。相比之下,Diffusion-LM的生成困惑度高达683.43,SED为778.82,LD4LG为166.11,CoDAR为144.83。从多样性来看,DiHAL的0.5913也明显高于CoDAR的0.4777和Diffusion-LM的0.4324。
研究团队特别强调,这是一个"诊断性对比"而非完全公平的对比,因为DiHAL复用了预训练的Transformer上层和LM head,而其他基线方法使用的是更小的独立恢复模块。但这正是DiHAL设计理念的体现:充分利用预训练模型已有的能力,而不是从头训练一切。
**完整训练后的最终表现**
研究团队还对得分最高的层进行了完整训练(4个轮次,30万样本),并在WikiText-103和Dolma验证集上评测了最终的语言建模质量(负对数似然NLL、困惑度PPL和与教师模型的KL散度)。
在Llama-3.1-8B上,几何选层(第3层)的NLL为4.91,PPL为135.64,而用验证损失最低层(第1层)作为"oracle"的结果是NLL 5.11,PPL 165.67。几何选层反而比验证损失oracle更好,说明一次轮次的桥接损失并不完全等同于完整训练后的语言建模质量。在Qwen3-8B上,几何选层(第2层)的PPL为144.03,稍高于oracle(第1层)的139.77,但差距很小(不到4%)。相比之下,最差层(Llama第31层,Qwen第35层)的PPL分别高达175.91和186.79,明显更差,说明插入点的选择确实重要。CoDAR在Qwen上的PPL为177.87,被DiHAL以明显优势超越。
**六、这套系统的代价与局限**
有一点需要坦诚说明:DiHAL并不是一个让语言生成变快的方案。
从延迟测试数据来看,在Llama-3.1-8B上,原始模型每个词元的延迟约为0.043秒,而DiHAL(第3层插入,1步去噪)的延迟为0.074秒,增加了约72%。如果使用4步去噪,延迟增加到0.150秒,相当于原来的3.5倍。20步去噪则是0.503秒,约为11.7倍。扩散桥的去噪计算是主要的额外开销来源,即便只插入一步去噪,开销也相当可观。
尽管把扩散桥插在更深的层可以减少保留的Transformer层数,从而降低延迟(比如插在第30层时1步去噪延迟只有0.035秒),但深层插入的桥接质量差,得不偿失。显存方面,所有DiHAL配置都比原始模型多使用约1.8GB显存(从16.2GB增加到18.0GB)。
研究团队明确表示:DiHAL目前还不是一个完整的独立扩散语言模型,它仍然依赖保留的预训练Transformer层来完成最终的词语生成。这是一个研究性探索,目标是理解扩散模型可以在哪里、以什么方式进入预训练语言模型,而不是立即替换现有的语言模型产品。
此外,受限于计算资源,研究团队没有探索更大规模的扩散桥、更长时间的训练,或者替换更深层次的Transformer前缀。未来的工作可能可以把几何代理直接融入桥接训练过程,让深层的隐藏状态也变得更容易桥接,从而实现更大比例的前缀替换。
**七、DiHAL的意义:找到了正确的门**
归根结底,这项研究的贡献不是"扩散模型写文章比自回归模型更好了"——至少目前还没到那一步。它的意义在于回答了一个之前没有人系统研究过的问题:**如果你想在一个预训练的语言模型里植入扩散模块,你应该把它放在哪里,以及如何用几何工具来找到这个地方。**
过去的研究把扩散模型放在词嵌入层或者独立的潜变量空间里,这些地方的几何结构并不适合扩散。首尔大学团队的研究发现,靠近输入端但已经经过了第一轮Transformer处理的浅层隐藏状态,具备更好的几何性质——局部紧凑、全局稳定、有效维度低——从而让扩散模型能够更顺畅地工作。而且,这个"好位置"可以通过三个简单的统计量来预测,不需要反复训练来试错。
这个发现改变了理解连续扩散语言模型失败原因的框架。之前大家以为问题主要在于"连续向量很难还原成离散词语",而这项研究提出了另一个同样重要的诊断:**扩散模型被放在了几何结构不友好的空间里**。把这两个诊断结合起来,也许就是未来设计更好的扩散语言模型的关键线索。
对于未来的研究来说,这套思路有几个有意思的延伸方向:能否在训练时主动塑造某一层的几何性质,让它更"扩散友好"?能否把扩散桥同时插入多层,形成更精细的混合架构?能否把这套几何分析框架用到其他类型的生成模型上?这些问题都有待探索。
Q&A
Q1:DiHAL是什么架构,和普通的扩散语言模型有什么本质区别?
A:DiHAL是一个扩散-Transformer混合架构,它不像普通扩散语言模型那样在词嵌入或潜变量空间做扩散,而是把扩散模块插入到一个预训练Transformer模型的内部某一层,让扩散模块的目标从"直接生成词语"变成"重建该层的隐藏状态",然后由保留的上层Transformer和原始输出头完成最终的词语生成。
Q2:几何代理指标选层方法与暴力枚举相比效果和成本有什么差异?
A:几何代理选层只需要对预训练模型跑一遍数据并做统计计算,不需要实际训练任何扩散桥,成本极低。实验中,两个8B模型上的Spearman相关系数均在0.91以上,选出的层与验证损失最优层的排名差距只有1-2名,但避免了对每一层都训练扩散桥的巨大计算开销。
Q3:DiHAL插入的扩散模块会让推理速度变慢多少?
A:会明显变慢。以Llama-3.1-8B为例,原始模型每词元延迟约0.043秒,DiHAL在浅层插入1步去噪后延迟增至0.074秒,4步去噪为0.150秒,20步为0.503秒。扩散桥的去噪计算是主要开销来源,当前版本不适合作为推理加速方案使用。





京公网安备 11011402013531号