Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models
TL; DR:本文构建了一个支持 text+image 多模态输入、text+image 多模态输出的真正的多模态大模型 Mini-Gemini。技术方面主要有三个要点:高效高分辨率的视觉 token 编码,高质量的数据,以及通过 VLM 引导的图像生成。
方法
现有的多模态大模型一般支持文本和图片输入,但支持输出文本回复。像 Gemini / GPT4+DALLE3 那样支持多模态输出的模型不多。本文通过高分辨率的视觉 token,高质量的数据,以及通过 VLM 引导的图像生成三个方面的技术改进,构建一个支持图文输入、图文输出的多模态大模型 Mini-Gemini 系列。整体框架如下图所示。
高分辨率的视觉 token
支持高分辨率图像理解、文档文字图理解,是近来新发布的多模态大模型重点在卷的一个能力。像 LLaVA 1.6 的图片切分方案,Fuyu 的纯 Decoder 方案等都在这方面有所优化。Mini-Gemini 提出了一种新的高分辨率图像理解的优化方案。Mini-Gemini 中使用了 Conv 和 ViT 两种视觉编码器,分别编码高分辨率和低分辨率的图像信息,然后提出一种图像块信息挖掘(patch info mining)的方法,将低分辨率视觉 tokens 作为 Query,高分辨率的视觉 tokens 作为 Key 和 Value,进行交叉注意力操作,再输入到 LLM 中作为视觉 token。
这么做的原因是,低分辨率图像经过 ViT 提取的 tokens 是某个图像块的信息,而高分辨率经过 Conv 提取的特征图也是不同区域的图像特征,如此进行交叉注意力操作,使得每个 query 在其对应的子区域中有较高的注意力值。并且,最终输出的视觉 token 个数也是固定的,不会将高分低分所有的视觉 token 都输入到 LLM 中,计算开销较低。基于这种 dual-encoder + patch info mining 的方案,能够保持图像的细节信息,并且编码过程比较高效。
另外,如果需要更细节的对图像细节的理解,该方法还可以扩展为更高清的版本。具体操作是,在低分编码分支,先将原图长宽各进行两倍上采样并切分,这样最终得到 5 倍于原方案的低分辨率像素数,并最终的视觉 token 数也是 5 倍。
多模态生成
经过上述方案进行高效的高分辨率图像编码后,将视觉 token 和文本 token 拼接并输入到 LLM 中,进行自回归式的生成。不同于大多数仅有文本单模态输出形式的 VLM,Mini-Gemini 还支持图像的生成。现有支持图像生成的多模态大模型,一般是训练模型对齐 LLM 和 Diffusion Model 的文本 embedding,而本文中 Mini-Gemini 则是训练 LLM 理解用户的生图指令,并输出适合 Diffusion Model 生图的 prompt,然后调用现成的 SD 等生图模型,实现图像生成。
高质量数据
高质量的数据,是如今训练 LLM 最重要的因素。
常规的 VLM 数据部分包括文本、多模态的指令数据,文档数据,OCR 数据等。
另一部分很关键的是生图训练数据。Mini-Gemini 的生图方案需要 LLM 能够理解用户的生图意图,并改写、润色出一个适合 SD 模型进行生图的文本 prompt。
如下图所示,这部分训练数据包含两个任务:(a)简单指令 recaption:采用 LAION-GPT-4V 中的 8K 详细描述性图像 caption,并让 GPT-4 反推相应用户的简短图像 caption 输入和适用于 SD 的生图 prompt。 (b) 上下文提示生成:基于 LIMA 和 OpenAssistant2 中的一些高质量的真实对话上下文,生成 prompt 和符合对话上下文的图像,共得到 5K 条指令数据。 为了格式化地出发生图,Mini-Gemini 使用特殊 token <GEN>
来标识本轮对话需要调用 SD 进行生图,用特殊 token <h>...</h>
来包裹 LLM 改写出的生图 prompt,送入 SD 中。
总结
Mini-Gemini 通过 LLM 显式地改写出生图 prompt,并外挂 SDXL 进行图像生成,不同于之前直接嫁接 text embedding 的方案,实测效果还不错。更重要的是,生成自然语言生图的 prompt 具有更好的灵活性和可解释性,可以无缝接入其他的生图模型。另外笔者还有一个想法,能否将输入的图片通过 ip-adapter 等方式也作为生图的条件,从而实现定制化生图等。
高分辨率的编码方法来理解图像细节和文字图等,也是一个技术改进,最近很多新发布 VLM 在做类似的工作。