多模态大模型 —— InternVL 1.5 & 2.0 精读笔记

文章链接:https://arxiv.org/pdf/2404.16821

发布时间:2024.04

Copyright (c) Wang-Luning. All Rights Reserved.

image-20251030221624155

在架构上去掉了QLLaMA中间件,使用简单的MLP projector来作为图像和文本的桥梁,将视觉特征对齐到文本特征空间然后输入LLM,使得结构变成了ViT+MLP+LLM类型。

除了训练了更强大的vision encoder、设计了更高质量的数据集外,其最大的创新点在于dynamic resolution(动态分辨率),从而避免像普通ViT那样需要将任何分辨率的image缩放到固定且低分辨率的大小(如224*224)输入,从而产生固定数量的visual tokens,导致失真和信息丢失。

在训练中,将images切分成1~12个448*448的tiles(根据输入图像大小和长宽比不同)。在推理时,可以达到最多40个tiles(对应4K分辨率)。

具体而言,为了保持图像原始的比例,预定义一系列宽高比:{1:1, 1:2, 2:1, 3:1, 2:3, ...}总共35种组合。对于输入的图像,首先计算其宽高比并匹配一个最接近的预定义组合{m:n},然后将其缩放成(m*448) * (n*448)(例如输入图像为800*1300,其最接近2:3,因此缩放成896*1344),然后再将其切成若干个448*448的局部高分辨率块,同时还保留一个将全图直接缩放到448*448的低分辨率缩略图来概括全局信息。

这些tiles会被vision encoder单独、并行地处理(也即ViT接收的每个序列的长度仍是原先的固定值),相当于“一块一块仔细查看每个细节区域,然后再粗略看一下全局缩略图“,最终再将它们的信息进行融合。

image-20251030223127388

为了确保在高分辨率下的可扩展性/效率,采用pixel shuffle操作来将ViT处理后的visual tokens减少为原先的1/4,这样一个448*448的图片可以用256个visual tokens进行表示,同时每个token的特征维度被调整到了LLM输入空间维数。

 

训练过程分为两个阶段:

 

InternVL 2.0和1.5相比在模型架构上基本没有变化,属于其在更多模态和任务上的扩展(包括了Images, video, medical data等),并且提供了一系列更大的模型(从InternLM2-20B扩展到了102B),总共最大达到108B