Diffusion LLM 会不会是未来?
生成模型有很多分类,现在LLM大部分是autoregressive类的生成模型,但个人感觉diffusion类才是生成模型的未来。
一个简单的思考是,LLM现在生成的答案,一个token一个token地出来,生成出来后无法返回修改。 diffusion的话,对整个答案的token都进行修改。准确预测下一个词太难了,人类对答案都是多番修改的。
对应的例子是,最近的 diffusion world model[1]的论文,从autoregressive transformer切换为 diffusion transformer,主要原因还是上面这个,diffusion可以一并修改多个timestep的内容,而不是逐个timestep采样,结果也是diffusion的效果更好。
从概率模型角度出发,我们最终需要的是 联合分布p(x_0, x_1, ..., x_{t-1}, x_t) ,而不是 条件分布 p(x_t| x_0, x_1, ..., x_{t-1}) ,这个条件分布只是为了简化问题而转换出来的。多了这一步转换,从The bitter leason[2]来看,就是加入了人工先验,应该去除。所以,diffusion LLM的scaling law应该会比 autoregressive 版本强,语言模型从p(x_t| x_0, x_1, ..., x_{t-1})采样太拉啦,diffusion直接从 p(x_0, x_1, ..., x_{t-1}, x_t)采样才是未来。此外,transformer只是一种scaling比较强的网络结构,不管autoregressive还是diffusion的生成类模型都可以使用,并不局限于只能autoregressive。
其实,还有很多例子来佐证。DALLE 1 [3]是 autoregressive的,效果一般。 DALLE 2换成了diffusion,还额外对比了autoregressive的效果,diffusion计算效率更高且效果更好[4]。然后,最近的图像和视频领域中效果炸裂的模型主要是基于 diffusion的,譬如SDv3[5]和Sora[6]。
所以,有没可能下一代LLM就是diffusion类的?
参考
- ^Diffusion World Model https://arxiv.org/abs/2402.03570
- ^The Bitter Lesson http://www.incompleteideas.net/IncIdeas/BitterLesson.html
- ^Zero-Shot Text-to-Image Generation https://arxiv.org/abs/2102.12092
- ^DALLE 2 https://cdn.openai.com/papers/dall-e-2.pdf
- ^Stable Diffusion 3: Research Paper https://stabilityai-public-packages.s3.us-west-2.amazonaws.com/Stable+Diffusion+3+Paper.pdf
- ^OpenAI Sora https://openai.com/sora
握爪,我去年也思考了同样的问题。我关注这个思路最早是因为这篇论文:
“CodeFusion: A Pre-trained Diffusion Model for Code Generation”(https://aclanthology.org/2023.emnlp-main.716.pdf)。
我当时的想法也是认为用diffusion作为解码器可能更合理。
但后来我也否定了这个思路。主要来自两个insight。
next token prediction的范式是可以做推理的回溯和修改的,现在的各类复杂Agent系统本质上就是做这件事,例如LATS(Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models)。相当于在现有的LLM之上再搭建一套系统2。diffusion没有“循环”的功能,next token prediction本质上是在结构上赋予了神经网络“循环”(类似于for语句),例如经典的RNN也是带有“循环”功能。理论上,LLM是自主的决定“循环”的开始和结束(<endoftext>这个token),因此next token prediction的潜力是真的很大。所以,我很理解为什么当时OpenAI优先尝试了有next token prediction去做图像生成。但为什么next token prediction做图像生成的效果不好,可能还是因为图像和自然语言数据在“语义”粒度上有太大的差距,抽象的程度不一样。
我们之前在diffusion llm 上面做了一点小小的探索:之前在这上面做了一点小小的探索https://www.zhihu.com/question/588325646/answer/3403400838
然而实际上语言模型并不是简化成了条件分布,而是通过链式法则推导的。最终和联合分布应该是等价的,也就是:p(x_0, x_1, ..., x_t)=P(x_0)P(x_1|x_0)...P(x_t|x_0,...x_{t-1})。每次更新梯度也是把每个位置的分布都考虑了
Diffusion Language Models Can Perform Many Tasks with Scaling and Instruction-Finetuning.
认同,扩散模型机制本身就有点人类反思推敲的样子了
这个观点很有insight啊,看看有没有一个可以train得起来的体系
diffusion问题其实也是缺乏局部相关性,现在SD的手和脚都是这个问题,相比现在decoder的方式如果做llm更容易出现幻觉
其实只是预测reasonable的下一个单词并没有那么难,比较shallow的model就可以处理的很好(忘了reference了),自回归更重要的是有利于压缩知识到大量参数里,从这一点上看加上diffusion貌似不会起决定性作用