视觉BPE统一多模态理解-北大
核心目标: 解决图像和文本两种模态的根本性差异,让模型能像处理文本一样“自然地”处理图像信息,从而实现真正的“统一”理解和生成。
文本BPE(Byte Pair Encoding,字节对编码)是自然语言处理(NLP)中广泛使用的一种分词算法,核心目标是将文本拆分为有意义的子单元(token)。
BPE要解决什么问题
- 传统分词方法(如按空格分割)无法处理未登录词(如"ChatGPT")或复杂形态(如"unfriendly"拆为"un-friendly")。
- BPE通过统计合并高频字符对,自动生成一个自适应词表,平衡词表大小与语义粒度。
BPE工作原理
步骤1:基础拆分
将文本拆分为最小单元(如字母、标点):
"low" → ["l", "o", "w"]
,"lower" → ["l", "o", "w", "e", "r"]
步骤2:统计字符对频率
统计相邻字符对的出现次数。例如:
("l", "o")
出现2次(在"low"和"lower"中)("o", "w")
出现2次
步骤3:合并最高频字符对
选择频率最高的字符对合并为新token:
- 合并
("l", "o")
→ 新token"lo"
- 更新文本表示:
"low" → ["lo", "w"]
,"lower" → ["lo", "w", "e", "r"]
步骤4:迭代合并
重复步骤2-3,直到达到目标词表大小。例如:
- 合并
("w", "e")
→"we"
(若高频) - 最终"lower"可能变为
["lo", "we", "r"]
BPE的优势
- 压缩词表:用较少的token覆盖更多词汇(例如将"ing"、"ed"作为独立token)。
- 处理未知词:通过子词组合表达新词(如"ChatGPT" →
["Chat", "G", "PT"]
)。 - 保留语义:常见前缀/后缀(如"un-“、”-ly")会被识别为独立单元。
北大提出的视觉BPE正是受此启发:
- 文本BPE:合并高频字符对 → 生成文本token
视觉BPE:合并高频视觉块+空间关系 → 生成视觉token - 统一目标:让图像和文本都用离散token序列表示,消除模态差异(如图像不再用连续向量,文本不再用独立分词)。
关键区别:文本BPE仅统计频率,而视觉BPE增加了空间一致性约束(如"眼睛"和"鼻子"的稳定相对位置),使生成的视觉token更具结构性。文本BPE是NLP的基石技术,通过数据驱动的字符合并构建自适应词表;而北大将其思想扩展到视觉领域,实现图文在token层面的统一表示,为多模态模型提供新思路。
传统主流方法的局限(如LLaVA):
- 独立编码器: 使用独立的视觉编码器(如CLIP的ViT)处理图像,提取出一组连续的特征向量(一堆数字)。
- 特征对齐: 将这些视觉特征向量通过一个额外的模块(如MLP投影层)映射到文本特征空间,试图让它们在语义上对齐。
- 语言模型处理: 将对齐后的视觉特征向量与文本token一起输入到大语言模型(LLM)中进行理解和生成。
- 关键问题: 图像被表示为连续的、稠密的向量,而文本是离散的token序列。这种根本性的差异(模态鸿沟)使得模型在处理时需要额外的对齐机制(投影层),增加了复杂性和学习难度,可能限制模型对图文融合信息的深入理解。
北大提出的新框架:统一离散化视觉编码(视觉BPE)
核心思想是:将图像也像文本一样,表示成离散的token序列。 这样,一个单一的Transformer模型(通常是基于文本预训练的大语言模型LLM)就能直接处理统一格式的离散输入序列,不再需要独立的视觉编码器和复杂的对齐投影层。
如何实现?借鉴文本BPE的思想,创建“视觉BPE”
-
图像离散化:
- 将原始图像分割成许多小的基础单元(如16x16像素的小块,类似于文本中的单个字符)。
- 每个小块可以通过某种方式(如简单的聚类或预训练模型)映射到一个初始的“视觉原子token”。此时图像变成一个由这些原子token组成的序列。
-
构建视觉词表(优先级引导的视觉BPE): 这是最大的创新点!
- 文本BPE通过合并频繁共现的字符对来生成新的token(如“u” + “n” -> “un”)。
- 直接套用BPE到视觉原子token上效果不好,因为图像有空间结构信息(例如,“眼睛”token总在“鼻子”token上方)。
- 北大创新:引入“优先级函数” P(a, b) = F(a, b) + α · S(a, b)
- F(a, b): 共现频率 - 和文本BPE一样,衡量视觉token
a
和b
在图像中相邻出现的频率。频率高的优先合并。 - S(a, b): 空间一致性 - 衡量当
a
和b
在不同图像中共现时,它们的相对位置关系(如偏移量、方向)是否稳定。例如,如果“车轮”token总是在“车身”token下方特定距离出现,它们的空间一致性就很高。这通过计算相对位置向量的欧氏距离来量化(距离小表示稳定)。 - α:权重系数 - 调节频率和空间一致性哪个更重要。
- F(a, b): 共现频率 - 和文本BPE一样,衡量视觉token
- 意义: 这个优先级函数确保合并后生成的新视觉token不仅仅是像素块的简单组合,而是代表了图像中具有稳定空间结构关系的视觉模式(如“眼睛+鼻子”构成“面部上半部”,“车轮+车身”构成“车体”)。这更符合图像的语义特性。
-
迭代合并: 像文本BPE一样,不断寻找优先级最高的token对进行合并,生成新的视觉token,并加入词表,直到达到预设的词表大小。最终得到一个融合了视觉模式信息的“视觉词表”。
模型训练:多阶段渐进式策略
为了让预训练好的文本大模型(LLM)能有效理解和处理这些全新的视觉token序列,需要精心设计训练过程:
-
嵌入对齐:
- 做法: 冻结LLM的所有原始参数(权重不变)。只训练新引入的视觉token的嵌入层(Embedding Layer)。这个嵌入层负责将视觉token映射成向量。
- 目的: 快速建立起视觉token与LLM语义空间的初步关联。让LLM知道每个视觉token大概代表什么“意思”。这是最基础的对齐。
-
选择性微调:
- 做法: 解冻LLM的底层部分(如前25%)Transformer层,并开始微调这些层的参数。同时继续训练视觉嵌入层。
- 目的: 让模型的底层特征提取和融合能力适应多模态输入。底层Transformer开始学习如何整合来自视觉token和文本token的初级、局部信息,促进跨模态的初步融合。
-
完全微调:
- 做法: 解冻整个LLM模型的所有参数,进行端到端的微调。
- 目的: 让模型学习复杂的跨模态推理、理解、遵循指令等高层次能力。模型能够充分利用整个Transformer架构深度处理统一的图文序列信息。
训练数据组织(课程学习):
- 数据按复杂度分为:基础数据(简单图文对)、感知数据(物体识别等)、推理数据(需要逻辑)、指令数据(复杂任务)。
- 训练初期: 主要使用基础数据和感知数据,配合嵌入对齐和选择性微调阶段,学习基本的视觉概念和局部模式。
- 训练后期: 逐渐增加推理数据和指令数据的比例,配合完全微调阶段,让模型学习更高级的认知能力。这与视觉BPE生成的token从局部到全局的层级特性相匹配。
总结与意义:
- 真正统一的表征: 这是首次尝试在token序列层面统一图像和文本的表征。图像不再是特殊的连续向量,而是和文本一样的离散符号序列。理论上,这消除了模态鸿沟,让单一Transformer模型能更“原生”地处理多模态信息。
- 视觉BPE创新: 引入空间一致性约束的优先级函数,是解决图像结构化特性与BPE融合的关键创新,使生成的视觉token更具语义意义。
- 高效对齐: 省去了传统方法中的独立视觉编码器和投影对齐层,结构更简洁。训练策略(嵌入对齐+渐进解冻)高效地引导LLM适应新模态。
- 性能媲美主流: 实验表明(MMBench 72.1, VQAv2 80.6),这种看似“非主流”的方法,其性能已经可以和主流的基于连续特征对齐的方法(如LLaVA系列)相媲美,证明了该路线的可行性和潜力。
- 潜在优势: 统一的离散token序列可能更有利于模型进行类比、推理和生成,因为处理逻辑更一致。也为图文无缝转换和生成提供了新思路。
核心区别再强调:
- 传统方法(LLaVA等):
图像 -> 连续特征向量 (视觉编码器) -> 对齐投影 (MLP等) -> LLM (处理连续向量+文本token)
。 - 北大新框架:
图像 -> 离散视觉token序列 (视觉BPE) -> LLM (直接处理统一的视觉token序列 + 文本token序列)
。
北大这个方法试图让图像“说”LLM听得懂的“语言”(离散token序列),而不是让LLM去费力“翻译”图像的“语言”(连续向量)。这为实现更统一、更自然的多模态理解和生成迈出了重要一步。
https://mp.weixin.qq.com/s/jzXrLiJA_K0eamYbyUj9Gw
Unified Multimodal Understanding via Byte-Pair Visual Encoding:https://arxiv.org/pdf/2506.23639v1