news 2026/5/15 21:14:11

模态预融合(Modality-Pre-Fusion)在 sVLM 中的具体应用、优势及主要区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模态预融合(Modality-Pre-Fusion)在 sVLM 中的具体应用、优势及主要区别

1. 什么是 Modality-Pre-Fusion?

在 sVLM,也就是小型视觉语言模型中,modality-pre-fusion / 模态预融合可以理解为:

在视觉信息进入小型 LLM 主干之前,先把图像特征、文本提示、检测/OCR/结构信息等进行一次轻量级跨模态融合,使小模型接收到的是“已经压缩、对齐、任务相关”的多模态 token,而不是原始、冗长、未筛选的视觉 token。

它和普通 LLaVA 式结构的区别在于:
普通结构多是Vision Encoder → Projector → LLM
而模态预融合会在Projector 之前或 Projector 内部增加一层“图文交互 / 语义筛选 / token 压缩”。

典型位置如下:

普通 sVLM: Image → Vision Encoder → Projector → Small LLM → Answer Modality-Pre-Fusion sVLM: Image → Vision Encoder │ Text Prompt → Text Embed / Query │ ▼ Pre-Fusion Module 图文对齐 / token筛选 / ROI聚合 / 语义压缩 │ ▼ Projector / Adapter │ ▼ Small LLM → Answer

LLaVA 这类模型主要通过 projection layer 把视觉特征映射到语言模型 embedding 空间,并采用特征对齐和视觉指令微调两阶段训练;MobileVLM 则面向移动端,使用视觉编码器、轻量 projector 和小型 LLM 组成端侧 VLM;TinyLLaVA 也强调 vision encoder、connector 和 small-scale LLM 的模块化组合。([GitHub][1])


2. 在 sVLM 中为什么需要预融合?

sVLM 的核心问题是:

模型小 → 推理能力弱 显存小 → 不能保留太多视觉 token 上下文短 → 图像 token 会挤占文本上下文 projector 弱 → 图像与语言空间对齐不足 边缘端算力有限 → 不能堆很深的 cross-attention

所以,模态预融合的目标不是“让模型更复杂”,而是:

在进入小型 LLM 前,提前完成视觉 token 的筛选、压缩、语义对齐和任务相关增强,降低小 LLM 的理解负担。

这和 BLIP-2 的思路有相似性:BLIP-2 用轻量 Q-Former 在冻结视觉编码器和冻结 LLM 之间桥接模态差距,并把视觉信息压缩成对语言模型更有用的表示。([arXiv][2])


3. sVLM 中的具体应用方式

3.1 Prompt-aware Visual Token Selection

这是最常见、最适合 sVLM 的预融合方式。

传统方式:

图像 → ViT patch tokens → 全部送入 LLM

预融合方式:

图像 patch tokens + 文本 prompt │ ▼ 根据问题筛选相关视觉 token │ ▼ 只送入和问题相关的视觉区域

例如:

Prompt: “第二层左侧有几瓶可乐?”

模型不需要关注整张图,而应该优先关注:

第二层 左侧区域 瓶装商品 可乐包装 数量特征

结构示意:

V = VisionEncoder(image) # N 个视觉 token Q = TextEncoder(prompt) # 文本 query A = softmax(Q @ V.T) # prompt 对视觉 token 的注意力 V_select = topk(A, V) # 选出最相关 token V_fused = Fuse(V_select, Q) # 图文预融合

优势:

  • 减少视觉 token 数量;
  • 提升问题相关性;
  • 降低小 LLM 的上下文压力;
  • 对视觉问答、商品识别、OCR 问答、区域计数非常有用。

3.2 Q-Former / Query-Based Pre-Fusion

这是 BLIP-2 风格的做法。

核心思想:

固定数量的 learnable query │ ▼ 从图像特征中抽取最有用的信息 │ ▼ 输出少量 multimodal query tokens │ ▼ 送入 LLM

结构:

Image → Frozen Vision Encoder → Visual Tokens │ Learnable Queries ────────────────┘ │ ▼ Q-Former / Cross-Attention │ ▼ K 个融合视觉 token │ ▼ Small LLM

BLIP-2 的 Q-Former 被设计成视觉编码器和 LLM 之间的信息瓶颈,用于抽取对语言生成最有用的视觉表示。([Proceedings of Machine Learning Research][3])

对 sVLM 来说,这种方法非常有价值,因为它可以把几百到上千个 patch token 压缩成几十个 query token。

适合:

  • 小模型 VQA;
  • 图像描述;
  • 图像分类解释;
  • OCR 场景理解;
  • 工业质检;
  • 商品柜/货架图像理解。

3.3 ROI-Aware Pre-Fusion

对于你的自动售货柜 / SKU / YOLO / SAM / OCR 场景,最实用的是ROI-aware pre-fusion

流程:

Image │ ├── YOLO / SAM → bbox / mask / shelf ROI ├── OCR → text region ├── M2结构对齐 → shelf_id / layer_id / perspective │ ▼ ROI Feature Pooling │ ▼ ROI token + class prompt + OCR token + position token │ ▼ Pre-Fusion Module │ ▼ sVLM

例如每个商品区域可以构造成:

{"roi_id":17,"bbox":[x1,y1,x2,y2],"shelf_id":2,"position":"left","det_class":"bottle","ocr_text":"Coca Cola","visual_embedding":"...","prompt":"判断该区域商品是否为可乐"}

然后送入预融合模块:

ROI视觉特征 + OCR文字 + 位置编码 + 类别prompt │ ▼ fused ROI token │ ▼ Small LLM

这比整图直接问 sVLM 更稳定,因为它把低层视觉任务交给 YOLO / SAM / OCR,把 sVLM 主要用于语义确认和异常判断。


3.4 Spatial-Structure Pre-Fusion

在货架、柜体、机器人场景中,空间结构很重要。

例如:

第几层 左中右位置 上下遮挡 商品排列关系 同类商品连续区域 柜体透视变形

可以把 M2 几何结构结果编码成 spatial tokens:

shelf_token_1 shelf_token_2 left_region_token right_region_token mask_region_token bbox_position_token

然后与视觉 token 预融合:

Visual ROI Token + Spatial Token + Text Prompt │ ▼ Structure-aware Fusion │ ▼ Small LLM

对自动售货柜场景,这类预融合非常重要,因为问题往往不是“图里有什么”,而是:

第二层左侧缺了什么? 某一排是否少放? 该 SKU 是否摆错位置? 目标商品是否被遮挡? 是否需要补货?

3.5 OCR-Enhanced Pre-Fusion

sVLM 小模型通常 OCR 能力弱。可以在预融合阶段加入 OCR token:

Image → OCR Engine → text boxes + recognized text Image → Vision Encoder → visual tokens Prompt → text query │ ▼ OCR-aware Pre-Fusion │ ▼ Small LLM

示例:

ROI视觉特征: 红色瓶装饮料 OCR文本: Coca Cola / 可口可乐 Prompt: 判断该商品SKU

预融合后,小模型不需要完全依赖视觉图案,可以结合 OCR 结果判断 SKU。

适合:

  • 商品包装识别;
  • 票据理解;
  • 屏幕 HUD OCR;
  • 工业铭牌;
  • 药盒/食品标签识别。

3.6 Multi-Scale Pre-Fusion

sVLM 很容易漏掉小目标,所以可以做多尺度预融合:

Global Image Token Local ROI Token Crop Token OCR Token Mask Token Position Token

融合方式:

global_token + roi_tokens + crop_tokens + prompt_token │ ▼ Multi-scale Fusion Adapter │ ▼ Small LLM

这样可以兼顾:

整图上下文 局部细节 目标位置 文字信息 mask形状

对 SKU、货架、自动售货柜、机器人操作场景都很实用。


4. 典型实现结构

4.1 最轻量实现:Concat + MLP

visual_token + text_token + position_token │ ▼ MLP │ ▼ fused multimodal token

伪代码:

v=vision_encoder(image)# [B, Nv, Dv]t=text_encoder(prompt)# [B, Nt, Dt]p=position_encoder(bbox)# [B, Nr, Dp]v_proj=visual_proj(v)t_proj=text_proj(t)p_proj=pos_proj(p)fused=torch.cat([v_proj,t_proj,p_proj],dim=1)fused=fusion_mlp(fused)out=small_llm(inputs_embeds=fused)

优点:

  • 简单;
  • 速度快;
  • 适合端侧;
  • 容易导出 ONNX / TensorRT / MNN。

缺点:

  • 跨模态交互能力弱;
  • 对复杂空间关系不够强。

4.2 Cross-Attention Pre-Fusion

Text Query attends to Visual Tokens

公式:

Q = Wq * text_prompt K = Wk * visual_tokens V = Wv * visual_tokens F = Attention(Q, K, V)

伪代码:

classPreFusionAdapter(nn.Module):def__init__(self,dim,num_heads):super().__init__()self.cross_attn=nn.MultiheadAttention(embed_dim=dim,num_heads=num_heads,batch_first=True)self.norm=nn.LayerNorm(dim)self.mlp=nn.Sequential(nn.Linear(dim,dim*4),nn.GELU(),nn.Linear(dim*4,dim))defforward(self,text_tokens,visual_tokens):fused,attn=self.cross_attn(query=text_tokens,key=visual_tokens,value=visual_tokens)fused=self.norm(text_tokens+fused)fused=self.norm(fused+self.mlp(fused))returnfused,attn

优点:

  • prompt-aware;
  • 适合 VQA;
  • 能根据问题动态选择视觉区域;
  • 比全量 early fusion 更省 token。

缺点:

  • 比 MLP 慢;
  • 多层 cross-attention 会增加部署成本。

4.3 Learnable Query Pre-Fusion

类似 Q-Former / Perceiver Resampler:

classQueryPreFusion(nn.Module):def__init__(self,num_queries,dim,num_heads):super().__init__()self.queries=nn.Parameter(torch.randn(1,num_queries,dim))self.cross_attn=nn.MultiheadAttention(dim,num_heads,batch_first=True)self.norm=nn.LayerNorm(dim)defforward(self,visual_tokens,batch_size):q=self.queries.expand(batch_size,-1,-1)fused,attn=self.cross_attn(q,visual_tokens,visual_tokens)fused=self.norm(q+fused)returnfused

优点:

  • 把大量视觉 token 压缩成固定数量 token;
  • 对小 LLM 友好;
  • 适合端侧;
  • 可控制上下文长度。

Flamingo 使用 Perceiver Resampler 把可变尺寸视觉特征变成较少的视觉 token,并通过 gated cross-attention 把视觉信息注入语言模型。([arXiv][4])


5. 与其他融合方式的主要区别

5.1 Pre-Fusion vs Early Fusion

对比项Modality-Pre-FusionEarly Fusion
融合位置进入 LLM 前的 adapter / projector 阶段模型最早层直接混合图文 token
计算量较低,可控通常较高
适合 sVLM很适合要谨慎,token 多时成本高
优势压缩、筛选、对齐后再送入小 LLM图文交互充分
缺点表达能力取决于 adapter小模型容易算不动

MoMa 这类 early-fusion 模型会在预训练中处理任意顺序的图文混合 token,并使用 modality-aware MoE 区分不同模态 token;这类方法交互充分,但通常比 sVLM 常用的轻量 adapter 方案更重。([arXiv][5])


5.2 Pre-Fusion vs Projector-Only

对比项Projector-OnlyModality-Pre-Fusion
典型结构Vision Encoder → Linear/MLP → LLMVision/Text/ROI/OCR → Fusion Adapter → LLM
是否感知问题通常不感知可以 prompt-aware
是否压缩视觉 token有时压缩,有时不压缩通常会压缩
是否融合 OCR/ROI/结构一般不融合很适合融合
对小模型友好度中等更高
适合场景通用图像问答工业、端侧、结构化视觉任务

LLaVA 经典结构主要是把 CLIP 视觉特征通过投影层映射到语言模型 embedding 空间;这很简单有效,但对小模型来说,projector-only 往往不足以处理复杂 ROI、OCR、空间结构和 prompt-aware token 选择。([GitHub][1])


5.3 Pre-Fusion vs Cross-Attention Inside LLM

对比项Pre-FusionLLM 内部 Cross-Attention
融合位置LLM 前LLM 多层内部
计算成本较低较高
改 LLM 结构通常不需要通常需要
端侧部署更容易更复杂
表达能力中等更强
适合sVLM / edge VLM大模型 / few-shot VLM

Flamingo 是典型的“在语言模型内部通过 gated cross-attention 注入视觉信息”的路线,能力强,但工程复杂度和推理成本通常高于轻量预融合。([OpenReview][6])


5.4 Pre-Fusion vs Late Fusion / Post-Fusion

对比项Pre-FusionLate/Post-Fusion
融合时机LLM 推理前各模型输出后
是否有 token 级交互通常没有
例子图文 token 先融合再回答YOLO 输出 + OCR 输出 + LLM 文本总结
优势语义理解更强工程简单、可解释
缺点需要训练 adapter跨模态推理弱

Late fusion 更像:

YOLO检测结果 → 文本化 OCR结果 → 文本化 库存表 → 文本化 LLM → 规则判断

Pre-fusion 则是:

视觉ROI token + OCR token + prompt token + 空间token │ ▼ 融合成 multimodal embedding │ ▼ sVLM 推理

如果目标只是业务规则判断,late fusion 足够;如果目标是让 sVLM 真正理解图像区域、文字、空间关系,pre-fusion 更强。


8. 核心优势总结

优势说明
降低 token 数量先压缩视觉 token,减少 LLM 上下文压力
提升视觉 grounding小模型更容易知道应该看哪里
支持 prompt-aware 理解根据问题动态选择视觉区域
易融合检测/OCR/结构信息特别适合工业视觉和货柜场景
适合边缘端部署比 LLM 内部多层 cross-attention 更轻
降低幻觉因为输入给 sVLM 的是经过 ROI/OCR/结构约束的视觉证据
提升细粒度识别对 SKU、包装、文字、局部区域更有效
便于蒸馏可以蒸馏 teacher 的 fused token、attention map、ROI 选择结果

9. 总结

在 sVLM 中,modality-pre-fusion 的本质不是简单地把图像和文本拼起来,而是:

在小型 LLM 推理前,用轻量模块把视觉、文本、OCR、检测框、mask、空间位置、业务结构信息提前融合成更紧凑、更相关、更容易被小模型理解的 multimodal tokens。

Projector-only 是“把图像翻译成 LLM 能读的 token”;modality-pre-fusion 是“先根据任务把视觉、文本和结构证据融合好,再交给小 LLM 推理”。

参考链接:
[1]: https://github.com/haotian-liu/llava?utm_source=chatgpt.com “haotian-liu/LLaVA: [NeurIPS’23 Oral] Visual Instruction …”
[2]: https://arxiv.org/abs/2301.12597?utm_source=chatgpt.com “BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models”
[3]: https://proceedings.mlr.press/v202/li23q/li23q.pdf?utm_source=chatgpt.com “BLIP-2: Bootstrapping Language-Image Pre-training with …”
[4]: https://arxiv.org/abs/2204.14198?utm_source=chatgpt.com “Flamingo: a Visual Language Model for Few-Shot Learning”
[5]: https://arxiv.org/html/2407.21770v2?utm_source=chatgpt.com “MoMa: Efficient Early-Fusion Pre-training with Mixture …”
[6]: https://openreview.net/forum?id=EbMuimAbPbs&utm_source=chatgpt.com “Flamingo: a Visual Language Model for Few-Shot Learning”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 21:14:10

【最新 v2.7.1 版本】Windows 版 OpenClaw 一键部署搭建教程

OpenClaw v2.7.1 一键安装部署教程|可视化傻瓜式搭建 ✨适配系统:Windows10/11 64 位 ✨当前版本:v2.7.1 版本(虾壳云版) ✨安装包大小:58.7MB 【点击下载最新安装包】http://​https://xiake.yun/api/download/package/14?promoCode=IVBE1F235167​ 🔥核心优势 …

作者头像 李华
网站建设 2026/5/15 21:14:04

OpenDeRisk:基于多智能体协作的AIOps根因分析系统实战

1. 项目概述:一个为系统稳定性而生的AI“风险管家”如果你和我一样,长期泡在运维和SRE(站点可靠性工程)的圈子里,那你一定对“救火”这个词深有体会。半夜被报警电话叫醒,面对海量的日志、指标和链路追踪数…

作者头像 李华
网站建设 2026/5/15 21:13:05

Rust与MongoDB游标分页实践:告别Skip/Limit性能瓶颈

1. 项目概述与核心价值如果你正在用 Rust 写后端服务,并且数据层选了 MongoDB,那么分页查询这个“小”功能,大概率会让你头疼一阵子。传统的skip/limit分页在数据量小的时候没问题,一旦数据上了规模,性能瓶颈和结果不一…

作者头像 李华
网站建设 2026/5/15 21:09:23

多智能体编排框架Waggle-Dance:基于DAG的并发执行与可观测AI系统

1. 项目概述:一个面向知识工作的多智能体编排框架如果你和我一样,对去年涌现的各类AI智能体(Agent)框架感到既兴奋又有些许困惑——兴奋于它们能自动分解任务、调用工具、联网搜索,困惑于其黑盒般的执行过程、缓慢的串…

作者头像 李华
网站建设 2026/5/15 21:08:27

7-Zip ZS:六大压缩引擎如何让你的文件管理效率提升3倍

7-Zip ZS:六大压缩引擎如何让你的文件管理效率提升3倍 【免费下载链接】7-Zip-zstd 7-Zip with support for Brotli, Fast-LZMA2, Lizard, LZ4, LZ5 and Zstandard 项目地址: https://gitcode.com/gh_mirrors/7z/7-Zip-zstd 在数字时代,我们每天都…

作者头像 李华