image.png

0 总结(省流版)

核心1:通过蒸馏的方式得到Visual encoder(InternViT-6B -> InternViT-300M),与InternVL2-76B对比,mini-InternVL-4B仅用5%参数实现90%的性能

核心2:提出一个迁移到不同下游任务学习框架

同参数量级下,指标低于Qwen2vl系列。

1 模型结构

image.png

  • Visual encoder: 使用CLIP初始化InternViT-300M,并蒸馏InternViT-6B
    • 动态分辨率策略(crop)
    • pixel unshuffle减少visual token数量,输入448,输出token数量为256(16x16)
  • LLM:
    • Mini-InternVL-1B: Qwen2-0.5B
    • Mini-InternVL-2B: InternLM2-1.8B
    • Mini-InternVL-4B: Phi-3-Mini

1.1 InternViT-300M

  • 参数使用CLIP-ViT-L-336px初始化,从InternViT-6B中蒸馏出InternViT-300M。
  • 通过计算最后K层transformer layer的hidden states之间的负余弦相似度来更新student模型参数
  • 使用数据集如下,策略是图片resize到448,关闭dynamic resolution
    image.png

1.2 下游任务迁移学习框架

1.2.1 数据格式

image.png

  • Image classification task: multi-choice

USER: [Image][Prompt_Prefix][Candidate Labels][Prompt_Suffix]
ASSISTANT: [Ground Truth]

  • Visual Grounding Tasks

需要被检测目标的描述:
目标位置:[[x1, y1], [x2, y2]],坐标归一化到0~1000

  • Region Perception Tasks:基于指定坐标识别目标,问题和回答中均带上目标位置信息

question:What object is in this location[[x1, y1, x2, y2]]
anwser:“object name[[x1, y1, x2, y2]]

  • Multi-View Images: 使用动态分辨率,针对自动驾驶的6个视角图片,先resize到896x448,再拼接成2x3(2688x896),最终可以得到12个tiles(448x448)。最后再用”CAM_FRON“等文本来标记位置。
    image.png

  • Video Frames:每帧resize到448x448

Frame1: <IMG_CONTEXT> Frame2: <IMG_CONTEXT>

1.2.2 训练策略

  • domain adaption阶段:全参数微调
  • domain-specific application scenario:将对应的数据转化成1.2.1中的格式,加入到通用多模态数据中;
    image.png

2 指标情况

mini-InternVL指标:
image.png
Qwen2-VL指标:
image
同2B量级,qwen2-vl-2B指标较高
同72B量级,InternVL2-Llamma3-76B指标比qwen2-vl-72B指标略低

3 消融实验结论

3.1 通用数据和特定领域数据比例探究

  • 只使用特定领域的数据进行微调并不能达到最佳性能
  • 通用数据占比为0.25时,性能可达到最佳(作者仅在自动驾驶领域上的测试,从曲线图上来看,这个结论也不是那么确定)
    image.png

3.2 训练样本数量对模型性能的影响

作者将通用数据和特定领域数据控制在1:1,验证不同比例训练数据下的模型指标情况:
image.png

  • 仅在1/4训练集时,在特定领域上的指标就达到了瓶颈,之后长的幅度比较小
  • 通用benchmark上的指标基本保持稳定

讲道理:这个结论也不太鲁棒,特定领域的指标还存在明显的上升趋势,如果多训练几个epoch呢?

3.3 不同训练参数量对于模型性能的影响

image.png
比较直观的是,全参数微调 > 部分参数微调 > LoRA,所以,有条件还是直接全参微调吧。

Logo

一站式 AI 云服务平台

更多推荐