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

多模态视觉语言模型FILA-细粒度分辨率融合策略


上图是四种在图片切图上的操作:如动态分辨率仅涉及裁剪图像并将其输入CLIP-ViT、mini-gemini在最后层将低分辨率的CLIP-ViT特征与高分辨率辅助分支进行交互,主要使用交叉注意力机制,c则采用通道级串联。本文介绍的方法使用一个模块将低分辨率和高分辨率进行融合实现交互,下面来看看如何实现。

方法

方法

1. 输入图像预处理(动态切图)

这个目标是把高分辨率图像切成若干 336×336 的小块,同时保留一张 336×336 的“全局缩略图”。

  • 步骤
    1. 从 5 个预定义画布尺寸(336×672、672×336、672×672、1008×336、336×1008)中挑一个能最紧凑包住原图的。
    2. 等比例缩放 → padding → 切成 nw×nhn_w × n_hnw×nh个 336×336 patch。
    3. 额外生成一张 336×336 的“全局视图”,保留整体语境。
2. 双路编码器(混合编码器)

双路编码器集成了ConvNeXt、CLIP-ViT和CVFM模块。ConvNeXt和ViT网络都被划分为四个阶段。每个阶段的最后一层作为一个交互层,通过CVFM模块将其输出与相应的ConvNeXt阶段的输出结合起来。

  • 低分辨率支路:所有 patch + 全局视图 → CLIP-ViT(冻结参数,224/336 训练分辨率)。
  • 高分辨率支路:整张原图以更高分辨率(32/14 × Hh,32/14 × Wh,约 768×768)→ ConvNeXt,提取多尺度特征。

结构:Hybrid Encoder = CLIP-ViT + ConvNeXt + CVFM(跨层融合模块)

  • ConvNeXt 分支:4 个 stage(stem → 96 → 192 → 384 → 768 通道),每个 stage 3×3 卷积降采样 2×。
  • CLIP-ViT 分支:同样 4 个 stage(对应 ViT 的 layer 2/6/12/20)。
  • CVFM 在 每个 stage 结束处做一次跨模型融合,而不是只在最后一层。

特征对齐:ConvNeXt 输出特征尺寸与 ViT 隐藏层尺寸需空间对齐:
ViT 固定 24×24 spatial tokens(576 tokens)。ConvNeXt stage-i 输出尺寸通过 2×2 卷积或插值对齐到 24×24。最终沿 channel 维度拼接(channel concatenation),再通过 1×1 Conv/MLP 降维回 ViT 原始通道数。

3. 连接 LLM

CLIP-ViT 输出的 patch token 与 ConvNeXt 输出的高分辨率特征经过 CVFM 融合 → MLP 投影 → 与文本 token 拼接 → 送入 LLaMA3-8B。

4. 两阶段训练

  • 阶段一:低分辨率预训练(Frozen ViT & LLM)
    目的:先把 CVFM 融合模块 与 MLP 投影层 训练好,让视觉特征能与 LLM 词向量空间对齐。图像统一 resize 到 336×336 → 送入 CLIP-ViT,同一张图再 resize 到 768×768 → 送入 ConvNeXt。不做动态切图,避免一开始就让 CVFM 面对“碎片化”难题。

    冻结策略:ViT 与 LLM 完全冻结(参数不参与梯度更新)
    只训练:CVFM(跨层融合权重)和MLP Projector(把视觉 token 映射到词向量维度)

  • 阶段二:高分辨率指令微调(全部解冻):让模型具备高分辨率细粒度理解(OCR、文档、图表)多轮对话与指令跟随能力。启用动态切图:原图切成 336×336 patch,同时保留全局 336×336 缩略图。ConvNeXt 输入:整张图 upsample 到 32/14×Hh ≈ 1536×1536 → 得到多尺度特征。

    冻结策略:解冻全部参数

实验结果

https://arxiv.org/pdf/2412.08378v3

参考文献: FILA: FINE-GRAINED VISION LANGUAGE MODELS,https://arxiv.org/pdf/2412.08378v3

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

相关文章:

  • 前缀和-560.和为k的子数组-力扣(LeetCode)
  • 望言OCR视频字幕提取2025终极评测:免费版VS专业版提全方位对比(含免费下载)
  • 3D芯片香港集成:技术突破与产业机遇全景分析
  • sealos 方式安装k8s5节点集群
  • CentOS 9 配置国内 YUM 源
  • Flutter开发实战之CI/CD与发布流程
  • Java AI面试实战:Spring AI与RAG技术落地
  • MySQL - 主从复制与读写分离
  • VILA系列论文解读
  • 预处理详解
  • rust-模块树中引用项的路径
  • PostgreSQL并发控制
  • Android:Reverse 实战 part 2 番外 IDA python
  • Android MQTT 长连接最佳实践技术分享
  • 力扣-76.最小覆盖子串
  • 安卓怎么做一个像QQ一样的开关切换控件
  • Kotlin位运算
  • EMCCD相机与电可调变焦透镜的同步控制系统设计与实现
  • Kotlin递归
  • MYSQL:索引
  • golang设置http代理
  • Flink2.0学习笔记:Stream API 常用转换算子
  • maven <dependencyManagement>标签的作用
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的人格品牌化实现路径研究
  • 常用git命令集锦
  • conda和pip安装包时的注意细节,以及下载慢时如何配置镜像地址
  • 积分兑换小程序Java
  • Megatron 中的 TensorParallel, PipelineParallel, ContextParallel,ExpertParallel
  • PHP框架之Laravel框架教程:3. 数据库操作(简要)
  • PowerDesigner 画ER图并生成sql 教程