DualToken: Towards Unifying Visual Understanding and Generation with Dual Visual Vocabularies¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=BpgCOFefcE
代码: 项目页见论文(Project page available)
领域: 多模态 / 统一视觉理解与生成
关键词: 统一视觉 Tokenizer, 双视觉码本, 自回归多模态, SigLIP, 残差量化
一句话总结¶
DualToken 把"理解要语义、生成要像素"这对天然冲突的目标,沿 ViT 的浅层/深层结构解耦开来——浅层学重建得到像素码本、深层学语义得到语义码本,在单一 tokenizer 里同时拿到 0.25 rFID 和 82.0% 零样本精度,并让一个纯自回归 MLLM 同时把图看懂和画好。
研究背景与动机¶
领域现状:把视觉理解和生成统一进 LLM 的纯自回归(AR)范式,比"LLM 外接扩散模块"更简洁、端到端。Chameleon、Emu3 等证明了可行性:图像先被 tokenizer 离散成 visual token,与文本 token 交错成多模态序列,用 next-token prediction 统一建模。
现有痛点:纯 AR 路线的视觉理解能力明显弱于专用 MLLM。根因在视觉表征——传统 VQ-VAE 只为重建优化,token 保留低层外观却缺高层语义;而理解任务依赖的 CLIP/SigLIP 编码器经文本对齐天生编码高层语义,却很难解码回像素空间做生成。
核心矛盾:一个直觉做法是把 CLIP 特征量化后再训一个解码器做重建(VILA-U 路线),但重建目标和语义目标直接塞进同一个码本会互相打架:重建出现严重扭曲模糊,零样本分类、图文检索等语义指标也明显下滑(如直接合并后零样本从 83.2 掉到 72.3、rFID 高达 3.86)。
本文目标:在单一 tokenizer、单一连贯 token 空间内同时支撑理解与生成,既不外挂两个异构编码器,又不让两个目标互相拖累。
核心 idea:分而治之的双视觉词表——不强迫一个码本同时背下外观和语义,而是借鉴人类视觉系统的层级结构,把 ViT 按层间余弦相似度切成浅/中/深三段,让浅层特征负责重建、深层特征负责语义,从而在统一架构里自然导出一个像素码本和一个语义码本。
方法详解¶
整体框架¶
DualToken 分两层:一是统一视觉 tokenizer,用一个 SigLIP 主干同时产出像素码本(浅层)与语义码本(深层);二是统一 MLLM 架构,把双码本 token 沿 embedding 维拼接后送进 LLM,用残差深度 Transformer 的"像素头 + 语义头"做自回归预测。关键洞察来自一个观察实验:SigLIP 浅层按颜色纹理聚类、深层按语义聚类,恰好对应生成与理解两类下游需求。
flowchart LR
IMG[输入图像] --> ViT[SigLIP ViT 主干]
ViT -->|浅层 1-6| PQ[像素量化器 RVQ]
ViT -->|深层 26| SQ[语义量化器 RVQ]
PQ --> PC[像素码本<br/>低层外观]
SQ --> SC[语义码本<br/>高层语义]
PC --> DEC[视觉解码器→重建图像]
PC --> CAT[沿 embedding 维拼接]
SC --> CAT
CAT --> LLM[LLM 自回归]
LLM --> PH[像素头 depth-T]
LLM --> SH[语义头 depth-T]
关键设计¶
1. 层级解耦的双目标监督:让浅层背重建、深层背语义。 本文先验证一个长期被假设却没被正式证明的论断——在 LLaVA-1.5 框架下把视觉编码器换成纯重建训练的编码器,理解指标(MMB、MME、SEED)断崖式下跌,证明高层语义对 MLLM 推理比低层感知更关键。但要在同一模型里既理解又生成,又必须能解码回像素。DualToken 的破局点是按层间余弦相似度把 ViT 切段(亮方块出现在 1–7 层和 8–17 层),观察到浅层按纹理颜色聚类、深层按语义聚类,于是把重建损失只施加到浅层(1–6 层)、语义损失只施加到深层(第 26 层)。语义损失约束最终层特征 \(F\) 不偏离其预训练初值 \(F_0\):\(\mathcal{L}_{sem} = -\cos(F, F_0) + \|F - F_0\|_2^2\),无需额外对比学习阶段就能保住语义;重建损失则是像素 L2 + LPIPS + 对抗损失之和:\(\mathcal{L}_{recon} = \|\hat{x}-x\|_2^2 + \lambda_p \mathcal{L}_{LPIPS}(\hat{x},x) + \lambda_g \mathcal{L}_{G}(\hat{x})\)。消融表证明:浅层加重建(实验 c)和"浅层重建 + 深层语义"(实验 d)的 rFID 几乎一致(0.29 vs 0.25),说明深层加语义监督不会污染浅层重建,冲突被真正化解。
2. 双码本的分离式残差量化。 浅层与深层特征各自独立经残差向量量化(RVQ,沿用 RQ-VAE)离散化,得到像素码本与语义码本两套词表,而非 TokenFlow 那样用"共享映射"硬凑一个共享 ID。为让编码器输出贴近码本条目,对每个量化器加 VQ commitment 损失 \(\mathcal{L}_c = \|z - \text{quantize}(z)\|_2^2\)。总损失是三项加权和:\(\mathcal{L}_{total} = \lambda_1 \mathcal{L}_{recon} + \lambda_2 \mathcal{L}_{sem} + \lambda_3 (\mathcal{L}_{c1} + \mathcal{L}_{c2})\)。本文论证这比 TokenFlow 的共享映射更优——共享 ID 对语义和纹理都未必是最优匹配,反而两边都引入额外损失;分离码本则让两类视觉信息各得其所。
3. 双 token 进 MLLM:拼接式输入 + 双头深度 Transformer 输出。 像素 token 与语义 token 先各过一个 2 层 MLP 投影对齐 LLM 维度,再沿 embedding 维拼接成统一视觉 token(不增加序列长度),与文本 token 交错构成多模态序列做 next-token prediction。由于 RVQ 在每个视觉位置堆叠了深度残差码,输出侧为像素和语义各设一个独立视觉头(pixel head / semantic head),均由 3 层深度 Transformer 构成。给定位置 \(p\) 的 LLM 隐状态 \(h_p\),深度 Transformer 自回归预测 \(D\) 个残差 token,深度 \(d\) 的输入为前 \(d-1\) 个 token 嵌入之和 \(I_{pd} = \sum_{d'=1}^{d-1} e(r_{pd'})\)(\(d=1\) 时 \(I_{p1}=h_p\))。视觉位置的对数似然同时累加两套码本:\(P_i = \sum_{d=1}^{D}[\log P(y_{id}|y_{i,<d}) + \log P(z_{id}|z_{i,<d})]\)。这一设计带来双向增益:像素 token 不只用于生成,其细粒度低层特征还增强了理解;语义 token 不只用于理解,还在自回归生成时充当正向监督,让生成图像语义更对齐。
实验关键数据¶
主实验(Tokenizer:语义 vs 重建,与 SOTA 对比)¶
| 方法 | Zero-Shot↑ | T2I R@1↑ | I2T R@1↑ | rFID↓ | PSNR↑ | SSIM↑ |
|---|---|---|---|---|---|---|
| SigLIP-So/14-384(纯语义) | 83.2 | 21.7 | 21.6 | ✗ | ✗ | ✗ |
| SBER-MoVQGAN(纯重建) | ✗ | ✗ | ✗ | 0.68 | 27.04 | 0.741 |
| VILA-U (So/14-384) | 78.0 | - | - | 1.25 | - | - |
| UniTok | 78.6 | - | - | 0.38 | 25.34 | - |
| DualToken (So/14-384) | 82.0 | 21.5 | 21.6 | 0.25 | 28.69 | 0.744 |
DualToken 在零样本精度上逼近纯语义 SigLIP、在 rFID 上超过专用重建模型,同时碾压 VILA-U(理解 +、重建无扭曲),且只用了 VILA-U 约 10% 的预训练数据。
消融(层级解耦化解冲突,SigLIP-So/14-384)¶
| # | 学习目标(层) | Zero-Shot↑ | rFID↓ | PSNR↑ | SSIM↑ |
|---|---|---|---|---|---|
| (a) | Recon.(26)+Sem.(26) 同层硬合 | 72.3 | 3.86 | 12.64 | 0.574 |
| (b) | Recon.(26) only | ✗ | 0.27 | 27.88 | 0.722 |
| (c) | Recon.(6) only | ✗ | 0.29 | 28.12 | 0.745 |
| (d) | Recon.(6)+Sem.(26)(本文) | 82.0 | 0.25 | 28.69 | 0.744 |
(a) vs (d) 是核心证据:同层硬合两目标重建崩坏(rFID 3.86)、语义大跌(72.3);层级解耦后两项指标都回到最优。
理解任务(LLaVA-1.5 框架,10 个 benchmark 均值)¶
| 视觉编码器 | MMB | MME | SEED | POPE | OCRB | AVG |
|---|---|---|---|---|---|---|
| SigLIP-L/16-256(连续) | 60.9 | 62.9 | 56.4 | 80.3 | 26.3 | 52.8 |
| VILA-U | 55.3 | 53.8 | 51.2 | 78.2 | 23.8 | 48.1 |
| DualToken(仅语义) | 59.8 | 63.0 | 56.2 | 79.4 | 24.6 | 52.2 |
| DualToken(语义+像素) | 61.3 | 64.6 | 57.2 | 83.0 | 29.2 | 53.9 |
关键发现¶
- 双码本化解冲突:层级解耦同时拿下重建与语义 SOTA,且仅用 VILA-U 10% 数据。
- 统一架构 > 拼两个异构编码器:DualToken 作为单一架构胜过直接拼 VQGAN+CLIP 的方案,更简洁也更强。
- 双 token 互相促进:像素 token 给理解补低层细节(语义+像素均值 53.9 > 仅语义 52.2),语义 token 给生成当正向监督(GenAI-Bench 相对 VILA-U +13%)。
亮点与洞察¶
- 把"该用哪种特征"的问题转译成"该用 ViT 的哪一层",从机理上而非靠 loss 配比硬调来化解冲突,优雅且可解释。
- 先用 LLaVA-1.5 控制实验正式验证了"语义特征对 MLLM 理解比感知特征更关键"这个长期默认却没人证过的论断,立论扎实。
- 拼接式双 token 不增加序列长度,工程上对 AR 序列友好,避免了 token 翻倍的算力代价。
局限与展望¶
- 浅/深层划分依赖对特定 SigLIP 主干的余弦相似度分析(1–6 层重建、26 层语义),换主干需重新定位层段,自动化程度有限。
- 评测集中在 ImageNet 重建/零样本与常见理解 benchmark,对复杂长文本生成图、细粒度可控生成等更难场景的覆盖有待扩展。
- 仍是两套独立码本 + 两个视觉头,相比真正单一词表的文本 tokenizer,统一度还有提升空间。
相关工作与启发¶
- VILA-U / MUSE-VL:单码本联合训重建+语义,因目标冲突两边都不够好——本文的反面教材与主要对标。
- TokenFlow:用分离码本 + 共享映射,但依赖异构双塔且共享 ID 非最优匹配;DualToken 用统一主干 + 分离量化避开这两点。
- FQGAN:提出分治式码本分解思想,为本文"双视觉词表"提供理论支撑。
- RQ-VAE:残差量化与深度 Transformer 头的来源,被本文复用为双头输出结构。
评分¶
- 新颖性: ⭐⭐⭐⭐ — "按 ViT 层级解耦重建与语义"的视角新颖且自洽,把冲突问题转成结构问题。
- 实验充分度: ⭐⭐⭐⭐ — tokenizer/理解/生成三线齐全,消融精准切中冲突机理,且强调 10% 数据量优势。
- 写作质量: ⭐⭐⭐⭐ — 动机—验证—方法—消融链条清晰,图表(Fig.2/3/4)有效支撑论证。
- 价值: ⭐⭐⭐⭐ — 为纯 AR 统一视觉-语言模型提供了实用的 tokenizer 方案,对后续统一多模态工作有直接借鉴意义。