当前位置: 首页 > news >正文

视觉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):

  1. 独立编码器: 使用独立的视觉编码器(如CLIP的ViT)处理图像,提取出一组连续的特征向量(一堆数字)。
  2. 特征对齐: 将这些视觉特征向量通过一个额外的模块(如MLP投影层)映射到文本特征空间,试图让它们在语义上对齐。
  3. 语言模型处理: 将对齐后的视觉特征向量与文本token一起输入到大语言模型(LLM)中进行理解和生成。
  4. 关键问题: 图像被表示为连续的、稠密的向量,而文本是离散的token序列。这种根本性的差异(模态鸿沟)使得模型在处理时需要额外的对齐机制(投影层),增加了复杂性和学习难度,可能限制模型对图文融合信息的深入理解。

北大提出的新框架:统一离散化视觉编码(视觉BPE)

核心思想是:将图像也像文本一样,表示成离散的token序列。 这样,一个单一的Transformer模型(通常是基于文本预训练的大语言模型LLM)就能直接处理统一格式的离散输入序列,不再需要独立的视觉编码器和复杂的对齐投影层。

如何实现?借鉴文本BPE的思想,创建“视觉BPE”

  1. 图像离散化:

    • 将原始图像分割成许多小的基础单元(如16x16像素的小块,类似于文本中的单个字符)。
    • 每个小块可以通过某种方式(如简单的聚类或预训练模型)映射到一个初始的“视觉原子token”。此时图像变成一个由这些原子token组成的序列。
  2. 构建视觉词表(优先级引导的视觉BPE): 这是最大的创新点!

    • 文本BPE通过合并频繁共现的字符对来生成新的token(如“u” + “n” -> “un”)。
    • 直接套用BPE到视觉原子token上效果不好,因为图像有空间结构信息(例如,“眼睛”token总在“鼻子”token上方)。
    • 北大创新:引入“优先级函数” P(a, b) = F(a, b) + α · S(a, b)
      • F(a, b): 共现频率 - 和文本BPE一样,衡量视觉token ab 在图像中相邻出现的频率。频率高的优先合并。
      • S(a, b): 空间一致性 - 衡量当 ab 在不同图像中共现时,它们的相对位置关系(如偏移量、方向)是否稳定。例如,如果“车轮”token总是在“车身”token下方特定距离出现,它们的空间一致性就很高。这通过计算相对位置向量的欧氏距离来量化(距离小表示稳定)。
      • α:权重系数 - 调节频率和空间一致性哪个更重要。
    • 意义: 这个优先级函数确保合并后生成的新视觉token不仅仅是像素块的简单组合,而是代表了图像中具有稳定空间结构关系的视觉模式(如“眼睛+鼻子”构成“面部上半部”,“车轮+车身”构成“车体”)。这更符合图像的语义特性。
  3. 迭代合并: 像文本BPE一样,不断寻找优先级最高的token对进行合并,生成新的视觉token,并加入词表,直到达到预设的词表大小。最终得到一个融合了视觉模式信息的“视觉词表”。

模型训练:多阶段渐进式策略

为了让预训练好的文本大模型(LLM)能有效理解和处理这些全新的视觉token序列,需要精心设计训练过程:

  1. 嵌入对齐:

    • 做法: 冻结LLM的所有原始参数(权重不变)。只训练新引入的视觉token的嵌入层(Embedding Layer)。这个嵌入层负责将视觉token映射成向量。
    • 目的: 快速建立起视觉token与LLM语义空间的初步关联。让LLM知道每个视觉token大概代表什么“意思”。这是最基础的对齐。
  2. 选择性微调:

    • 做法: 解冻LLM的底层部分(如前25%)Transformer层,并开始微调这些层的参数。同时继续训练视觉嵌入层。
    • 目的: 让模型的底层特征提取和融合能力适应多模态输入。底层Transformer开始学习如何整合来自视觉token和文本token的初级、局部信息,促进跨模态的初步融合。
  3. 完全微调:

    • 做法: 解冻整个LLM模型的所有参数,进行端到端的微调。
    • 目的: 让模型学习复杂的跨模态推理、理解、遵循指令等高层次能力。模型能够充分利用整个Transformer架构深度处理统一的图文序列信息。

训练数据组织(课程学习):

  • 数据按复杂度分为:基础数据(简单图文对)、感知数据(物体识别等)、推理数据(需要逻辑)、指令数据(复杂任务)。
  • 训练初期: 主要使用基础数据和感知数据,配合嵌入对齐和选择性微调阶段,学习基本的视觉概念和局部模式。
  • 训练后期: 逐渐增加推理数据和指令数据的比例,配合完全微调阶段,让模型学习更高级的认知能力。这与视觉BPE生成的token从局部到全局的层级特性相匹配。

总结与意义:

  1. 真正统一的表征: 这是首次尝试在token序列层面统一图像和文本的表征。图像不再是特殊的连续向量,而是和文本一样的离散符号序列。理论上,这消除了模态鸿沟,让单一Transformer模型能更“原生”地处理多模态信息。
  2. 视觉BPE创新: 引入空间一致性约束的优先级函数,是解决图像结构化特性与BPE融合的关键创新,使生成的视觉token更具语义意义。
  3. 高效对齐: 省去了传统方法中的独立视觉编码器和投影对齐层,结构更简洁。训练策略(嵌入对齐+渐进解冻)高效地引导LLM适应新模态。
  4. 性能媲美主流: 实验表明(MMBench 72.1, VQAv2 80.6),这种看似“非主流”的方法,其性能已经可以和主流的基于连续特征对齐的方法(如LLaVA系列)相媲美,证明了该路线的可行性和潜力。
  5. 潜在优势: 统一的离散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

http://www.dtcms.com/a/294903.html

相关文章:

  • Python+大模型 day03
  • 面试实战,问题四,介绍一下dubbo框架,如何回答
  • 河南萌新联赛2025第二场-河南农业大学
  • 解决uniapp 使用uview生成小程序包太大无法上传的问题
  • 亚马逊广告优化技巧:如何减少预算浪费
  • Tang Prime 20K板I2S输入输出例程
  • lumerical——光纤布拉格光栅(Fiber Bragg gratings)
  • AI驱动攻防升级,API安全走到关键档口
  • MyBatis整合SpringBoot终极指南
  • 设备维修记录可追溯:管理系统选型指南
  • ESP32-S3 小电视学习笔记2:Arduino开发环境搭建(垃圾)
  • PyTorch深度学习入门记录2
  • sql注入171到185
  • 使用Qemu模拟Arm处理器,运行Linux系统
  • 做了个震动APP
  • 学生信息管理系统 - HTML实现增删改查
  • odoo欧度小程序——添加用户
  • 面试150 合并K个升序链表
  • 智能制造基础-全面质量管理(TQM)
  • 嵌入式学习-土堆目标检测(4)-day28
  • iview表单验证一直提示为空的几个原因?
  • 1.C语言和其关键字的一个简单介绍
  • Spring事务注解详解:确保你的应用数据的一致性
  • 解决BAPI_ACC_DOCUMENT_POST 功能范围输入不生效问题
  • OpenAI o系列模型Responses接口开发Python代码示例
  • 【机器学习深度学习】生成式模型的评估与验证
  • linux驱动开发笔记--GPIO驱动开发
  • iTwin 几何属性获取
  • RAG实战指南 Day 22:混合检索策略实现
  • 认识linux进程内存布局以及与命令行参数和环境变量的关系