URL
TL;DR
LLaDA
提出了一个新概念,叫 “扩散语言模型”,和主流的自回归语言模型predict next token
的方式不同,LLaDA
使用类似Diffusion
去噪的方法,一次性生成多个token
,通过多次生成,得到一个完整的生成文本。- 但细看就会发现,
Diffusion
就是一个彻头彻尾的噱头,和经典的热力学扩散过程没有鸡毛关系,LLaDA
本质就是一个大BERT
模型,用完形填空的方式来生成文本(一次可以做多个完形填空),只是下图所示的每轮迭代的过程看起来有点像Diffusion
的去噪(没关系硬蹭)。
上图来自官方
repo
的README
Algorithm
总体流程
- 虽然多少有点标题党,但这篇论文本身是值得一读的,将文本生成任务做了重新定义,确实可大幅提高生成速度。
模型架构
- 纯纯
Transformer encoder
架构,和BERT
类似,双向注意力,模型参数规模达8B
训练过程
- 预训练
- 使用随机
mask
一定比例的token
,然后使用Transformer
预测被mask
的token
(完形填空) - 损失函数:
mask
部分的cross-entropy
损失 - 数据规模:
2.3
万亿token
,包含通用文本、代码和多语言数据
- 使用随机
SFT
- 目标:使模型具备指令跟随能力
- 数据格式:成对数据 ,其中 是指令, 是响应
- 掩码策略:仅对响应部分掩码,保持指令完整
- 损失函数:仅对响应部分计算
cross-entropy
损失 - 数据规模:
450
万对指令响应对,涵盖代码、数学和多轮对话
推理与生成
- 过程:从全掩码的响应开始,逐步预测并更新掩码
token
,直到生成完整响应 - 重掩码策略(预测之后
mask
一部分生成结果做二次生成):- 随机重掩码:基础策略,与扩散过程对齐
- 低置信度重掩码:优先掩码预测置信度低的
token
- 半自回归策略(
SFT
后):分块生成,块内并行预测以提高效率
- 生成效果:支持多轮对话、多语言翻译和复杂推理任务
和自回归模型对比
特性 | 自回归模型(如GPT ) |
LLaDA |
---|---|---|
生成顺序 | 严格从左到右逐 token 生成 |
并行预测 + 动态调整 |
计算效率 | 需串行预测多次 | 仅需少量迭代(块级并行) |
错误修正能力 | 无法修改已生成 token |
通过重掩码可修正低置信度位置 |
逆向推理支持 | 受限于单向建模 | 双向注意力机制支持逆向推理 |
Thought
- 预测下一个词的大模型范式是否一定是最优的?可能未必。这篇论文就提出了一个不错的思路
make bert great again
手动滑稽