SemHiTok:语义引导的层级码本,统一多模态理解与生成
自回归模型在 NLP 上的成功,让研究者们开始思考:能否用一套统一的 next-token prediction 框架同时做多模态理解和生成?关键瓶颈在于图像 tokenizer——理解任务需要语义特征("这是什么"),生成任务需要像素特征("长什么样"),而两者几乎天然矛盾。
之前的方案可以分成几类:VILA-U #Wu et al., 2024c 把语义对齐损失和像素重建损失混在一起联合优化,但两个目标互相打架,总是妥协到次优解;SDE #Xie et al., 2025 进一步解耦编码器但仍保留混合码本;TokenFlow #Qu et al., 2024 用双码本加共享映射做并行投票,仍然摆脱不了联合训练的魔咒;Janus #Wu et al., 2024a 干脆用两套独立编码器各干各的,但混合任务处理起来很别扭。
先看一组对比实验(论文 Table 6),揭示问题的本质#Chen et al., 2025:
| 实验 | 结构 | 训练 | GQA↑ | MME-P↑ | SEED-Bench↑ | rFID↓ | Usage |
|---|---|---|---|---|---|---|---|
| Exp 1 (SDE) | 耦合 | 联合 | 58.0 | 1240.0 | 56.7 | 3.78 | 92.9% |
| Exp 2 | 解耦 | 联合 | 57.8 | 1357.4 | 55.3 | 3.22 | 45.9% |
| Exp 3 (拼接) | 独立 | 分阶段 | 58.7 | 1210.9 | 56.1 | 2.19 | 97.0% |
| Exp 4 (SemHiTok) | 层级 | 分阶段 | 60.3 | 1355.8 | 62.9 | 1.42 | 93.7% |
这组实验说明几个关键事实:
- 联合训练 + 耦合结构 = 最差(Exp 1):SDE 的做法,两个方向都做得不好
- 解耦结构救不了联合训练(Exp 2):虽然结构分开了,但联合训练导致 codebook usage 崩塌到 45.9%,说明语义和像素目标在梯度层面互相干扰
- 简单拼接 ≠ 统一(Exp 3):两个独立预训练的 tokenizer 拼起来,重建好但理解性能明显下降(MME-P 从 1355.8 跌到 1210.9),因为原始像素特征干扰了语义对齐
- 层级 + 分阶段 = 最优(Exp 4):在所有维度上取得最佳平衡
那为什么层级结构能做到这一点?这源于一个更底层的观察。
同一语义 code 下的像素块具有内在的像素相似性#Chen et al., 2025。这意味着:如果已知一个 patch 属于哪个语义 code,那么它的像素特征大概率分布在一个很窄的子空间内,而不是全局像素空间中的任意位置。SemHiTok 利用这一点,为每个语义 code 构建一个专属的 pixel sub-codebook,把全局量化问题分解成 K 个更简单的局部量化问题。
SemHiTok 的架构可以用三层来概括:语义分支 → SGHC 层级量化 → 像素解码器。
语义分支
输入图像 $X \in \mathbb{R}^{H \times W \times 3}$ 经过冻结的文本对齐图像编码器(SigLIP,即 Sigmoid Language-Image Pre-Training)#Zhai et al., 2023,提取连续语义特征:
通过 EMA VQ 量化到语义码本 $\mathcal{C}_{\text{sem}} = \{c_1, \ldots, c_K\}$:
语义解码器将量化后的特征映射回语义空间,通过语义蒸馏损失训练:
Cosine 损失对齐方向,L1 损失约束距离,两者配合让语义码本精确捕捉 SigLIP 的语义空间。
SGHC:语义引导的层级码本
这是 SemHiTok 的核心创新#Chen et al., 2025。SGHC 的结构很简单:
- 语义码本有 $K$ 个码字(默认 $K = 16384$)
- 为每个语义码字分配一个专属的 pixel sub-codebook,各含 $m$ 个码字(默认 $m = 12$)
- 当某个 patch 的语义 code 确定为 $k$ 时,像素量化只在第 $k$ 个 sub-codebook 内进行
量化后的语义特征和像素特征沿通道维度拼接(不是序列长度维度),形成统一的离散表示,输入像素解码器重建图像#Chen et al., 2025。消融实验表明通道拼接优于序列拼接(rFID 1.42 vs 1.45),因为通道拼接保持了空间结构的完整性。
像素分支
像素编码器提取像素级特征,在 SGHC 选定的 sub-codebook 内量化后,与语义特征拼接。像素重建损失包括:
其中 $\mathcal{L}_{\text{img}} = \ell_1(\hat{X}, X)$ 为像素重建损失,$\mathcal{L}_c$ 为码本学习损失,$\mathcal{L}_{\text{per}}$ 为感知损失,$\mathcal{L}_{\text{GAN}}$ 为对抗损失 #Chen et al., 2025。
VQ 码本更新使用 commitment loss:
辅助模块
- Dual MLP:增强多层次特征建模,让理解任务能同时利用语义和像素两个层级的信息。消融实验显示加入 Dual MLP 后理解性能甚至超过纯语义码本。
- Enhanced Decoder:将像素解码器扩大到 ViT-Large,进一步提升重建保真度。
接入统一 MLLM
SGHC 通过简单的 flatten 操作接入 next-token 范式:将 $K$ 个 sub-codebook 的 $m$ 个码字按序展开为单一 vocabulary(总大小约 $K \times m \approx 196\text{k}$),在 LLM vocabulary 中添加特殊 token $\langle \text{IMG}_i \rangle$ 表示每个图像 code。理解时用语义特征(通过 adapter),生成时用完整 token 序列。
SemHiTok 的训练策略和它的架构一样,遵循分阶段、解耦的哲学。整个训练分为三个阶段:语义码本训练 → 像素分支训练 → 统一 MLLM 训练。
阶段一:语义码本训练
| 配置 | 值 |
|---|---|
| 语义编码器 | SigLIP(冻结) |
| 码本大小 $K$ | 16384 |
| 码本维度 | 32 |
| 训练数据 | COYO-700M 的 50M 子集 |
| 训练轮次 | 1 epoch |
| 学习率 | 1e-4,batch size 256 |
| 码本更新 | EMA VQ(非梯度更新) |
这一步的目标很简单:让语义码本精确复现 SigLIP 的语义空间#Zhai et al., 2023。编码器冻结不动,只训练码本和解码器。EMA VQ 的好处是更新更稳定,不会出现梯度更新中常见的码本坍塌问题#Chen et al., 2025。
阶段二:像素分支训练
像素编码器预训练:先在 ImageNet 上训练 ViT-Base,再在 50M COYO 上微调(遵循 LlamaGen 设置),获得良好的像素特征提取能力。 SGHC 训练:冻结语义码本,训练像素分支和所有 sub-codebook。关键点——语义码本完全不动,新增的像素信息不会污染已经学好的语义空间。 增强解码器微调:将像素解码器扩大到 ViT-Large,在 20M COYO + 20M MidJourney 风格合成数据上微调,进一步提升重建保真度。分阶段的核心优势
对比实验(Table 6)中,Exp 2(相同 SemHiTok 结构但联合训练)的 codebook usage 崩塌到 45.9%,而 Exp 4(分阶段训练)保持 93.7%#Chen et al., 2025。联合训练时语义和像素目标在梯度层面互相干扰,导致大量码字不被使用;分阶段训练彻底避免了这个问题。
阶段三:统一 MLLM 训练
| 配置 | 值 |
|---|---|
| 语言 backbone | Qwen2.5-7B-Instruct |
| 预训练数据 | 3.5M 语言 + 10M 图文对 + 15M MidJourney 合成 |
| 微调数据 | 1M 语言 + 4M 生成 + 4M 理解(Emova + LLaVA-SFT) |
| 训练成本 | 32×A800 × 7 天(MLLM),32×V100 × 3 天(tokenizer) |
| 生成推理 | classifier-free guidance scale = 2.5 |
训练数据中一个值得注意的设计:MidJourney 风格合成数据同时出现在 tokenizer 阶段和 MLLM 阶段,占比不小。这说明高质量的风格化数据对提升生成多样性至关重要。
图像重建
| 模型 | 分辨率 | 压缩比 | Vocab 大小 | rFID↓ | Usage |
|---|---|---|---|---|---|
| LlamaGen | 256 | 16× | 16384 | 2.19 | 97% |
| VAR | 256 | 16× | — | 1.00 | — |
| VILA-U | 256 | 16× | 16384 | 2.47 | — |
| SDE | 256 | 16× | 16384 | 2.87 | — |
| TokenFlow | 256 | 16× | 32768 | 1.37 | — |
| SemHiTok | 256 | 16× | ~196k | 1.16 | 93.7% |
| TokenFlow | 384 | 14.2× | 32768 | 0.63 | — |
| SemHiTok | 384 | 14.2× | ~196k | 0.66 | — |
384 分辨率下 rFID 0.66,与 TokenFlow 的 0.63 基本持平。256 分辨率下 1.16,在统一 tokenizer 中领先。需要注意的是 SemHiTok 的 vocabulary 规模约 196k($K \times m = 16384 \times 12$),虽然看似很大,但层次化结构意味着实际搜索空间是线性的(先 $K$ 路语义选择,再 $m$ 路像素选择),比 VILA-U (RQ) 的组合搜索空间 $N^D$ 要小。
多模态理解(LLaVA-v1.5,离散 SOTA)
| 方法 | 分辨率 | SEED-Bench↑ | MMBench↑ | MME-P↑ | MMMU↑ |
|---|---|---|---|---|---|
| LLaVA-1.5(连续) | 336 | 58.6 | 64.4 | — | — |
| EMU3(离散) | 512 | — | — | — | — |
| VILA-U(离散) | 256 | 59.2 | — | 1267.8 | — |
| TokenFlow-XL(离散) | 384 | 79.8 | 75.2 | 1512.8 | — |
| SemHiTok (256) | 256 | 69.7 | 72.3 | 1449.0 | — |
| SemHiTok (384) | 384 | 79.8 | 75.2 | 1512.8 | 41.0 |
在离散 tokenizer 中达到 SOTA #Chen et al., 2025。384 分辨率下 SemHiTok 和 TokenFlow-XL 在 SEED-Bench 和 MMBench 上打平(79.8 / 75.2),MME-P 也持平(1512.8)。
统一 MLLM(理解 + 生成)
集成到统一 MLLM 后,SemHiTok 在两个方向上都展现了强性能:
- 理解:在 Und&Gen. Discrete 类别中大多数指标 SOTA,MMMU 上比 ShareGPT4V 高 3.8 分
- 生成:MJHQ-30K gFID 5.40(256 分辨率),创下自回归图像生成的新 SOTA,甚至超越部分扩散专家模型(SDXL、SD v2.1)
- GenAI-Bench:Basic 0.83、Advanced 0.64,与 Liquid 等专门化生成模型相当
消融实验
消融实验揭示了各模块的具体贡献:
| 模块 | rFID 变化 | 理解影响 | 说明 |
|---|---|---|---|
| 语义码本(基线) | — | — | 仅语义,无像素重建能力 |
| + SGHC | 3.17→1.42 | 几乎无影响 | SGHC 带来巨大重建提升,不损害语义 |
| + Dual MLP | — | 超过纯语义码本 | 多层次特征建模提升理解 |
| + Enhanced Decoder | 进一步提升 | — | 更大解码器 → 更好重建 |
最重要的发现:引入 SGHC 后 rFID 降低了 1.75,但理解性能几乎不受影响。这验证了层级设计的核心假设——在冻结的语义码本之上添加像素信息,不会破坏已建立的语义空间。
层级 vs 并行:两种统一哲学
| 维度 | TokenFlow | SemHiTok |
|---|---|---|
| 码本结构 | 双码本并行 | 层级码本(语义→像素) |
| 统一方式 | 加权距离投票选同一索引 | 语义 code 索引 sub-codebook + 通道拼接 |
| 训练策略 | 联合训练 | 分阶段训练 |
| vocabulary 大小 | K(共享索引) | ~K×m(flatten) |
| 核心哲学 | "统一索引,不统一特征" | "语义引导,层次分解" |
| 384 rFID | 0.63 | 0.66 |
TokenFlow 更优雅——单索引即可同时获取两种特征,vocabulary 更紧凑。SemHiTok 更解耦——分阶段训练避免了目标冲突,但代价是更大的 vocabulary。两者性能接近,但在不同的设计约束下做出了不同的选择。
局限性
- 生成效率低:256 分辨率需要 256 个 token,效率低、计算成本高。这是所有基于空间 grid 量化方法的共同瓶颈,也是 1D Tokenizer 研究方向的直接动机
- 未探索 CoT 等后训练技术:在多模态推理任务中还有提升空间
- Vocabulary 规模:196k 的 flatten vocabulary 虽然搜索是线性的,但对 LLM 的词表大小和 embedding 层参数有影响
个人启发
- "先冻结再追加"的训练哲学:分阶段训练在多目标场景下的优势不仅体现在 SemHiTok——它是一个通用的工程原则。当你有多个可能冲突的优化目标时,先确保一个做到位,再冻结它,然后在它的基础上追加另一个。这比联合优化更稳定。
- 从观察到设计的完整链条:作者的可视化观察(同一语义 code → 相似像素块)→ VRR 量化验证 → SGHC 设计,是一个"从现象到机制到工程"的完整研究链条,值得在论文写作中模仿。
- 与 1D Tokenizer 的关系:论文未来方向明确提到"一维序列化图像 tokenizer"。SemHiTok 的层级设计天然适配 1D 序列化——语义 token 作为"前缀"引导后续像素 token 的生成。这是一个值得关注的研究方向。
参考来源
- Chen, Z. et al. (2025). SemHiTok: A Unified Image Tokenizer via Semantic-Guided Hierarchical Codebook for Multimodal Understanding and Generation. ICLR 2026. arXiv:2503.06764(代码与模型权重待论文接收后开源)
- Qu, Q. et al. (2024). TokenFlow: Unified Image Tokenizer for Multimodal Understanding and Generation. arXiv:2412.03069
- Wu, Y. et al. (2024a). Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation. arXiv:2404.16061
- Wu, Y. et al. (2024c). VILA-U: Towards a Unified Foundation Model for Visual Language and Generation. arXiv:2409.04429
- Xie, T. et al. (2025). SDE: Semantic-Decoupled Encoder for Unified Image Tokenizer. arXiv:2503.07605
- Zhai, X. et al. (2023). Sigmoid Loss for Language Image Pre-Training (SigLIP). ICCV 2023. arXiv:2303.15343
- Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML 2021. arXiv:2103.00020
- Esser, P. et al. (2021). Taming Transformers for High-Resolution Image Synthesis (VQGAN). CVPR 2021. arXiv:2012.09841
- Wei, Y. et al. (2022). Vector Quantized Image Modeling with Improved VQGAN (VQKD). ICLR 2023. arXiv:2210.05046