智能AI morning

何恺明首个语言模型:105M参数,不走GPT自回归老路

2026-05-13 1 阅读 henry
< img id="wx_img" src="https://www.qbitai.com/wp-content/uploads/imgs/qbitai-logo-1.png" width="400" height="400"> 何恺明首个语言模型:105M参数,不走GPT自回归老路 henry 2026-05-13 09:23:32 来源: 量子位 顶级CV大佬也来卷LLM? henry 发自 凹非寺 量子位 | 公众号 QbitAI 何恺明,也下场做语言模型了。 只不过,这次他带队做的不是大家熟悉的、像ChatGPT背后那套 “预测下一个词元”(next token prediction) 的自回归范式。 而是另一条过去几年在图像领域大火、如今正被越来越多人搬进文本生成的新路线: 扩散语言模型(Diffusion Language Model,DLM)。 在最新的论文中,何恺明团队放出全新连续扩散语言模型: ELF:Embedded Language Flows 。 与不少还停留在token层面做扩散的语言模型不同,ELF把整个生成过程都留在了连续的embedding空间里, 直到最后一步,才重新离散化,将表示变回token 。 靠着这套设计,ELF只用了105M参数、45B训练token、32步采样,就正面跑赢了一批主流扩散语言模型。 最直观的一项指标是它在OpenWebText上,把 生成困惑度(Generative Perplexity) 直接压到了24。 这里简单科普一下生成困惑度,它本质上是让一个强大的语言模型,给生成结果“检查作业”,看看这些文本到底像不像真实人类写出来的语料—— 值越低,说明生成质量越高、模型出来的东西也就越没AI味儿,越自然。 在和主流扩散语言模型的对比中,ELF在 训练token少近10倍、采样步数更少 的情况下,反而拿到了 更低的生成困惑度。 可以说,在过去很长一段时间里,扩散语言模型的进展,几乎都发生在 离散DLM(Discrete DLM) 这一侧。 而ELF第一次证明了一件事:连续的方法,不但能跑,而且效果不错。 ELF到底做了什么 要理解ELF,先得理解扩散语言模型现在到底在做什么。 扩散语言模型,主要有两种技术路线。一是以MDLM、Duo为代表的 离散派 ,直接在token空间做扩散,每一步处理的是离散随机变量。 二是包括Diffusion-LM、CDCD、DiffuSeq在内的 连续派 ,把token映成连续embedding,在连续空间里去噪。 此前的研究中,像MDLM、LLaDA、Dream 7B这些离散路线占据了上风。原因是很简单, 因为语言本身就是离散的。 对于这一看似常识的理解,恺明团队给出的判断恰恰相反—— 问题可能不是“语言必须离散”,问题可能是: 前人根本没有让连续路线,连续到底。 Diffusion-LM这一类的方法虽然在embedding空间去噪,但每一步都要算一次token-level的交叉熵,把连续轨迹一路绑在词表上。 后来的LD4LG、Cosmos走latent diffusion路线,去噪过程是连续了,但要单独训一个decoder把latent解回token,相当于多一个模块。 基于此,ELF 把所有denoising,全留在continuous embedding space;直到最后一步 t=1,才重新投回token。 具体来说,ELF在训练时,离散token先被编码成连续embedding,再加噪成 z_t,模型要么负责把它还原成干净embedding(MSE),要么直接预测token(CE)。 推理时,模型从高斯噪声 z_0 出发,一路在连续空间里去噪,直到最后一步,才切到decode模式,把embedding重新投回token。 ELF第一次把 “连续表示”和“离散输出” 这两个过去总被认为必须反复对齐的问题,彻底拆开了: 中间的去噪,完全交给连续空间;最终的语言生成,只留到最后一步离散化。 没有每一步都往词表上硬对齐,也不需要额外训练一个decoder,整个生成流程第一次真正做到了: 连续就是连续,离散就是离散。 而这,恰恰也是ELF后面能用更少采样步数、更少训练token,却跑赢一众扩散语言模型的关键。 ELF不是“先扩散,再解码”。 在具体的实现上,ELF还解决了三个问题: token怎么变连续?连续里怎么去噪?最后又怎么变回token? 把token变成连续embedding 要把连续扩散用在语言上,第一步,得先把离散的token变成连续表示。 论文中,ELF先把它切成token序列,再映射到连续embedding空间。这里具体怎么映射,其实有多种选择。 默认情况下,ELF用的是T5预训练encoder,生成 双向的contextual embedding 。论文后面也测试了jointly trained embedding和随机embedding等不同方案。 值得注意的是,这个encoder 只在训练阶段使用 ,推理时并不会额外增加模块。 在连续embedding空间里做Flow Matching 拿到连续表示之后,ELF就在embedding空间里做Flow Matching。 简单说,Flow Matching定义了一条从噪声到真实数据的连续流动轨迹: t=0时,是高斯噪声; t=1时,是干净的embedding; 中间所有状态,都是两者的线性插值,也就是论文里的rectified flow。 在传统Flow Matching,网络通常直接预测“速度场” v。 但ELF没有这么做,而是沿用了恺明团队半年前在《Back to Basics: Let Denoising Generative Models Denoise》里提出的思路—— 直接预测干净embedding x,也就是x-prediction 。 训练目标,就是最小化预测embedding和真实embedding之间的均方误差(MSE)。 至于为什么采用x-prediction,论文给了两个原因: 第一,它在高维表示上更稳定——比如768维甚至更高的token embedding;第二,它天然和最后一步“预测干净token”的目标对齐。 论文还特别提到:虽然理论上也可以先预测速度v,再换算成x,但这样一来,后面denoising和decoding之间的权重共享就很难成立。 实验上,他们也发现:一旦共享权重,v-prediction效果明显变差。 从连续embedding,再回到离散token 生成语言,最终输出还是离散token。 所以ELF只在 最后一个时间步(t = 1) ,还得把连续embedding重新投回token空间。 不过,这一步ELF没有像很多latent diffusion方法那样,额外训练一个decoder。相反,它把最后一步直接视作: 一次continuous-to-discrete decoding。 换句话说:decoder和前面的denoiser,其实是同一个网络。 为了让最后一步训练不至于太简单(因为理论上t→1时,输入已经非常接近干净embedding),ELF在最后一步额外加入了一次token