LLaDA:一種可能重新定義語言生成的擴(kuò)散模型
Dall-E生成的这幅图
瑞典介绍改正后:
瑞典介绍最终版本:
介绍如果我们能让语言模型更像人一样思考?而是先勾勒出它们的想法,然后逐步完善,而不是一次写出一个词。
这正是大型语言扩散模型(LLaDA)想要告诉我们的:一种与当前大型语言模型(LLMs)中使用的文本生成方法不同的新方法。与传统的自回归模型(ARMs)从左到右顺序预测文本不同,LLaDA采用类似扩散的过程来生成文本。它不是顺序生成标记,而是逐步完善遮住的部分文本,直到生成一段连贯的回答。
本文将深入了解 LLaDA 的工作原理,它的重要性以及它将如何影响下一代 LLM。
我希望你能喜欢这篇文章。
当前的大语言模型状态要理解大型语言模型(LLMs)的运作方式,我们首先需要了解当前大型语言模型(LLMs)的运作方式。具体来说,现代大型语言模型(LLMs)遵循已成为行业标准的两阶段训练过程。
- 预训练:通过在大规模文本数据集上进行自我监督学习来预测下一个词,模型学习到了通用的语言模式和知识。
- 监督微调(SFT):模型在精心挑选的数据上进行微调,以更好地遵循指令并生成有用的输出。
注意,当前的大型语言模型通常会使用强化学习(即人类反馈的强化学习)来进一步调整模型的权重,但 LLaDA 并没有使用这种方法,所以我们可以跳过这一步。
这些模型主要采用Transformer架构,通过预测下一个词元,一次生成一个token。
简化版的Transformer架构用于文本生成。(图片由作者提供)
这里是一个关于数据如何在模型中流转的简化说明。每个标记都被转换成向量,并依次通过多个变压器层。在当前的大型语言模型(比如LLaMA、ChatGPT、DeepSeek等)中,仅在最后一个标记的嵌入中使用分类头来预测序列中的下一个词。
这要归功于一种叫做掩码自注意力的技术:每个标记都会关注其前面的所有标记。我们后面会看到LLaDA是如何在注意力层中去掉这个掩码的。
注意过程:输入嵌入通过与Query、Key和Value矩阵相乘得到新的嵌入(图片由作者提供,灵感来自[3])
如果你想了解更多关于Transformers的内容,可以查看我下面链接的文章。
Transformer:它们是如何处理您的数据的?揭开Transformer架构的神秘面纱及其在语言任务中的无敌表现中尽管这种方法取得了令人印象深刻的结果,但它也存在一些明显的局限性,这些局限性促使开发了 LLA DA。
当前大型语言模型存在的限制现在的大型语言模型遇到了几个主要挑战:
计算效率低下想象一下,你要写一本小说,每次只能想到一个词,并且每次写完一个词后,你需要重新阅读你之前写的所有内容。这基本上就是目前大型语言模型的工作方式——它们一次预测一个词元,每次生成新词元都需要处理之前的整个序列。即使采用了KV缓存等优化方法,这个过程仍然非常耗时且计算密集。
有限双向推理传统的自回归模型(ARM)就像是那些永远无法预览或修改他们已经写下的内容的作者。它们只能根据过去的词来预测未来的词,这限制了它们理解和文本不同部分之间关系的能力。作为人,我们在写之前通常有一个大致的想法,而现有的大型语言模型在某种程度上还做不到这一点。
数据大小当前的模型需要大量的训练数据才能取得良好的表现,这使得它们在开发过程中成为资源密集型,并且在数据有限的专业领域中可能限制了它们的应用。
什么是 LLaDA?LLaDA通过用“基于扩散过程的”过程取代传统的自回归,引入了一种截然不同的语言生成方式(我们稍后会详细解释为什么称它为“扩散”过程)。
我们一步一步来理解一下这个过程是如何运作的,先从预训练阶段开始。
LLaDA 预训练阶段记住在预训练阶段我们不需要任何“带标签的”数据。我们的目标是输入大量的原始文本数据到模型中。对于每个文本序列,我们会做以下几步:
- 我们设定一个最大长度(类似于ARM的设定)。通常这可以是4096个token。1%的时候,序列长度在1到4096之间随机采样,并填充以确保模型也能接触到较短的序列。
- 我们随机选择一个“掩码率”。例如,可以选择40%。
- 每个token以0.4的概率被掩码。那么“掩码”具体指的是什么呢?简单来说,我们用一个特殊的<MASK>令牌来替换该token。与其他token一样,这个token也有特定的索引和嵌入向量,模型在训练过程中可以处理和解释。
- 然后将整个序列输入到我们基于Transformer的模型中。这一过程将所有的输入嵌入向量转换为新的嵌入向量。我们使用分类头来预测每个被掩码的token。从数学的角度来看,我们的损失函数会将整个序列中所有被掩码的token的交叉熵损失进行平均计算,如下所示:
损失函数图用于表示LLaDA(损失函数图,作者的图片)
5., 我们对数十亿或甚至数万亿的文本序列重复这个步骤。
需要注意的是,与ARM不同,LLADA可以充分利用双向依赖关系:不再需要在注意力层中进行掩码。然而,这可能会带来更高的计算成本。
可以看到,训练阶段本身(数据输入模型的过程)与其他大型语言模型非常相似。我们只是预测随机遮蔽的词,而不是预测下一个词。
LLaDA SFT对于自回归模型(auto-regressive models),SFT与预训练非常相似的,区别在于我们有成对的(提示,回应),并希望在给出提示时生成回应。
这与LLADA的同样的概念完全一致!模仿预训练的方式:传入提示和响应,从响应中随机遮住一些token,然后将整个序列喂给模型,模型会预测响应中缺失的token。
创新的推理LLaDA 在创新方面变得更加有趣,真正运用了“扩散”模型。
到目前为止,我们总是随机遮盖一些文本作为输入,并要求模型预测这些标记。但在实际应用时,我们只有提示,需要生成整个回答。你可能会认为(这没错),在进行指令调优时,模型见过掩码率非常高的例子(可能达到1),它必须学会怎样根据提示生成完整回答。
然而,一次性生成完整响应在推理时可能会产生很差的结果,因为模型缺乏信息。相反,我们需要一种方法来逐步细化预测,这就是所谓的‘重新掩码’关键思想。
文本生成过程的每一步都是这样工作的,如下所示:
- 将当前输入喂给模型(这是提示,后面跟着< MASK>标记符)
- 模型会为每个输入标记生成一个嵌入。我们只对< MASK>标记生成预测。重要的是,我们会重新掩码其中的一部分。特别地,我们只保留预测得分最高的标记,即那些具有最高置信度的标记。
- 我们还可以将这个部分未解码的序列作为下一次生成步骤的输入,并重复此过程,直到所有标记都解码完成。
你可以看到,有趣的是,我们对生成过程的控制更多,相比ARMs:我们可以选择重新掩码0个令牌(仅一步生成),或者每次只保留最好的那个令牌(与响应令牌数量相同的步骤)。显然,这里的权衡在于预测质量和推理时间之间。
让我们用一个简单的例子来说明这一点(比如说,在这种情况下,我选择在每一步保留最好的两个词元。)
LLaDA生成过程举例(图片由作者提供)
注意,实践中,重掩码步骤将如下进行。不是每次都固定地重掩码一定数量的标记,我们会根据时间从 t=1 下降到 0,按比例 s/t 重掩码标记,其中 s 在 [0, t] 之间。 特别地,这意味着我们随着生成步骤的增加,重掩码的标记数量越来越少。
示例:如果我们想要进行N次采样(即从t=1递减到t=1/N,每次步长为1/N,即每次减少1/N),选择s = (t-1/N)是个不错的选择,这样可以确保在过程结束时s=0。
下面的图片概括了上述提到的3个步骤。“Mask predictor”简单地表示为“掩码预测器”,即大模型(LLaDA)预测被遮盖的词。
预训练(a),微调(b)和推理(c)使用LLaDA进行。(来源:参考文献[1])
自回归和扩散过程能否结合起来?在 LLaDA 中开发的另一个巧妙的想法是结合扩散与自回归生成,以利用两者的优势!这被称为半自回归扩散。
- 将生成过程分成块状(例如,每块32令牌)。
- 目的是逐块生成(就像自回归模型中逐个生成令牌一样)。
- 对于每个块,我们应用扩散策略,逐步揭开令牌,逐步揭示整个块。接着预测下一个块。
半自回归流程(出处:[1])
这是混合方法:我们可能失去了一些模型的“反向”的生成和并行处理能力,但我们更好地“引导”模型达到最终输出。
我觉得这是一个非常有趣的点子,因为它主要依赖于一个可调整的超参数:块的数量。我觉得不同的任务可能更受益于反向生成过程,而其他任务可能更适合从左到右的“引导式”生成(更多信息请参见结尾部分)。
为什么用“扩散”这个词呢?
我觉得简单介绍一下这个术语的来源还是挺重要的。这类似于图像扩散模型(比如Dall-E),这些模型在生成图像的任务中很受欢迎。
在图像扩散过程中,模型首先向图像中添加噪声,直到图像变得无法辨认,然后再逐步学习重建图像。LLADA将这一想法应用于文本,通过遮蔽令牌而不是向图像中添加噪声,然后逐步揭开这些遮蔽的令牌以生成连贯的语言。在图像生成的背景下,遮蔽步骤通常称为“噪声调度”,而相反的步骤(去除遮蔽)则称为“去噪过程”步骤。
扩散模型是怎么工作的?(来源:[2])
你也可以将LLaDA视为某种离散型(非连续)扩散模型:我们不是向标记添加噪声,而是通过屏蔽它们来停用一些标记,模型学会如何解码一部分。
看来看看结果我们来看几个 LLaDA 的一些有趣的研究成果。
在这篇论文中你可以找到所有的结果。我选择在这里强调我认为最有趣的部分。
- 训练效率:LLA DA模型在参数数量相同的情况下表现出与ARMs相似的性能,但在训练中使用的token数量少得多(并且没有使用RLHF)。例如,8B版本大约使用了2.3万亿个token,而LLaMa3使用了大约15万亿个token。
- 根据不同任务使用不同的块和答案长度:例如,对于Math数据集,块长度特别大,模型在这一领域表现出色。这可能表明数学推理可能更受益于基于扩散的反向过程。
来源:[1]
- 有趣的是,LLA在“逆序补诗任务”中表现更好。在这个任务中,模型需要从最后一句开始,反向补全整首诗。正如预期的那样,由于它们严格的从左到右生成方式,ARMs表现不佳。
参考文献:[1]
结论LLaDA 不仅仅是实验性的 ARMs 替代品:它在高效性、结构化思维和双向文本生成能力方面都显示出真正的优势。
我认为,LLaDA是一个有前途的语言生成方法。它能够在保持全局连贯性的同时同时生成多个标记,这肯定能带来更高效的训练和更好的推理,以及更优的上下文理解,并减少计算资源。
除了效率之外,它还带来了许多灵活性的特点。通过调整参数,比如生成的块的数量和生成步骤的数量,它可以更灵活地应对各种任务和限制,使其成为各种语言建模需求的多用途工具,并让用户有更大的控制权。扩散模型也可以在主动的人工智能和代理系统中发挥重要作用,通过能够进行更全面的思考和决策。
随着基于扩散过程的语言模型研究的进步,LLaDA可能成为向更自然、更高效的语言模型迈进的一个有用步骤。虽然还处于早期阶段,我认为从串行生成到并行生成的转变是人工智能发展中一个有趣的探索方向。
谢谢你阅读哈!
看看我的之前的文章。
训练大型语言模型:从TRPO到GRPO:深入研究DeepSeek、ChatGPT等其他大型语言模型如何通过强化学习优化训练过程 聊聊“维度灾难”的数学原理让我们来看看“维度灾难”概念背后的数学原理—— medium.com- 您可以在我领英上与我建立联系。
- 您可以在GitHub上关注我,获取更多内容更新。
- 也可以访问我的网站:maximewolf.com
- [1] 刘C., 吴J., 许Y., 张Y., 朱X., & 宋D. (2024). 扩散模型. arXiv:2502.09992. https://arxiv.org/pdf/2502.09992
- [2] 杨, 领等. “扩散模型:方法与应用综述.” ACM 计算机调查 56.4 (2023): 1–39. https://dl.acm.org/doi/10.1145/3626235
- [3] Alammar, J. (2018年6月27日). 插图版Transformer. Jay Alammar的博客. https://jalammar.github.io/illustrated-transformer/
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章