InclusionAI 团队开源扩散语言模型(Diffusion Language Model,dLLM)LLaDA2.2-flash。模型为 MoE 架构,总参数量约 100B,原生支持 128K 上下文,采用 Apache-2.0 协议。相比上一代 LLaDA2.1 仅支持定长的原位替换,LLaDA2.2 引入莱文斯坦编辑(Levenshtein Editing),为并行去噪补上对序列的插入与删除能力,并通过 L-EBPO 强化学习在环境反馈中学习纠错。技术报告显示,LLaDA2.2-flash 在 7 个 Agent 基准上的平均得分为 53.83,与自回归(Autoregressive,AR)模型 Ling-2.6-flash 的 55.74 分相差 1.91 分,BF16 平均解码吞吐量达到后者的 1.64 倍。

 

图 1:LLaDA2.2 训练与推理框架。图片来源:LLaDA2.2 Technical Report

 

开源地址:

  • ModelScope:https://modelscope.cn/models/inclusionAI/LLaDA2.2-flash
  • GitHub:https://github.com/inclusionAI/LLaDA2.X

 

当扩散模型第一次真正撞上「真实世界」

扩散语言模型的生成方式与自回归不同:它先铺开一批待填补的噪声位置,再通过多轮去噪逐步拟合出完整答案。多个位置协同推进,既有速度优势,也具备反复打磨的潜力。LLaDA2.1 曾借助块并行解码(Block-parallel Decoding)的高吞吐特性,并通过强化学习后训练引入”边生成边改”的机制,解决的是单次生成中的改写问题。

但 Agent 并非一次性交付的文本,而是一个持续运行的闭环系统:模型的每一次输出都在改变环境,环境的反馈又会决定下一步决策。从生成问题转向行动问题,扩散语言模型面临两个新难题。

 

难题一:结构僵化与推理路径崩塌

在块并行生成中,同一个块(Block)内的 Token 缺少显式的逐 Token 顺序条件,容易出现 n-gram 重复、JSON 格式错误或工具调用边界混乱。

更隐蔽的风险在于“决策瓶颈的去噪滞后”与“上下文过度约束”。在任意顺序去噪(Arbitrary-order Denoising)框架下,模型可能优先处理高确定性的局部 Token,而将高不确定性的关键逻辑分叉点(High-entropy Branching Points)推迟处理。这种“周边先行、核心滞后”的去噪顺序会导致已经固化的周边上下文对后处理的关键决策点形成过度的条件约束,显著压缩模型在生成后期对解空间(Solution Space)的探索能力,使其过早收敛到单一路径,难以充分探索其他推理方向。

 

难题二:错误累积导致目标偏离

Agent 的错误具有“传染性”。一次错误的工具调用会产生被污染的观察结果(Observation),这些结果又会扭曲后续规划(Planning)。在长程、多轮交互中,早期生成 Block 留下的局部偏差会作为后续去噪的硬条件进入上下文,逐步引发目标漂移和级联失效。相比能够持续沿前缀条件推进的自回归模型,块扩散模型在结构上更容易受到这类错误累积的影响。

以上两点共同导致了模型崩溃(Model Collapse)。上一代 LLaDA2.1 虽然赋予了模型 Token-to-Token(T2T)的替换能力,但这种编辑本质上仍被局限在固定结构的约束之下。这如同在格子固定的棋盘上落子:棋子下错了可以再重下,但格子本身既无法扩展,也无法缩减。

然而,真实世界里的错误从来都不是“等长”的。代码修复可能需要删除冗余分支,也可能需要补全缺失的异常处理函数;API 交互可能需要剔除非法字段,也可能需要补齐缺失的关键认证参数。面对这类非等长的错误修正,局限于“原位等长替换”的擦除机制已触及能力天花板。扩散 Agent 迫切需要摆脱这种定长像素级修补的旧框架,真正迈向支持插入与删除的弹性序列结构重塑。

 

莱文斯坦编辑(Levenshtein Editing):让序列具备“增删”自由

既然“原位替换”填不平真实世界错综复杂的坑,LLaDA2.2 带来的第一个根本性改变,就是把莱文斯坦编辑引入扩散去噪过程。

简单来说,LLaDA2.2 不再局限于“保持(Keep)”和“替换(Substitute)”,而是额外引入两个编辑控制 Token:

  • DELETE(删除):模型发现某处存在冗余或错误 Token 时,可以在去噪过程中将其删除。
  • INSERT(插入):模型发现缺少函数参数或 JSON 字段时,可以在当前 Token 前创建一个新的可编辑位置,等待后续去噪填入内容。

 

如何教模型学会“增与删”?

训练时,团队利用最长公共子序列(Longest Common Subsequence,LCS),将模型生成的中间草稿(Draft)与目标序列(Ground Truth)对齐,并据此构建上述四类编辑指令。在固定 Block 长度的约束下,DELETE 操作会移除当前 Token 并将后续 Token 左移;INSERT 操作则会在紧邻当前位置的前方创建一个 [MASK],将该位置扩展为([MASK],当前 Token),让后续去噪轮次填充新增位置。随后,序列会通过补齐 [MASK] 或截断尾部恢复原有 Block 长度。

 

这也让 LLaDA2.2 与 ICML 2026 论文 《The Flexibility Trap: Rethinking the Value of Arbitrary Order in Diffusion Language Models》 形成了一组很有意思的对照。针对 dLLM 的熵退化(Entropy Degradation)和解空间覆盖过早坍缩(Premature Collapse of Solution Coverage,即本文语境下的 Model Collapse)问题,后者给出的 JustGRPO 方案是在强化学习(Reinforcement Learning,RL)训练阶段主动放弃任意顺序,回到严格的从左到右顺序,使用标准的组相对策略优化(Group Relative Policy Optimization,GRPO)进行训练;模型架构不变,推理时仍保留并行解码能力,并在多项推理任务上取得性能提升。

 

LLaDA2.2 走的是另一条路线:它没有在训练阶段把扩散模型重新变成自回归策略,而是通过 Keep、Substitute、Delete 和 Insert 扩大可编辑动作空间——写错了可以替换,写多了可以删除,写少了还能插入;再结合强化学习的环境反馈,让模型在解码和行动过程中持续自我修正。换句话说,一条路是先把容易走偏的“岔路”收窄,另一条路则是让模型即使走错,也拥有回头修改路线的能力。

 

从扩散模型自身的机制看,LLaDA2.2 以莱文斯坦编辑为核心、结合环境反馈的这条路线,是一种更原生、也更优雅的解法:它没有牺牲并行去噪的基本范式,而是直接为这种范式补上结构化自我纠错能力。

 

图 2:在软件工程基准 SWE-bench Verified 上,使用同一个 LLaDA2.2 基座、相同 SWE 轨迹进行微调,仅切换是否启用莱文斯坦编辑,解决率便从 35.8 提升到 44.4,绝对增益达到 8.6 个百分点。图片来源:LLaDA2.2 Technical Report

 

L-EBPO:在环境反馈中学会“边行动边纠错”

有了“增删编辑”的工具箱,模型又该在什么时候删、在什么地方加?

监督微调(Supervised Fine-Tuning,SFT)可以先教会模型编辑语法和基本行为,但长程 Agent 轨迹中的策略决策仍需要来自环境的任务级反馈。为此,LLaDA2.2 提出了基于莱文斯坦编辑证据下界的块级策略优化(Levenshtein Editing Evidence Lower Bound (ELBO)-based Block-level Policy Optimization,L-EBPO)强化学习算法。

RL 直接应用到动态编辑的扩散轨迹并不轻松,因为 Delete 和 Insert 是“转瞬即逝”的中间动作:它们存在于解码过程,却不会出现在最终文本中,因此必须先恢复编辑轨迹,才能估计相应的似然。

L-EBPO 的设计是一套两层控制结构:外层沿用基于证据下界的块级策略优化(ELBO-based Block-level Policy Optimization,EBPO),优化多轮 Agent 交互中的轨迹级决策;内层负责单次生成过程中 Block 内的插入和删除。二者被统一进动作空间 V ∪ {DELETE, INSERT},让普通 Token 预测与结构编辑可以在同一目标下优化。

具体而言,系统会在每个噪声层级对齐加噪后的采样轨迹(rollout)与原始动作序列,恢复瞬时编辑标签,使梯度能够覆盖 INSERT、DELETE 等结构决策。环境奖励则来自三部分:工具调用执行是否正确、输出格式是否有效,以及整体任务是否完成。

借助沙盒集群和异步训练,模型不只学习“怎样编辑”,也开始学习在长程 Agent 轨迹里“何时编辑”。这些机制在一定程度上缓解了重复、错误累积和推理路径坍缩问题。

 

128K 上下文的混合专家(MoE)性能破局:块路由机制

Agent 往往意味着漫长的思考链条、上万行的代码库和几十轮交互历史。为了适应这类工作负载,LLaDA2.2 从 LLaDA2.1 的 8K 基座出发,先用 300B Token 训练到 64K,再用 200B Token 扩展到 128K;在最后的 128K 阶段,训练数据还加入了长程软件工程上下文、工具使用轨迹和浏览轨迹。最终模型原生支持 128K 上下文,而不是只在推理时做外推。

但长上下文也带来了一个棘手的工程挑战:推理成本会快速上升。

LLaDA2.2 采用混合专家(Mixture of Experts,MoE)架构。在传统的 MoE 自回归模型中,每个 Token 会独立挑选 Top-k 专家,每一步通常只处理少量新 Token;但在块扩散模型中,每一步去噪会处理完整 Block,常见长度为 32 或 64 个 Token。如果每个 Token 都自由选择专家,一个 Block 触达的专家并集就会迅速扩大,增加高带宽内存(High Bandwidth Memory,HBM)流量、降低专家权重复用率,并推高专家并行中的通信成本。

为了解决这个“吞吐杀手”,LLaDA2.2 提出了块路由机制(Block Routing):

  1. Token 赛马(Token Racing):在一个 Block 内,每个 Token 都给出对各个专家的偏好分数;系统取同一专家在所有 Token 上的最高分,形成 Block 级准入分数。
  2. 固定容量上限:根据准入分数,从全局 256 个路由专家中选出 Top-48,组成 Block 专属候选池。
  3. 二次精细分发:每个 Token 再在这个候选池中执行 Top-k 路由,继续保留 Token 级别的专业分工。

这样一来,每个 Block 的专家工作集就获得了可预测的 O© 上界,同时又没有把所有 Token 粗暴地塞给同一批固定专家。报告显示,经过持续预训练切换到块路由后,模型质量几乎没有下降,而 MoE 块扩散推理的路由结构变得更稳定、更易于规划。

 

图 3:Block Routing 先建立固定容量的专家候选池,再在池内执行 Token 级 Top-k 路由。图片来源:LLaDA2.2 Technical Report

 

实测表现:高吞吐下的 Agent 竞技

在包含 SWE-bench、τ²-Bench、Claw-Eval 等 7 个 Agent 基准测试的综合评估中:

  • 整体效果逼近 AR 模型:LLaDA2.2-flash 取得 53.83 的平均分,较自回归模型 Ling-2.6-flash 的 55.74 分低 1.91 分。
  • 部分场景实现反超:在 τ²-Bench、PinchBench、MCP-Atlas 上,LLaDA2.2-flash 超过了 Ling-2.6-flash;在 Claw-Eval 上,两者也十分接近。
  • 吞吐优势明显:在 11 种代表性工作负载中,LLaDA2.2-flash 的 BF16 平均解码吞吐量达到 Ling-2.6-flash 的 1.64 倍;从 BF16 量化到 FP8 后,LLaDA2.2-flash 的平均吞吐量还能再提升 18.6%。

 

图 4:LLaDA2.2-flash 与 Ling-2.6-flash 的 Agent 基准表现。图片来源:LLaDA2.2 Technical Report

 

 

图 5:11 种工作负载上的解码吞吐量对比。图片来源:LLaDA2.2 Technical Report

 

本地部署与快速体验

LLaDA2.2-flash 已在 ModelScope ,采用 Apache-2.0 协议,开发者可以在本地环境中完整复现上述 Agent 能力。

 

模型规格速览

LLaDA2.2-flash 为 MoE 架构,总参数量约 100B(非嵌入层),模型文件以 BF16 精度的 safetensors 格式存储,共 32 个分片,总大小约 206 GB。原生支持 128K 上下文窗口。

 

硬件需求

由于模型体量较大,本地部署建议使用多卡 GPU 环境。以 BF16 全精度加载为例,至少需要 4 张 A100-80GB 或同等显存的 GPU;如使用 FP8 量化,显存需求可相应降低。长上下文(128K)场景对显存的要求更高,建议预留充足资源。

 

模型下载

推荐通过 ModelScope SDK 下载(国内网络更稳定):

from modelscope import snapshot_download
model_dir = snapshot_download("inclusionAI/LLaDA2.2-flash")

也可通过 Git LFS 直接克隆:

git lfs install
git clone https://modelscope.cn/models/inclusionAI/LLaDA2.2-flash.git

使用 Transformers 快速推理

模型可直接通过Transformers 加载运行。注意需要设置 trust_remote_code=True,因为模型包含自定义的扩散解码逻辑:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path = "inclusionAI/LLaDA2.2-flash"
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    trust_remote_code=True,
    device_map="auto",
)
model = model.to(torch.bfloat16)
model.eval()
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
prompt = "请用 Python 实现一个简单的 HTTP 服务器"
input_ids = tokenizer.apply_chat_template(
    [{"role": "user", "content": prompt}],
    add_generation_prompt=True,
    tokenize=True,
    return_tensors="pt",
).input_ids
generated_tokens = model.generate(
    inputs=input_ids,
    eos_early_stop=True,
    gen_length=512,
    block_length=32,
    threshold=0.5,
    editing_threshold=0.0,
    temperature=0.0,
)
response = tokenizer.decode(generated_tokens[0], skip_special_tokens=True)
print(response)

关键生成参数

扩散解码与传统自回归推理不同,以下是推荐的默认参数配置:

  • block_length=32:扩散块大小,控制每步并行去噪的 Token 数量。
  • threshold=0.5:去噪置信度阈值,低于此值的位置将继续迭代。
  • editing_threshold=0.0:莱文斯坦编辑触发阈值,设为 0 表示关闭主动编辑(适用于常规生成)。
  • temperature=0.0:贪心解码,适合确定性任务;评测中可设为 1.0 配合 Top-p 采样。
  • gen_length:最大生成长度,按需调整。

 

写在最后

从 LLaDA2.1 的原位替换,到 LLaDA2.2 的插入与删除编辑,扩散语言模型做 Agent 的底座逻辑已经跑通。凭借莱文斯坦编辑带来的结构化纠错能力、L-EBPO 的环境反馈优化,以及块路由机制对 128K 上下文下 MoE 推理成本的控制,LLaDA2.2-flash 在 7 个 Agent 基准上以 53.83 的平均分接近自回归模型 Ling-2.6-flash,同时保持 1.64 倍的解码吞吐优势,为自回归路线之外提供了一条可继续投入的技术选择。

 

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐