语言必须离散吗从何恺明 ELF 到南大 AURORA-LM连续扩散语言模型的底层革命2026 年 8 月 8 日南京大学模式识别实验室联合南洋理工、帝国理工发布 AURORA-LM一个完全在**昇腾 NPU** 上训练、扩展到约 10 亿参数的连续扩散语言模型。这距离何恺明团队提出 ELFEmbedded Language Flows仅仅三个月。两条几乎同时出现的路线共同指向同一个底层命题**语言建模真的必须建立在预测下一个 token的自回归范式上吗** 本文从数学本质出发拆解连续扩散语言模型为什么能行以及为什么以前不行。一、问题起点自回归范式的三堵墙ChatGPT 背后的 next-token prediction 统治了语言模型近十年但它的底层代价正在被算清• **推理墙**生成必须逐 token 串行长文本延迟与长度线性增长很难并行• **依赖墙**因果掩码让每个 token 只能回望双向上下文、填空、纠错这类任务天然不擅长• **对齐墙**训练目标是 token 级交叉熵而人类真正关心的是句级语义质量两者存在结构性 gap。扩散模型在图像、视频上的成功让研究者开始反思离散 token 究竟是语言的本质还是只是历史惯性于是扩散语言模型DLM诞生又分两派• **离散派**MDLM、LLaDA、Dream-7B在 token 空间定义扩散过程用 MASK 还原 token• **连续派**Diffusion-LM、CDCD 等把 token 映射到连续 embedding 空间去噪最后再转回 token。过去两年离散派一直占上风原因很简单——语言是离散的。连续派被反复吊打何恺明团队却给出了相反的诊断问题不是语言必须离散而是前人没有让连续路线连续到底。二、ELF把去噪全程留在连续空间2026 年 5 月何恺明团队MIT发布 ELF核心思想一句话扩散过程全程在连续 embedding 空间里走完只在最后一步才把结果翻译成 token。此前连续派失败的原因Diffusion-LM 每一步都要算 token 级交叉熵把连续轨迹硬绑在词表上per-step discretizationlatent diffusion 类方法则要额外训一个 decoder。这相当于用铅笔打草稿的人每写一笔都要立刻誊到正式稿纸上——模型根本没机会真正在连续语义里揉。ELF 把这些全部砍掉1.token → 连续用预训练 T5 encoder 生成双向 contextual embedding推理时不额外增加模块2.连续空间去噪采用 Flow Matching 的 rectified flow——t0 是高斯噪声t1 是干净 embedding中间是线性插值3.x-prediction 而非 v-prediction沿袭团队半年前《Back to Basics》的思路网络直接预测干净 embedding x 而不是速度场 v。高维空间中 x-prediction 更稳定且天然对齐最后一步预测干净 token的目标4.最后一步才离散化denoiser 和 decoder 共享同一套参数靠一个二值 mode token 区分去噪模式/解码模式最后用可学习的 unembedding 矩阵 W 投出 token logits训练目标为标准交叉熵。为什么要 x-prediction论文给出两个理由第一token embedding 通常是 768 维甚至更高的高维向量直接预测目标值 x 比预测速度场 v 在高维空间更稳定、训练收敛更容易第二x-prediction 天然与最后一步预测干净 token的目标对齐。实验也验证了一旦 denoiser 和 decoder 共享权重v-prediction 的效果会明显变差。这套极简设计的效果仅105M 参数、45B 训练 token、32 步采样OpenWebText 生成困惑度压到24跑赢了一批需要 500B token、1024 步的离散扩散模型还把图像领域的 CFGclassifier-free guidance原封不动搬了过来——用 self-conditioning 作为条件信号套上 training-time CFG一次 forward 模拟两次推理没有额外 inference 开销。Flow Matching 训练的 PyTorch 核心逻辑ELF 风格import torch import torch.nn.functional as F def flow_matching_loss(model, x_clean, t, sigma1.0): x_clean: [B, L, D] 连续 embedding; t: [B] 在 (0,1) 均匀采样 z0 torch.randn_like(x_clean) # t0: 高斯噪声 zt (1 - t[:, None, None]) * x_clean t[:, None, None] * z0 # rectified flow 插值 x_pred model(zt, t) # x-prediction: 直接预测干净 embedding return F.mse_loss(x_pred, x_clean) # 全程连续空间无 per-step discretization推理时 Euler 采样仅在最后一步切到 decode 模式def sample(model, L, steps32, D768): z torch.randn(1, L, D) # 从噪声出发 for i in range(steps): t 1 - i / steps x_pred model(z, t * torch.ones(1), modedenoise) z z (x_pred - z) / steps # 沿预测方向推进 logits model(z, torch.ones(1), modedecode) # 最后一步离散化 return logits.argmax(-1)三、AURORA-LM高容量 latent 分块因果扩散如果说 ELF 的答案是极简那么南大 AURORA-LMAutoencoding Unified Representation for Continuous-Latent Diffusion Language Modeling的答案则是分层先用自编码器构造语义充分的连续 latent再用扩散模型学这个 latent 的分布。核心洞察连续语言生成的关键不是扩散本身而是latent 序列怎么构造——它既要保留足够信息让 decoder 准确映射回完整文字又不能难到扩散模型学不动。AURORA-LM 拆成两步第一步带前缀结构的高容量自编码器。latent 按前缀顺序组织——位置越靠后的 latent 能读到越长的 token 前缀解码某个 token 时也只能用对应的 latent 前缀从而保留了文本从左到右展开的结构。训练时随机丢弃部分 token 增强解码鲁棒性。第二步分块因果扩散模型Chunked Causal Diffusion。latent 序列切成块块间用从左到右的因果注意力掩码块内用双向注意力联合去噪。推理时块间顺序生成、KV cache 复用前缀计算结果块内可并行同步输出——这是连续扩散相对自回归的天然优势并行解码。def chunked_causal_sampling(model, enc, prefix_tokens, chunk_len64, steps32): 分块因果扩散: 块间因果 KV cache 复用, 块内双向联合去噪 cond enc(prefix_tokens) # 条件文本 - 干净 latent 前缀 kv_cache None generated [] while len(generated) max_len: z torch.randn(chunk_len, cond.shape[-1]) for i in range(steps): # 块内联合去噪 t 1 - i / steps x_pred model(z, t, kvkv_cache, condcond) z z (x_pred - z) / steps clean z generated.append(clean) kv_cache update_kv(kv_cache, clean) # 前缀 KV 复用, 无需重复计算 return decode(torch.cat(generated))关于高容量 latent的权衡。latent 维度越高噪声扰动下保留的可解码文本信息越多生成质量越好但扩散模型要从带噪状态恢复更高维的干净 latent学习目标也更难。实验发现两个关键策略适度收窄带噪输入维度bottleneck和提高训练时高噪声状态的概率能极大提升最终生成质量。少步采样怎么防误差累积训练时模型面对的是独立采样的带噪 latent推理时却要沿着自己的预测连续推进误差会沿轨迹滚雪球。AURORA-LM 引入自轨迹一致性self-trajectory consistency先用当前带噪 latent 得到干净估计据此推进到相邻的更低噪声状态再让 EMA 模型重新预测约束两次预测一致def self_trajectory_consistency(model, ema_model, z_t, t, t_prev): x_hat model(z_t, t) # 当前状态预测干净 latent with torch.no_grad(): # 停止梯度 z_prev z_t (x_hat - z_t) * (t - t_prev) # 推进到相邻低噪声状态 x_hat_ema ema_model(z_prev, t_prev) # EMA 模型再预测 loss_ctc F.mse_loss(x_hat, x_hat_ema.detach()) # 两次预测保持一致 loss_fm F.mse_loss(x_hat, x_clean) # 主 flow-matching 损失 return loss_fm w_ctc * loss_ctc # 共同优化四、成绩单与更远的意义• **自由生成**OpenWebText 上 Gen-PPL **23.56**、MAUVE **0.890**两项均为表中最佳ELF-B 为 24 左右• **条件摘要**XSum 上 ROUGE-1/2/L **36.6 / 13.4 / 28.9**三项全部最高• **规模验证**扩散结构扩展至约 1B 参数、累计约 1500 EFLOPs 训练量九项语言基准平均 **32.6**超过参数更大的公开连续语言模型• **国产算力**全部实验在**昇腾 NPU** 上完成验证了连续扩散路线在国产 AI 算力平台上的训练与扩展可行性。更深远的意义在于多模态统一长期以来文本离散、图像/视频连续被视为统一多模态的天然障碍。ELF 和 AURORA-LM以及字节同期的 Cola DLM证明了文本可以映射到连续语义 latent为文本与图像、视频、音频真正进入同一个连续世界铺平了道路。独立开发者和小团队也第一次看到或许过去几年烧在 LLM 训练上的钱里相当一部分被错误的归纳偏置浪费了。五、小结ELF 告诉我们连续扩散不 work 不是连续本身不行是之前每走一步都要回头跟词表交差把 per-step discretization 砍掉图像扩散验证过的最佳实践原封不动搬过来即可。AURORA-LM 则补上了更工程化的一环高容量 latent 怎么构造、少步采样怎么防误差、块间并行怎么落地。而字节同期的 Cola DLM 走的是语义与实现分层的另一条路——latent prior 生成潜在语义、decoder 负责翻译成文字扩散/flow matching 全程发生在 latent 空间而非 token 空间。三份工作彼此独立却共享同一个判断建模应该发生在最适合语言本质的表示空间里不要被token语义这个默认框架限定。对工程师而言这条路意味着什么• **并行解码**连续扩散天然支持块内并行生成长文本推理延迟有机会从 O(L) 降到 O(L/块长)这是自回归架构给不了的• **训练数据效率**ELF 用 45B token 达到别人 500B token 的效果如果这条路 scale 到百亿千亿参数LLM 训练的算力门槛会被显著拉低• **多模态统一**文本进入连续 latent 世界后与图像、视频、音频共享同一套生成框架成为可能——统一多模态最深的卡点正在被拆除• **国产算力验证**AURORA-LM 全部实验在昇腾 NPU 上完成并扩展到 1B 规模说明这条新范式不是英伟达的专利国产 AI 算力平台完全可以承接前沿研究。当然也要冷静连续扩散模型目前还远不能替代 GPT-5 级别的自回归模型1B 规模与万亿参数之间隔着巨大的工程鸿沟自回归的生态、工具链、对齐技术积累也是多年量级的护城河。但方向已经清晰——当语言必须离散这条被默认了二十年的底层假设开始松动语言模型的下一轮范式转移可能已经开始了。论文ELF (arXiv:2605.10938) / AURORA-LM (arXiv:2608.02602)代码github.com/lillian039/ELF · github.com/fyv587/AURORA-LM