LLaDA2.0-Uni: Unifying Multimodal Understanding and Generation with Diffusion Large Language Model
Paper: arXiv:2604.20796 Code: inclusionAI/LLaDA2.0-Uni Code reference:
main@fe6525e3(2026-05-13); Hugging Face model custom code25b364e9(2026-05-12)
1. Motivation (研究动机)
这篇论文要解决的核心问题不是“再做一个图文模型”,而是:能否把 multimodal understanding、text-to-image generation、image editing、interleaved generation/reasoning 都放进同一个 diffusion Large Language Model 框架里,并且不再依赖理解/生成两套不一致的视觉表示。现有统一多模态模型主要有两条路线:一类是 Janus、Lumina-mGPT 这类 autoregressive token prediction,把图像离散化成 token 后按 next-token prediction 统一;另一类是 BAGEL、OmniGen2、Hunyuan Image 3.0 这类 text AR + image diffusion hybrid,把文本和图像生成分别交给不同机制。它们确实推动了“单模型多能力”,但模型内部仍然存在 representation gap 或 objective gap:理解任务使用 ViT/视觉编码器,生成任务使用 VAE/latent diffusion,优化目标和 token 语义并不完全一致。
论文特别批评了已有 masked diffusion 统一模型的三个瓶颈。第一,MMaDA、Lumina-DiMOO 等模型多依赖 reconstruction-oriented VQ-VAE,tokenizer 优化的是像素重建而不是语义理解,所以同样的视觉 token 用来做 VQA、OCR、document reasoning 时会丢失语义信息。第二,过强的图像压缩会牺牲生成质量,尤其在文字、人体、细节纹理和多物体布局中会放大误差。第三,完全 bidirectional 的建模方式对文本并不天然稳定,而开放式理解问题又不能假设固定输出长度;因此一个看似统一的 diffusion 框架可能在实际任务覆盖和 benchmark 表现上落后于 AR-based unified architecture。
LLaDA2.0-Uni 的目标是用 dLLM 的 mask prediction 机制作为共同底座,但把视觉端换成 fully semantic discrete tokens:图像先由 SigLIP-VQ 编成语义 codebook token,进入 16B MoE dLLM backbone 后和文本 token 一起做 block-level masked diffusion;当需要生成图像时,再由专门的 diffusion decoder 把这些语义 token 还原成高保真图像。这样做的价值在于,理解、生成、编辑、interleaved reasoning 共享同一组语义视觉 token,而不是把“理解的图像表示”和“生成的图像 latent”硬拼在同一个系统中。
Figure 1 解读:这张总览图把 LLaDA2.0-Uni 放在 understanding、generation、editing 等多类 benchmark 上比较。它不是只在某个单项上追求 SOTA,而是强调 unified model 的综合可用性:在 VQA/OCR/document reasoning 上接近 specialist VLM,在 GenEval、DPG、UniGenBench、WISE、ImgEdit/GEdit/MICo 上超过或接近同类 unified models。这个定位决定了论文方法的重点:架构设计必须同时保留语义理解能力、图像重建能力和多轮/交错输出能力。
从研究意义看,LLaDA2.0-Uni 试图证明 dLLM 不只是 text-only LLaDA 的替代解码范式,也可以成为 next-generation multimodal foundation model 的统一计算形式。它的动机可以概括为三层:一是 deployment 层面,单模型覆盖理解、生成、编辑比多模型流水线更简单;二是学习层面,理解数据和生成数据能在共享语义 token 空间中互相增强;三是能力层面,只有当文本 token、视觉 token 和 reasoning trace 在同一模型中被扩散式生成,interleaved generation 和 chain-of-thought-informed image generation 才会成为自然能力,而不是后处理拼接。
2. Idea (核心思想)
核心 insight:把图像压成“语义离散 token”而不是“重建离散 token”,再让 dLLM 对文本和视觉 token 执行同一种 block-wise mask prediction;生成时不让 dLLM 直接输出像素,而是把生成出的语义 token 交给 diffusion decoder 重建图像。 这同时避开了 VQ-VAE token 语义不足、ViT/VAE 双塔不一致、AR/DIffusion 混合目标难平衡的问题。
论文的关键创新不是单个组件,而是三段式闭环:SigLIP-VQ 负责把连续图像变成 aligned with LLM 的 discrete semantic tokens;LLaDA-2.0-mini MoE backbone 负责在统一 vocabulary 内做 multimodal masked diffusion;Z-Image-Base-based diffusion decoder 负责把 semantic VQ token 还原到 1024×1024 图像。与 Janus/Emu3-style AR unified models 相比,它不把视觉输出当作长序列 next-token prediction,而是使用并行 denoising;与 BAGEL/OmniGen2-style hybrid models 相比,它不需要理解端和生成端两种视觉模块各自优化;与 MMaDA/Lumina-DiMOO 相比,它把视觉 token 的训练目标从像素重建转向语义理解,并额外补上图像 decoder。
Figure 2 解读:高保真生成样例展示了作者希望解决的第二个矛盾:semantic tokenizer 有利于理解,但语义 token 往往不含足够低层细节,直接重建会损失纹理和审美质量。因此论文没有让 SigLIP-VQ 兼顾理解和像素还原,而是把“语义对齐”和“视觉重建”解耦:tokenizer 只需要产生语义好用的离散 token,细节恢复交给 diffusion decoder 和后续 distillation。
Figure 3 解读:这张图说明统一模型不只服务 text-to-image。单/多参考编辑需要模型同时理解输入图像、理解编辑指令并生成新图像;interleaved generation 需要文本和图像在一个序列中交替出现;interleaved reasoning 需要模型先产生推理再产生或解释视觉结果。LLaDA2.0-Uni 的设计让这些任务都变成同一套 image/text token 的 conditional masked generation。
这篇论文与普通 image generation paper 的根本差异在于,它把图像生成看成 multimodal token modeling 的一个分支,而不是独立 diffusion pipeline。与普通 VLM paper 的差异在于,它不只是把图像编码成 embedding 后回答问题,还要求这些视觉 token 可以被模型生成、编辑、交错输出并最终被 decoder 还原成图像。因此论文真正要证明的是:semantic VQ + dLLM + diffusion decoder 这个组合能同时覆盖理解和生成,且不会在任一侧严重退化。
3. Method (方法)
3.1 整体框架:三组件闭环
Figure 4 解读:架构由 SigLIP-VQ tokenizer、dLLM-MoE backbone 和 diffusion decoder 组成。理解路径是:图像经 SigLIP2-g ViT 与 vector quantizer 变成语义离散 token,加上 <height>/<width> 等 special tokens 后进入 LLaDA2.0 backbone,模型对 masked text tokens 做 block diffusion 生成答案。生成路径是:文本 prompt 被 dLLM 转成 image token 序列,token 序列经 diffusion decoder 还原为图像。编辑路径是在输入中同时放入 source image tokens 和 instruction,再生成 target image tokens。
整体训练和推理可以理解为一个统一 vocabulary 的 masked denoising 问题。论文将文本 token、SigLIP-VQ codebook token 和图像/尺寸控制 special tokens 放入同一 token space;backbone 不区分“这是理解模型”还是“这是生成模型”,只看到一个混合序列和若干 mask 位置。这样的好处是所有任务共享 attention、MoE experts、positional encoding 和 block-wise denoising 机制,数据多样性可以直接体现在同一个参数空间中。
3.2 Semantic Discrete Tokenizer:SigLIP-VQ 负责语义而非像素
SigLIP-VQ 继承 X-Omni 的思路,用 pretrained SigLIP2-g ViT 作为 visual feature extractor,支持 dynamic resolution。ViT 后接 vector quantizer,把视觉表示对齐到 pretrained LLM 的语义空间;论文给出的 codebook vocabulary size 是 16,384,dimensionality 是 2,048。这个选择很关键:传统 VQ-VAE token 的训练目标偏像素重建,容易在 OCR、chart、document QA、fine-grained object reasoning 中缺语义;SigLIP-VQ 则直接面向 understanding tasks,保留高层语义关系。
但 SigLIP-VQ 的弱点也很明确:它没有天然的 image reconstruction mechanism。论文没有强行让 semantic tokenizer 同时担任 pixel decoder,而是承认“语义 token 好理解、不一定好还原”,再引入 diffusion decoder 补足视觉细节。这是论文的一个重要设计取舍:tokenizer 不追求低层重建最优,而追求让 dLLM 能处理、生成和推理的 discrete visual symbols;重建质量由 6B diffusion decoder、2× super-resolution 和 few-step distillation 保证。
从 released code 看,GitHub repo 的 encoder/image_tokenizer.py 实现了这条路径。ImageTokenizer.encode_with_info() 会先做图像预处理、SigLIP-like feature extraction,再通过 VQ 模块输出 token_ids 和 grid_thw;README 和脚本会把这些 token 加上 model.config.image_token_offset 后输入 understand_image() 或 edit_image()。HF config.json 中 image_token_offset=157184、vocab_size=173568,说明 image tokens 是附加到语言 vocabulary 之后的一段 token id 区间。
def encode_image_to_semantic_tokens(pil_image, model_path, model):
image_tokenizer = ImageTokenizer(model_path=model_path, device="cuda")
info = image_tokenizer.encode_with_info(pil_image)
# released README/scripts: offset is applied before feeding dLLM
image_tokens = [
token_id + model.config.image_token_offset
for token_id in info["token_ids"]
]
_, h, w = info["grid_thw"]
return image_tokens, h, w3.3 dLLM-MoE backbone:统一 vocabulary 与 block-wise mask prediction
Backbone 采用 LLaDA-2.0-mini,一个 16B total parameters 的 MoE dLLM。论文扩展原始 dLLM vocabulary:追加 SigLIP-VQ codebook tokens,并加入 image generation / understanding 所需 special tokens。输入 embedding 层保留 pretrained language embeddings,对新增 visual token embeddings 随机初始化;输出 head 也扩大到新 vocabulary,其中 language-specific 部分从 pretrained weights 初始化,以尽量保留语言能力。
MoE 设计用于多模态容量分配。不同任务的序列结构差异很大:纯文本 QA、长文档 OCR、图像生成、编辑、多帧 interleaved data 对 expert capacity 的需求不同。论文采用 auxiliary-loss-free load balancing:对 routing gate output 乘以 2.5 稳定 RMS magnitude,并用 bias update 维持 experts 负载均衡。其更新为: 其中 是当前 expert load distribution, 是理想均匀分布。这个机制的实际意义是避免 multimodal mixture 让某些 experts 被过度使用,从而在大规模混合数据下保持训练稳定。
训练目标采用 BDLM。对 block-level masked regions 而不是单 token 独立扩散,可以保留块内上下文连贯性,同时支持并行 decoding。论文给出的 loss 为: SFT 时把 prompt 条件 加入 objective: 由于多模态样本长度差异可达两个数量级,作者又提出 mask token reweighting loss: 直觉上,BDLM 让模型一次处理一个 block 的 mask restoration;MTRS 则避免长图像/长 interleaved 样本在 loss 中完全压过短文本样本。这样模型既能学习高 token count 的图像生成,又不牺牲语言问答和 open-ended response。
def bdlm_training_loss(model, clean_tokens, condition=None, alpha_t=None):
corrupted_tokens, mask_index, t = sample_blockwise_mask(clean_tokens)
logits = model(input_ids=corrupted_tokens, condition=condition).logits
logp = F.log_softmax(logits, dim=-1)
token_nll = -logp.gather(-1, clean_tokens[..., None]).squeeze(-1)
diffusion_weight = alpha_t.derivative(t) / (1.0 - alpha_t(t))
loss_per_token = diffusion_weight * token_nll * mask_index.float()
beta = 1.0 / torch.sqrt(mask_index.float().sum(dim=-1).clamp_min(1.0))
return (beta * loss_per_token.sum(dim=-1)).sum() / beta.sum()3.4 Positional encoding、arbitrary resolution 与 block-wise attention
论文没有采用复杂 2D RoPE,而是保留原始 1D RoPE,并在 flattened visual sequence 前加入 <height>、<width> 或类似 <imgsize_512> 的 special tokens 表达空间尺寸。这个选择简化了 architecture,同时让任意分辨率可以通过 token header 表示,而不需要单独改 attention 结构。由于 SigLIP-VQ token 与 Qwen2.5 语义空间对齐,作者认为视觉 token 也继承某种 autoregressive bias;如果完全 full bidirectional attention,文本稳定性和视觉生成质量都可能受影响。因此 backbone 使用 block-wise attention,在 block 内做 denoising,在 block 间保留有约束的上下文依赖。
这也是 LLaDA2.0-Uni 与简单“全双向 mask language model”不同的地方。全双向在理论上方便并行,但对文本生成可能不可靠;block-wise attention 把生成过程组织成局部可控的块,使模型在并行与顺序一致性之间折中。对于 image tokens,块结构还对应局部 spatial/semantic groups;对于 text tokens,块结构保留前文 clean blocks 对当前 block 的条件约束。
3.5 Diffusion Decoder:从 semantic tokens 到高保真图像
Diffusion decoder 基于 Z-Image-Base,一个 6B pretrained text-to-image model。dLLM 生成的 image tokens 作为 conditioning signal,替代传统 text prompt;与 NextFlow 或 X-Omni 这类同时使用 text prompt + visual tokens 的 decoder 不同,LLaDA2.0-Uni 让 decoder 只依赖上游语义 token,以保持统一 pipeline。decoder 还承担 super-resolution:S2 阶段中 backbone 生成 512 resolution 的语义 token,而 diffusion decoder 输出到 1024。
decoder 的训练使用 flow matching: 其中 是 dLLM 生成或编码得到的 semantic visual tokens, 是 decoder 预测速度场, 是 target velocity。decoder training 分三段:Stage 1 warm-up 冻结 semantic processor、更新其余模块建立 cross-modal alignment;Stage 2 multi-domain generalization 解冻所有参数并在多域数据上 fine-tune;Stage 3 high-fidelity refinement 在高质量数据上改善审美和细节。
为了降低 50-step CFG sampling 的成本,作者使用 lightweight consistency-based distillation。distillation objective 为:
released code 中 decoder/decode.py 的 decode_vq_tokens() 负责把 dLLM 输出的 token ids 变成图像;README 默认 50-step ODE,也给出 decode_mode="decoder-turbo", num_steps=8 的 8-step distilled decoder。decoder/decoder_model.py 中的 ZImageTransformer2DModel 和 LLaDA2UniImageDecode 对应 decoder backbone 和封装。论文公式与 released code 实现差异:论文的训练细节、decoder distillation 训练循环和大规模训练 config 未在 GitHub repo 中公开;released repo 主要提供 inference scripts、tokenizer/decoder model code 和 HF model custom code,因此笔记中的训练超参以论文表格为准,代码映射只锚定推理实现。
def decode_semantic_tokens_to_image(token_ids, h, w, model_path, device):
# GitHub README/decode.py: default decoder is 50-step ODE
image = decode_vq_tokens(
token_ids, h, w, model_path, device,
num_steps=50,
decode_mode="decoder",
)
# Turbo path: distilled decoder, 8 steps, much faster
turbo_image = decode_vq_tokens(
token_ids, h, w, model_path, device,
num_steps=8,
decode_mode="decoder-turbo",
)
return image, turbo_imageFigure 9 解读:这张图对应 Table 14 的 decoder distillation。它要证明 8-step Decoder Turbo 在视觉质量上接近 50-step decoder,而 speed 从 32.95 s/img 降到 2.90 s/img。对 unified model 来说这很重要,因为 dLLM backbone 已经通过 parallel decoding 提速,如果 decoder 仍需 50-step CFG,就会成为端到端瓶颈。
3.6 Training-free acceleration:SPRINT
SPRINT 的动机是 block-wise dLLM 生成需要 次 forward,其中 是 block 数、 是每个 block 的 denoising steps。多模态序列的 prefix 可能很长,且每个 token 的不确定性不同;如果每一步都完整计算 prefix 或按固定步长均匀 unmask,算力会浪费在已经高置信的 token 上。
SPRINT 包含两部分。第一是 Sparse Prefix Retention:每个 block 第一步完整 forward 得到 logits 和 KV cache,然后按重要性裁剪 prefix KV。重要性分数为: 其中论文设 。第二是 Non-uniform Token Unmasking:不再每步固定接受 个 token,而是把置信度超过阈值 的 token 一次接受: 同时每步至少接受 个 token 保证终止。论文考察 ,Table 13 中使用较低阈值会给 OCRBench 和 DPG 带来一定下降。
Figure 5 解读:图中展示的核心不是单纯 batch packing,而是多模态序列长度差异带来的 load imbalance。短文本、长图像生成、editing、多图 interleaved sequence 混在一起时,固定 max length 会浪费大量 padding;packing 和 SPRINT 从训练/推理两侧降低空算和重复 prefix computation。released README 也把 SPRINT 描述为 KV cache reuse/pruning、adaptive unmasking、threshold-based batch acceptance 的组合。
HF modeling_llada2uni_moe.py 的实现与论文描述一致:_compute_confidence_scores() 支持 low_confidence、top_k_margin、neg_entropy 三种 remasking/confidence strategy;get_transfer_index_bd_adaptive() 先加 Gumbel noise、可选 top-p/top-k,再根据 confidence 和 steps_left 选择 transfer positions;generate_image()、understand_image()、edit_image() 均暴露 use_sprint、keep_ratio、cache_warmup_steps、confidence_alpha 等参数。不过 released README 说明 Sprint 支持 simple CFG/no-CFG;editing CFG(三路 guidance)会 fallback 到 baseline,这一点在读代码映射时需要保留。
def sprint_denoise_block(model, block_tokens, prefix_cache, steps, threshold=0.95):
for step in range(steps):
logits, prefix_cache = model(block_tokens, past_key_values=prefix_cache)
sampled = add_gumbel_noise(logits, temperature=0.0).argmax(dim=-1)
confidence = compute_confidence_scores(
logits, sampled, mask_index=(block_tokens == MASK),
remasking="low_confidence",
)
# accept all high-confidence tokens, but force a minimum quota
high_conf = confidence > threshold
min_quota = math.ceil((block_tokens == MASK).sum().item() / (steps - step))
transfer = topk_or_high_confidence(confidence, high_conf, min_quota)
block_tokens[transfer] = sampled[transfer]
return block_tokens3.7 任务接口:generation、understanding、editing 的 released code 路径
released GitHub repo 的主接口是 inference 而非训练。scripts/t2i_generate.py 解析 --steps、--cfg_scale、--image_h、--image_w、--decoder_steps,调用 model.generate_image() 得到 token ids,再调用 decode_vq_tokens() 输出图像。scripts/mmu_understand.py 通过 ImageTokenizer.encode_with_info() 得到 image token 和 grid_thw,加 offset 后调用 model.understand_image()。scripts/image_edit.py 对 source image 做 center crop/tokenize,再调用 model.edit_image(),最后走 decoder。
HF model custom code 中 generate_image() 会先把 requested image size 除以 2,因为 decoder 做 super-resolution;然后构造 image header,计算 image token grid 数 。normal mode 下,它用 “You are a text-to-image generation assistant.” system prompt 构造 conditional ids,并构造 <uncondition> ids 做 CFG;
thinking mode 下,先用 generate_bd() 生成 reasoning trace,要求其中出现 <boi>,再用 reasoning prefix 生成 image tokens。understand_image() 则把 img_header + image_tokens + eoi + question 输入 generate_bd(),返回 decoded text。edit_image() 构造三路条件:完整输入、uncondition text、uncondition image,用 cfg_text_scale 和 cfg_image_scale 做 editing guidance。
def released_generation_flow(model, tokenizer, prompt, model_path):
result = model.generate_image(
prompt,
image_h=1024,
image_w=1024,
steps=8,
cfg_scale=2.0,
use_sprint=True,
block_length=32,
)
image = decode_vq_tokens(
result["token_ids"], result["h"], result["w"],
model_path, "cuda", num_steps=8, decode_mode="decoder-turbo",
)
return image
def released_understanding_flow(model, tokenizer, pil_image, model_path):
tokens, h, w = encode_image_to_semantic_tokens(pil_image, model_path, model)
return model.understand_image(
tokens, h, w,
question="Describe this image in detail.",
steps=32,
gen_length=2048,
)
def released_editing_flow(model, pil_image, instruction, model_path):
tokens, h, w = encode_image_to_semantic_tokens(pil_image, model_path, model)
result = model.edit_image(
tokens, h, w,
instruction=instruction,
steps=8,
cfg_text_scale=4.0,
cfg_image_scale=0.0,
)
return decode_vq_tokens(
result["token_ids"], result["h"], result["w"],
model_path, "cuda", num_steps=8, decode_mode="decoder-turbo",
)Code reference:
main@fe6525e3(2026-05-13); HF custom model code25b364e9(2026-05-12) — pseudocode and mapping based on this commit/snapshot.
| Paper Concept | Source File | Key Class/Function |
|---|---|---|
| SigLIP-VQ image tokenization | encoder/image_tokenizer.py | ImageTokenizer.encode_with_info, VisionEncoder, VQVAEVectorQuantizer |
| Text-to-image inference | scripts/t2i_generate.py; HF modeling_llada2uni_moe.py | main, LLaDA2MoeModelLM.generate_image |
| Image understanding inference | scripts/mmu_understand.py; HF modeling_llada2uni_moe.py | encode_image_from_pil, LLaDA2MoeModelLM.understand_image |
| Image editing inference | scripts/image_edit.py; HF modeling_llada2uni_moe.py | LLaDA2MoeModelLM.edit_image, cfg_text_scale, cfg_image_scale |
| Diffusion decoder inference | decoder/decode.py, decoder/decoder_model.py | decode_vq_tokens, ZImageTransformer2DModel, LLaDA2UniImageDecode |
| SPRINT adaptive denoising | HF modeling_llada2uni_moe.py | _compute_confidence_scores, get_transfer_index_bd_adaptive, generate_bd, generate_bd_image |
| Runtime model constants | HF config.json | vocab_size=173568, image_token_offset=157184, num_experts=256, num_experts_per_tok=8 |
4. Experimental Setup (实验设置)
4.1 数据准备
Multimodal understanding 预训练数据来自 open-source image-captioning datasets,并补充四类专门数据。OCR data 使用 PaddleOCR pseudo-labels 与 Qwen3-VL refinement 构造百万级样本;grounding/counting data 来自 Objects365、RefCOCO 等,经过 detection confidence filtering 和 Qwen3-VL-235B-A22B verification,并把坐标归一化到 ;world knowledge/reasoning data 覆盖 general world knowledge、logical reasoning、mathematics;text-only data 来自 Ling2.0 和 LLaDA2.0,覆盖 general knowledge、code、mathematics。SFT dataset 约 60M samples,text-only 与 multimodal 的比例为 1:5,覆盖 single/multi-turn dialogues、single/multi-image scenarios、General VQA、Chart/Table QA、mathematical reasoning 等。
Image generation 数据从超过 200M web images 收集原始文本描述,并提高 human body 与 rendered text 图像比例。过滤流程分三步:metadata filtering 去掉短边小于 512 px 和高度压缩图像();aesthetics filtering 去掉 ArtiMuse score < 60 的图像;quality filtering 去掉 DeQA-Score < 4.0 的图像。过滤后保留 140M high-quality images。captioning 由 Qwen3-VL-235B-22B 完成,并保留原始 web text 中有信息量的实体知识。
Image editing 数据结合 X2Edit、OmniEdit、Nano-consistent-150k、Pico-Banana、UniWorld、StructVisuals、UnicEdit、CrispEdit,以及从 generation dataset 自动合成的高保真 editing pairs。Qwen3-VL-235B-22B 用于 quality control:先过滤无明显变化或有 artifact 的 failed samples,再根据真实视觉变化重写不准确/模糊 instruction。Interleaved data 来自 Koala36M video corpus:去掉 >30s 或 <10s clips;保留 aesthetic score >4.0 和 clarity >0.7 的 top 50%;motion score 必须 >4;整个 pipeline 删除约 75% raw data,得到 6M refined clips,每 5 秒采样帧,形成 2–6 frames 的 interleaved sequences。Reasoning-augmented data 来自 Flux-6M、Zebra-CoT、Weave,总计约 8M SFT samples。
4.2 训练 recipe
训练分三阶段。S0 Vision-Language Alignment 使用 Image Caption/Text 做理解数据、Text-to-image 做生成数据,generation resolution 从 256 过渡到 512,understanding max edge 为 800,训练 100B tokens,sequence length 8192。S1 Multi-task Pre-training 加入 Image Caption、Text、OCR、Grounding、Counting、Video Data、Multimodal VQA,以及 Text-to-image、Image Editing、Interleaved Generation;
generation resolution 512,understanding max edge 800,训练 210B tokens,sequence length 8192。S2 Supervised Fine-Tuning 使用 High-quality Multimodal VQA、High-quality Text QA、Interleaved Reasoning,以及 High-quality Image Generation、Image Generation with CoT、High-quality Image Editing、High-quality Interleaved Generation、Interleaved Reasoning;
generation resolution 512,经 diffusion decoder 输出到 1024;understanding max edge 800;训练 80B tokens;sequence length 从 8192 扩展到 16384。
论文没有在 released GitHub repo 中公开完整训练脚本、optimizer/LR/batch/GPU count 等 actual launch config。笔记中所有训练 token scale、resolution、sequence length 均来自论文 Table 1;released code 中可确认的是 inference path、model constants、decoder/tokenizer implementation 和 SPRINT sampling logic。
4.3 Baselines 与评测
Understanding 评测覆盖 21 个 multimodal benchmarks,分为 General VQA、reasoning、OCR/document understanding 和其他多模态任务。论文对比 specialist VLMs:Qwen2.5-VL-7B、LLaDA-V;以及 unified models:BAGEL、InternVL-U、Lumina-DiMOO、LLaDA-o。Generation 评测覆盖 GenEval、DPG-Bench、OneIG-EN、UniGenBench、CVTG-2K、WISE;baseline 包含 FLUX.1 [Dev]、Lumina-Image 2.0、Seedream 3.0、Qwen-Image、LongCat-Image、Z-Image、Emu3-Gen、HunyuanImage-3.0、NextFlow、InternVL-U、MMaDA、Lumina-DiMOO、LLaDA-o 等。Editing 评测覆盖 ImgEdit-Bench、GEdit-Bench、MICo-Bench,并对比 FLUX.1 Kontext、Step1X-Edit、Qwen-Image-Edit、Z-Image-Edit、BAGEL、OmniGen2、InternVL-U、Lumina-DiMOO。
Figure 6 解读:InterGen 是论文自建的 interleaved generation benchmark,包含 150 samples,用 Gemini-3 和 Qwen3-VL 作为 judge,评估 text coherence、text-image alignment、ID consistency。这个 benchmark 反映的是统一模型的“交错产出”能力,而不是单张图生成分数。
5. Experimental Results (实验结果)
5.1 Multimodal understanding
论文 Table 2 显示 LLaDA2.0-Uni 在多项 understanding benchmark 上达到 unified model 中较强水平。关键数值包括:MMMU val 50.1、MMMUPro standard 34.0、MathVista mini 68.1、MMStar 64.1、MMBench EN 81.5、MMBench CN 81.2、ChartQA 80.1、OCRBench 75.7、DocVQA 89.5、AI2D w mask 82.0。它不在每个单项都超过 specialist VLM,例如 Qwen2.5-VL-7B 在 DocVQA 为 94.9、OCRBench 为 84.2;但 LLaDA2.0-Uni 的重点是 unified setting 下仍能接近这些 specialized VLM,并明显优于部分 diffusion unified baselines 在 OCR/document 类任务上的弱项。
对于理解能力,最值得注意的是 OCRBench、DocVQA、ChartQA、AI2D 这些任务对 semantic visual tokens 的要求很高。如果使用 reconstruction VQ tokens,token 可能保留低层纹理但丢掉文字和结构语义;LLaDA2.0-Uni 在这些任务上的成绩说明 SigLIP-VQ 确实比 reconstruction-first tokenizer 更适合 VLM-style understanding。
5.2 Image generation
GenEval 上,LLaDA2.0-Uni 的 overall 为 0.89,单项为 Single Object 1.00、Two Object 0.98、Counting 0.73、Colors 0.92、Position 0.90、Attribute Binding 0.84。与 unified baselines 相比,它高于 BAGEL 0.82、InternVL-U 0.85、Lumina-DiMOO 0.88、LLaDA-o 0.86,并在 Position 上达到 0.90。DPG-Bench 上,LLaDA2.0-Uni overall 为 87.76,Global 91.14、Entity 93.55、Attribute 91.98、Relation 92.17、Other 93.18;高于 LLaDA-o 87.04、Lumina-DiMOO 86.04、InternVL-U 85.18、BAGEL 85.07。
OneIG-EN 上,LLaDA2.0-Uni overall 为 0.505,其中 Alignment 0.882、Text 0.661、Reasoning 0.323、Style 0.400、Diversity 0.259;论文指出它在 dense text generation 上仍落后 leading models,这是一个重要限制。UniGenBench 上,它的 overall 为 79.63,显著高于 BAGEL 61.53 和 Lumina-DiMOO 71.12;其中 Logic 63.99、Layout 90.30 是其强项。CVTG-2K text rendering 上,它的 Word Accuracy average 为 0.765,NED 为 0.911,CLIPScore 为 0.818;相较 BAGEL 0.356、InternVL-U 0.623、Lumina-DiMOO 0.590 的 Word Accuracy average,有明显优势。WISE 上,它的 overall 为 0.68,Cultural 0.54、Time 0.77、Space 0.82、Biology 0.79、Physics 0.87、Chemistry 0.60;论文还报告 reasoning mode 带来额外 10% improvement。
这些结果支持论文的主张:semantic tokens 没有让 generation 质量明显崩塌,diffusion decoder 能把 dLLM 输出的语义 token 还原为高质量图像。不过 OneIG text 子项和 conclusion 中的 visual detail limitation 也说明,semantic VQ 对 fine-grained visual detail 和 dense text 仍有弱点。
5.3 Image editing 与 multi-reference editing
ImgEdit-Bench 上,LLaDA2.0-Uni overall 为 3.92,高于 BAGEL 3.20、InternVL-U 3.67、Lumina-DiMOO 2.77;GEdit Benchmark 中,GEdit-EN 的 Semantic Consistency / Perceptual Quality / Overall 为 6.68 / 7.52 / 6.61,GEdit-CN 为 6.63 / 7.67 / 6.66。MICo-Bench multi-reference editing 上,LLaDA2.0-Uni overall 为 47.1,Object 51.0、Person 32.8、HOI 46.0、De&Re 54.4;明显高于 Qwen-Image-Edit 35.9、BAGEL 34.4、OmniGen2 33.8、Lumina-DiMOO 23.3。
Editing 能力验证了架构设计中的一个关键假设:同一组 semantic image tokens 可以既作为 source image understanding 输入,也作为 target image generation 输出。released edit_image() 的三路 CFG 构造也符合这个逻辑:完整条件保留 source image + instruction;uncond_text 去掉 instruction;uncond_img 去掉 source image;cfg_text_scale 和 cfg_image_scale 分别控制文本和图像条件强度。
5.4 Interleaved generation 与 reasoning
Figure 7 解读:interleaved generation 要求模型在同一回答中交替生成文本和图像,而不是先生成一段文本再外部调用 T2I pipeline。LLaDA2.0-Uni 通过统一 token 序列自然支持这种输出形式。InterGen benchmark 中,LLaDA2.0-Uni 的 overall 为 5.94,高于 Emu3.5 的 5.75;在 Story Telling 和 Time Series Forecasting 上更强,在 Explanation 上接近。
Figure 8 解读:interleaved reasoning 展示了棋局和物理题等需要多步推理的例子。论文把它视为初步探索,而不是成熟 benchmark 上的完全定量证明。它说明 dLLM 的 thinking trace 与 image token generation 可以在一个模型内衔接;HF generate_image(mode="thinking") 也实现了先生成 reasoning text,再定位 <boi> token 并继续生成 image tokens 的两阶段路径。
5.5 Ablations:SPRINT 与 Decoder Turbo
SPRINT ablation(Table 13)显示,在 AI2D、OCRBench、MathVista、ChartQA、DocVQA、MMMU、MMStar、GenEval、DPG 这 9 个 benchmark 的平均 score 上,baseline LLaDA2.0-Uni 为 76.3,+SPRINT 为 75.7,下降 0.6;平均 TPS 从 24.3 提升到 39.8,即 1.6×。具体来看,DocVQA TPS 从 8.0 到 27.6(3.5×),ChartQA 从 28.7 到 62.3,AI2D 从 19.5 到 42.9;但 OCRBench score 从 75.7 降到 73.4,DPG 从 87.76 降到 86.27。论文解释 OCRBench 对字符级精确度敏感, 可能过早接受尚未充分 refined 的 token;同时 SPRINT 在 MMMU 上反而从 50.1 提升到 52.5,在 ChartQA 从 80.1 提升到 81.0,说明 non-uniform schedule 有时会把更多 refinement budget 留给困难 token。
Decoder Turbo ablation(Table 14)显示,50-step Diffusion Decoder 的 speed 是 32.95 s/img,GenEval 0.89、DPG 87.76、UniGenBench 79.63、OneIG-EN 0.505、WISE 0.68;8-step Diffusion Decoder Turbo 的 speed 是 2.90 s/img,GenEval 0.87、DPG 87.24、UniGenBench 79.76、OneIG-EN 0.500、WISE 0.68。也就是说 decoder 侧实现 11.4× speedup,同时主指标几乎不变。这与 Figure 9 的视觉对比一致,是端到端实用性的核心证据。
5.6 Limitations and takeaways
作者明确列出三类未来方向。第一是 enhancing visual detail:SigLIP-VQ 语义强,但 fine-grained image details 保留不足,尤其会影响细节敏感的 editing。第二是 scaling interleaved capabilities:复杂 interleaved generation/reasoning 还需要更多训练数据和模型容量。第三是 reinforcement learning:作者已经开始探索 unified dLLM 的 RL,但性能优化仍有挑战,计划在后续版本中完善并释放。
整体结论是,LLaDA2.0-Uni 给出了一个强有力的统一范式:semantic discrete tokenizer 解决理解端语义不足,MoE dLLM 用 BDLM 统一多任务 token modeling,diffusion decoder 解决语义 token 到高保真图像的还原,SPRINT 和 Decoder Turbo 再补推理效率。它的局限也来自同一设计:semantic token 越偏理解,越需要强 decoder 才能恢复细节;统一模型越多任务,越依赖数据配比、MoE load balance 和长短序列 loss reweighting。对后续工作来说,这篇论文最值得借鉴的是 representation-first unification:先选择能同时服务理解和生成的视觉 token,再围绕该 token space 设计 backbone、decoder、training recipe 和 acceleration,而不是把已有 VLM 与 diffusion generator 事后拼接。