【论文分享】告别“-VL”拼装车时代:华科与美团 FVQ 如何用离散 Token 追平顶尖连续视觉大模型?

在当今的多模态大模型世界里,几乎所有主流模型都带着一个醒目的尾缀:“-VL”(Vision-Language,如 Qwen2.5-VL、Qwen3-VL、InternVL)。

但不知道你是否曾产生过这样一个疑问:为什么语言大模型(如纯文本的 Qwen、DeepSeek)从来不需要带什么奇怪的后缀,而一旦加上视觉,就非得搞成一个“-VL”的特殊拼装版本?

答案其实藏在底层最根本的数据形态鸿沟中:

  • 语言大模型(LLM)的本质是“纯离散的世界”:无论是汉字还是英语单词,在模型眼里全都是一个个带有固定编号的“整数积木”(Token ID,如 1024、3892)。大模型的全部魔力,都来自于最纯粹的“猜下一个积木编号是谁(Next-Token Prediction)”;
  • 视觉世界(Vision)却被当成了“连续的浮点小数”:目前绝大多数多模态模型,都是用一个外挂的视觉编码器(ViT)把图片扫描成一堆带小数点的高精度向量(连续浮点数,如 [0.3421, -1.0543, ...]),然后像打点滴一样硬生生灌进语言模型。

这种“外挂拼装”虽然看图能力极强,但却带来了巨大的遗憾:大模型能看图、能说话,却不能像写字一样自己画画,更无法像人类在草稿纸上勾勾画画那样实现“视觉思维链(Visual CoT)”。

学界一直梦寐以求的圣杯,叫做 “原生大一统多模态(Native Multimodal)”——把图片也切成离散的词语编号(离散 Token),让图片和文字在同一个字典里平起平坐!然而,长久以来的一个“思想教条”牢牢禁锢了这一探索:“离散化一定会带来量化误差,量化误差必定导致语义丢失,因此离散模型的理解能力永远不可能赶上连续模型。”

近日,来自华中科技大学(HUST)与美团 LongCat 团队(由第一作者邹佳侣、指导教师王兴刚教授等共同主导)联合发布了一篇具有里程碑意义的重磅论文:

“量化误差根本不决定语义保真度!只要给足有效比特预算,配合全新的‘因子化矢量量化(FVQ)’,纯离散视觉 Token 不仅能做到语义无损,而且在工业级多模态测试中,第一次全面追平甚至超越了当前最顶尖的连续模型 Qwen3-VL!”

在这篇分享中,我们将用最通俗易懂的语言、直观的代码透视和生动的比喻,彻底拆解这篇论文背后的思想颠覆、算法玄机,以及它对未来大模型演进的深远影响。

论文题目:Can Discrete Tokens Serve as Semantically Lossless Representations of Visual Signals?
作者团队:Jialv Zou, Xiaotong Li, Zhengrong Yue, Xu Huang, Yaxin Luo, Wenhao Yan, Haodong Li, Wenyu Liu, Xinggang Wang (华中科技大学, 美团 LongCat, 上海交大, 北大, 清华, 港中文, MBZUAI)
论文主页:https://doctor-james.github.io/FVQ-Page/
代码仓库:https://github.com/hustvl/FVQ
arXiv 链接:https://arxiv.org/abs/2610.37662
核心领域:Native Multimodal Foundation Models, Discrete Visual Representation, Factorized Vector Quantization (FVQ)
技术亮点:打破量化误差教条、有效比特预算缩放法则、16 组紧框架对称码本、首个全指标抗衡连续基线(Qwen3-VL)的纯离散多模态模型


01. 路线之争:连续“拼装车” vs 离散“纯血派”

为了看清这项研究的重大价值,我们首先需要理解多模态阵营内部的两条路线:

1
2
3
4
5
6
7
8
9
10
11
                      真实世界的图片(连续的光信号)
│
┌───────────────────────┴───────────────────────┐
▼ ▼
【路线 A:连续模型(如 Qwen3-VL、InternVL)】 【路线 B:离散模型(如 Emu3、Chameleon)】
保留连续性,用一串串浮点小数向量 把图片查视觉字典,强行转成整数编号
直接“外挂灌入”语言大脑 让图片完全伪装成文字 Token

现状: 现状:
✔ 画面细腻、OCR识字与细节极强 ✔ 架构高度纯粹,能读图也能像写字一样作画
✖ 拼装车架构,无法直接自回归画图 ✖ 历史痛点:细节损失严重,看图做题一塌糊涂

对于终端用户来说,用 Qwen3-VL 还是用 Emu3 聊天,表面上几乎没区别——都是传一张图、提个问题,模型给出文字回答。

但在模型深处,基因截然不同:

  • Qwen3-VL(连续模型):输入端把图片变成了 [0.3421, -1.0543, ...] 这种小数串;输出端却只有一个包含十多万汉字/英文单词的“离散词表”。这就导致它单向通达——大模型可以读入小数,但在输出端它只能做词表单选题,绝不可能凭空吐出一长串连续小数来无中生有地画图;
  • Emu3 / Chameleon(离散模型):输入端图片是字典编号,输出端也是字典编号。它的大脑不仅能看图,还能像敲代码一样,一个编号一个编号地把一幅画给“写”出来,甚至能在做几何题时自己在中间输出几个视觉编号(当草稿纸连辅助线)。

然而,离散模型的浪漫梦想过去一直被现实残酷打压:查字典会产生“量化误差(Quantization Error)”,一量化画面就丢细节,导致离散模型在文字识别(OCR)、图表推理和数学问答上被连续模型按在地上摩擦。


02. 颠覆教条:量化误差根本不等于语义损失

长期以来,AI 界的共识是:“连续向量是离散向量不可逾越的天花板(Upper Bound)”。大家都默认,量化误差越小,语义保留得越好。

但这篇论文的第一作者们做了一个极其颠覆性的实验:

1
2
3
4
5
6
【打破教条的反常识实验】
实验对比:
1. 标准单码本量化(VQ):
特征重构误差 MSE = 0.027 ──▶ 多模态理解均分:51.2%
2. 剥离粗糙轮廓后的奇数组残差量化(RVQ-Odd):
特征重构误差 MSE = 0.246 ──▶ 多模态理解均分:60.7% !!

发生了什么?
第二组实验的重构误差(MSE)暴增了将近 10 倍(9.1倍),肉眼看还原出来的特征变得极其失真,但是拿去让大模型回答图片问题时,理解准确率不仅没有暴跌,反而大幅暴涨了 9.5 个百分点!

为什么会这样?(简笔画比喻)
大语言模型去理解一张图片,根本不在乎还原出来的每个像素是不是分毫不差。它在乎的是:“这些编号能不能把猫和狗、文字笔画与背景清晰地区分开!”
就像你看一幅潦草的简笔画,画工和实物照片的重构误差巨大,但你一眼就能认出那是人、是车还是猫。像素误差极大,但核心语义完好无损!

第一性原理:真正起决定作用的是“有效比特预算”

数字世界里的任何信号本来就是由有限的比特(0 和 1)构成的。对于离散表示,每个图像切片(Patch)分配的信息容量(比特预算)公式为:

B=L×log⁡2CB = L \times \log_2 C

其中 LL 是码本(字典)的数量,CC 是每本字典里包含的词条数。

核心结论:只要每个图像切片分配的“有效比特预算”足够大,离散表达完全可以在语义上做到 “绝对无损”!


03. 算法解构:老方案为何饱和?FVQ 的 16 机位全景破局

既然只要增加比特预算(增加字典数量 LL)就行,那以前为什么没人做成?

1. 老方案的两大死胡同(高比特饱和瓶颈)

  • 残差量化(RVQ,剥洋葱):第 1 本字典抓主干,第 2 本抓残差,第 3 本抓残差的残差……剥到第 8、16 层时,剩下的全是无意义的噪点和高频杂质,新加的字典根本学不到有效语义;
  • 乘积量化(PQ,切黄瓜):把 1024 维特征横切成 16 段,每本字典只管一小段。切得越细,每个字典越是“盲人摸象”,丢失了跨通道的全局关联。
  • 结果:增加字典数量后,模型能力很快陷入停滞(饱和),死活赶不上连续模型。

2. FVQ(因子化矢量量化)的破局之术:多机位全景摄影

华科与美团团队提出了 FVQ(Factorized Vector Quantization),用三道极其优雅的数学与架构设计破解了死局:

1
2
3
4
5
6
7
8
9
10
                 【图像切片的 1152 维完整特征】
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
【机位 1】 【机位 2】 【机位 16】
(正面广角全景) (侧面广角全景) (俯视广角全景)
[144维投影] [144维投影] [144维投影]
│ │ │
▼ ▼ ▼
在【字典 1】查编号 在【字典 2】查编号 在【字典 16】查编号
  1. 全景滤镜(Dense Projections):不切片,也不剥洋葱!16 个字典对应的 16 个机位,每一个机位看到的都是原特征全部 1152 维的全局信息,维度保持 144 维不变。
  2. 紧框架正交约束(Tight-Frame Condition):投影矩阵满足 A⊤A=ρI\mathbf{A}^\top \mathbf{A} = \rho \mathbf{I}。这意味着 16 个机位从几何上是严格互补、360 度各向同性的,合并时可以完美、无损地还原原始空间,不偏袒也不丢失任何几何方向;
  3. 地位平等的对称字典(Symmetric Parallel Quantization):
    16 本字典完全对等,并行查表,没有尊卑之分。每一本字典都在实打实地承载高质量语义!

战果:随着字典增加到 16 本(每个切片 224 bit),FVQ 的性能一路飙升,彻底打破了天花板,第一次追平并超越了连续基线(65.3% vs 64.6%)!


04. 极简代码透视:16 本字典在 PyTorch 里究竟长什么样?

我们直接扒开其开源代码 src/fvq/quantizer.py,用一段极简的 Python 伪代码还原其核心工作流:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import torch
import torch.nn as nn

class FactorizedVQ_Simple(nn.Module):
def __init__(self, dim=1152, groups=16, group_dim=144, vocab_size=16384):
super().__init__()
self.groups = groups

# 1. 核心底牌:这就是那“16 本独立字典”!
# 每本字典都是一张 [16384 行, 144 列] 的大表格
self.codebooks = nn.ModuleList([
nn.Embedding(vocab_size, group_dim) for _ in range(groups)
])

# 2. 准备“16 个全景机位”(紧框架投影矩阵 R,通过 QR 正交分解生成)
self.R = nn.Parameter(torch.randn(groups, group_dim, dim), requires_grad=False)

def forward(self, x):
"""
输入 x: 图像切片的连续特征向量,形状 [1152]
"""
# 第一步:16 个机位同时拍照,投射到 16 个全局视角
views = torch.einsum("d, grd -> gr", x, self.R) # 形状变成 [16, 144]

token_ids = []
# 第二步:16 本字典并行查表,寻找欧氏距离最近的单词编号
for g in range(self.groups):
view_g = views[g] # 第 g 个视角拍到的 [144] 向量
table_g = self.codebooks[g].weight # 第 g 本字典 [16384, 144]

# 计算距离并找出最近的单词索引
dist = torch.sum((table_g - view_g) ** 2, dim=-1)
token_ids.append(torch.argmin(dist).item())

# 第三步:返回 16 个整数编号!
return token_ids

# 模拟运行:
fvq = FactorizedVQ_Simple()
fake_patch = torch.randn(1152)
result_ids = fvq(fake_patch)
print("输出的 16 个离散 Token 编号:", result_ids)
# 输出示例: [8142, 1029, 15401, 342, 9811, 74, ..., 13499]

原本带有大量高精度小数点的复杂图像切片,经过 FVQ 之后,被彻底洗练成了 16 个纯整数!大语言模型(如 Qwen3-8B)拿到这些整数,和拿到 16 个汉字文本 Token 毫无二致。


05. 训练底牌:乱码字典是如何练成绝世高手的?

刚初始化的 nn.Embedding(16384, 144) 只是显存里的一堆随机乱码,FVQ 是如何把它调教成语义辞海的?

1. 独立编纂期(1000 亿 Token 自监督重构)

在接入语言模型前,FVQ 经历了长达 100B tokens 的图像自监督特训:

  • 输入特征 ➔ FVQ 查字典 ➔ 逆向合成还原特征 ➔ 比较与原特征的重构差;
  • 冷知识:字典不靠反向传播更新! 源码中 requires_grad_(False),它采用 EMA(指数移动平均,类似在线 K-Means 聚类),让每个词条不断向所有选中它的特征重心挪动。

2. 源码彩蛋:死词复活机制(Dead Codebook Restart)

为防止某些词条初始化位置太偏僻而变成“僵尸词条”(Codebook Collapse),源码中设计了 _reset 函数:一旦检测到某词条长期无人翻牌,立刻抓取当前的鲜活图像特征强行覆盖,逼其“重新投胎”!

3. 架构真相:在 Transformer 上的视觉桥梁

在训练完成并 彻底封存(Freeze) 视觉分词器后,代码通过 FVQVLM 模块接入 Qwen3-8B:

  • 语言模型 Transformer 骨架原封不动,没有做任何结构性魔改;
  • 证明了:不需要改动 LLM 的底层架构,只要前置的视觉离散分词器足够保真,纯语言大脑就能直接吃透视觉信息!

06. 战力全开:工业级大考与跨模型泛化

研究团队在千亿级 Token 的工业规模多模态数据上进行了全阶段严格训练,并与学术界及工业界的各路豪杰展开正面对决:

1. 碾压离散多模态同门

在 9 项综合视觉语言基准测试的平均分上:

  • 比业内知名自回归模型 UniAR-8B 提高了 22.8%;
  • 比智源研究院的纯离散统一模型 Emu3-Chat-8B 提高了 59.2%!

2. 正面硬刚顶尖连续王者(Qwen3-VL-8B)

测试任务 / 数据集 连续旗舰 Qwen3-VL-8B 离散代表 Emu3-Chat-8B FVQ (本文离散模型)
数学推理 (MathVista) 77.2% 47.6% 77.4% (持平)
现实常识 (RealWorldQA) 71.5% 57.4% 72.0% (胜出)
学术图表 (CharXiv DQ/RQ) 83.0 / 46.4 36.8 / 14.1 86.1 / 49.3 (超越)
文档解析 (OmniDocBench ↓) 0.170 – 0.179 (持平)
OCR 基准 (OCRBench) 896 687 867 (大幅逼近)

3. 攻克极端 OCR“不可能三角”

过去离散模型最怕 OCR,但论文在极端测试中展现了惊人表现:

  • 21,253 × 3,912 超长表格:跨越两万多像素的长文档,精准定位并跨列聚合;
  • 极密集手写试卷:微小、歪斜、不规则的手写勾选与批注精准提取;
  • 5,000+ 字超高密度排版单页:实现全页一字不差的长程文字转写。

4. 跨编码器普适泛化

将 FVQ 迁移至其他顶尖视觉底座上,性能同样迎来跃升:

  • 在月之暗面 MoonViT-v2 上,均分从单码本的 38.7 飙升至 61.1;
  • 在谷歌 SigLIP2 上,均分从 44.7 暴涨至 53.9。
  • 证明了“有效比特预算定律”是普适的视觉底层规律,绝非单一模型的个别特例。

07. 终局思辨:当离散 Token 抹平差距,未来走向何方?

这项研究带给整个 AI 工业界的影响是深远且具颠覆性的:

1. “-VL” 后缀的黄昏与终极大一统

当纯离散 Token 彻底摆脱了“画质失真、理解力差”的原罪,多模态模型就不再需要用“外挂 ViT 连续向量”来做妥协过渡。未来的 Qwen4、DeepSeek-V5、GPT-5,完全可能在诞生之日就是一个天生包含图、文、音统一离散字典的原生大模型。“-VL” 作为技术不成熟时期的过渡名词,终将功成身退。

2. 解锁真正的“多模态思维链(Visual CoT)”

人类解几何题、下围棋、设计电路时,一定会拿笔在草稿纸上画图打草稿。连续模型因为输出端无法吐出连续向量,做不到这一点;而全离散模型可以直接在推理文本的中间吐出几个视觉 Token(画出辅助线或结构草图),边画边想,实现认知维度的重大跨越。

3. 客观审视:工业落地前的最后硬骨头

虽然 FVQ 证明了语义无损,但要全面替代当下的连续管线,工业界仍需解决:

  • 序列长度膨胀:每个 patch 产生 16 个索引,高分辨率下的 Token 数量极多,如何进一步优化上下文推理开销?
  • 工程生态惯性:现有大厂的 TensorRT-LLM、vLLM 推理加速卡位均深度绑定连续视觉架构,全离散推理生态的重构仍需时日。

结语:穿透数学符号的面纱,直面知识平权

正如很多初读这篇论文的朋友所感叹的那样:面对论文里铺天盖地的紧框架条件 A⊤A=ρI\mathbf{A}^\top \mathbf{A} = \rho \mathbf{I}、QR 正交分解、码本 EMA 更新公式,常常让人望而生畏、产生强烈的智力挫败感。

但当我们一层层剥开那些高密度的数学压缩符号,你会发现它的物理思想是如此朴素、纯粹而优美:无非就是让 16 个视角互补的摄像机,平起平坐地把现实世界翻译成一本厚度刚刚好的字典而已。

这或许也是当今大模型时代最动人的底色——知识平权。曾经深锁在象牙塔密室里的数学公式与前沿论文,终于在生动的交互与拆解中,褪去了高冷的外衣。只要你心怀好奇、敢于探问事物运行的底层第一性原理,前沿科学的壮丽画卷,便永远向每一个求知者敞开大门。