原生分辨率在前期介绍了多期,相比固定分辨率,原生分辨率在多种任务上尤其是OCR任务上效果显著。那么如何在一些现有的视觉模型(如:SigLIP、AIMv2)上继续训练让多模态视觉语言模型支持原生支持任意分辨率图像输入?下面简单看一下一个多模态继续预训练框架-COMP(Continual Multimodal Pre-training)。
往期关于分辨率相关:
- 《多模态大模型中不同分辨率策略研究与原生分辨率的有效性评估》
- 《多模态大模型中图像分辨率packing策略及原生分辨率NaViT的部分结论》
- 《多模态大模型中高分辨率处理trick-通过自适应路由选择模块动态选择合适粒度》
- 《InternVL3.5多模态多大模型改进点及视觉分辨率理由模块技术浅尝》
方法架构
COMP框架
COMP的目标是让现有视觉基础模型(VFMs)原生支持任意分辨率图像输入,并将其视觉表征与大语言模型(LLMs)的语言表征直接对齐 。整体流程如上图:原生分辨率图像经VFMs(含C-ROPE)生成视觉特征,文本经LLM生成文本特征,通过双损失函数联合训练,最终输出增强后的VFMs。方法如下:
1 原生分辨率适配
现有VFMs的位置嵌入是为固定分辨率设计的,处理不同尺寸图像时常用“插值调整位置嵌入”,但会丢失细节;纯RoPE2D(旋转位置嵌入)虽支持分辨率外推,但数据效率低、训练不稳定。因此C-ROPE的核心是 结合绝对位置嵌入的“稳定性”和相对RoPE2D的“分辨率适应性” 。
C-ROPE的设计核心是 “结合绝对位置嵌入的稳定性 + RoPE2D的分辨率适应性” ,实现原生分辨率支持。
C-ROPE的流程如上图所示:
- 图像分块(Patchify) :将原生分辨率为
的图像分割为
个patch(
为patch尺寸,
为图像通道数),得到patch特征
; 2. 绝对位置嵌入插值 :将预训练好的固定尺寸位置嵌入
通过双线性插值(
)调整到当前patch数量
,加到patch特征中,提供基础位置信息; 3. RoPE2D旋转 :对Transformer的query(q)和key(k)应用2D旋转矩阵
,捕捉patch间的相对位置关系(适配任意分辨率); 4. 后续通过投影层(
)和前馈网络(
)输出视觉特征
。
通过上述流程:无需固定图像输入尺寸,原生支持高分辨率图像(如1024px、2048px); 相比纯RoPE2D,数据效率更高(消融实验显示,C-ROPE在相同数据下性能提升显著)
2 Alignment Loss:跨模态表征对齐损失
传统方法通过适配器(Adapter)将视觉特征投影到语言空间,但监督信号(如next-token预测)过于间接,尤其是纯视觉预训练的VFMs(如DINOv2),表征差距难以缩小。Alignment Loss的核心是 直接对齐视觉与语言特征,且无需大batch或额外文本编码器 。
Alignment Loss的操作流程如上图右所示:
- 提取全局特征 :
- 视觉全局特征
:对VFMs输出的视觉特征
做无参数全局平均池化;
- 文本全局特征
:对LLMs处理文本后的特征做全局平均池化( 不含图像前缀,避免信息泄露 );
- 原型映射 :将
和
通过LLM的词嵌入矩阵
(作为固定原型,不更新梯度)映射到语言空间,得到
和
(
为LLM词汇表大小);
- 软归一化 :
- 视觉特征
用Softmax归一化得到
;
- 文本特征
用 Sinkhorn-Knopp算法 归一化得到
(利用词嵌入的先验分布,比Softmax更灵活);
- 交叉熵损失 :计算
和
的交叉熵,仅更新VFMs参数(LLM参数冻结),确保视觉特征向语言空间对齐。
训练方法
- 阶段一:视觉-语言适配器预热。冻结 VFM 和 LLM,仅在固定低图像分辨率下训练适配器,且不使用 RoPE-2D。
- 阶段二:原生分辨率适应。使用 RoPE-2D 在固定高图像分辨率下训练整个模型一段时间,随后在原生分辨率下继续训练。
- 阶段三:指令微调(可选)。在原生分辨率下使用 RoPE-2D 对整个模型进行指令数据集的微调,以适应不同类型的数据输入。
训练目标:
训练数据:
- 预训练数据:采用LLaVA-Pretrain + LLaVA-Mid-Stage数据,包含图像-文本对、高分辨率图表/文档数据;
- 指令微调数据:LLaVA-OV-SI SFT数据,覆盖多模态问答、图表理解等任务。
实验性能
参考文献:paper:COMP: Continual Multimodal Pre-training for Vision Foundation Models,https://arxiv.org/pdf/2503.18931
repo:https://github.com/SliMM-X/CoMP-MM
