极市导读
文章进一步拓展了 LLaMA 处理多模态的能力,其不仅仅可以接受图文输入,也可以输出图文交错的文案。相较于纯文本大模型,多模态处理的模态更多,能力更加强大,是通往 AGI 最终极的形态,毕竟人类本身接收的输入以及输出也是多模态的。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
paper link: https://arxiv.org/pdf/2405.11850
前言
在这风气云涌的大模型时代,各家都争先恐后推出自己的大模型,生怕在这个时代输在了起跑线上。国外有 OpenAI 的 ChatGPT, GPT-4[1], Meta 的开源 LLaMA[2] 系列,国内有文心一言,以及开源的 Qwen[3], GLM[4], InternLM[5] 等。而进入了 2024 年,各家的大模型都呈现出一种多模态的趋势,而不仅仅局限于纯文本大模型。例如, OpenAI 上周放出来的 GPT-4o,其不仅仅可以接受文本输入,也接受语音,视频,图片输出,而其输出也从原来的纯文本增强到输出文本,语音以及图片。而在上周五,Meta 也推出了自家的原生多模态大模型: Chameleon[6](变色龙)。这个工作主要也是基于 Meta 的 LLaMA2[7],进一步拓展了 LLaMA 处理多模态的能力,其不仅仅可以接受图文输入,也可以输出图文交错的文案。相较于纯文本大模型,多模态处理的模态更多,能力更加强大,是通往 AGI 最终极的形态,毕竟人类本身接收的输入以及输出也是多模态的。而对于我们做大模型的研究人员,在这个时代,我们应该去更关注什么事情?我们微信模式识别中心做了一些初步的探索,希望给大家未来开发多模态大模型提供一些参考。
Rethinking Overlooked Aspects in Vision-Language Models
相较于早期的一些多模态模型,LLaVA[8] 的提出可以算得上是具有划时代意义。其极大的简化了多模态大模型的结构 (vision encoder, 轻量化的 adapter, 以及 LLM)。同时最早一版的 LLaVA 在 60 多万的数据集上进行预训练,以及 150K 的数据上进行指令微调在当时便能够达到一个非常不错的效果。而在这篇工作中我们主要从预训练数据的有效性,以及如果探索更为合理的 SFT 数据组成两个方面进行探索。这两个方面也是当前大家所忽视的地方。
预训练数据的有效性
后面的许多工作基本上也是沿用了 LLaVA 的基本结构,或则只进行了一些比较小的改动。而更多的精力是放在了数据本身上,例如引入数量更多以及丰富度更多的数据。下面列举了一些模型使用的数据:
QwenVL[9]
DeepSeek-VL[10]
InternLM-XComposer2[11]
我们可以发现这些模型使用的数据量是非常巨大的,同时其中一些数据同质化比较严重,例如 Qwen-VL 中使用的 CC12M, CC3M 以及 LAION-EN 均为通用场景图片的 caption 数据集。巨大的数据量,(1)不仅给我们做实验带来了困难: 我们应该选取多大的数据去做实验探索。过多的数据不仅仅带来巨大的计算开销,极大拉低实验效率。当我们后面扩大数据量的时候, 而过少的数据是否会带来实验结论的不正确(2)同时也引发了我们的另一个疑问:当我们在预训练阶段持续增大数据量的时候,模型的性能会怎样变化。
为了探索这个问题,我们首先在实验设定上进行了一些约定:
基础模型的选择
就像前面说的,LLaVA 结构十分简单高效,为了实验的便利,我们选取 LLaVA-1.5 作为我们的 baseline 进行探索。
Benchmark 的选择
在进行任何实验之间,合理的 benchmark 对于实验结论的有效性至关重要。因为我们希望我们的多模态大模型是一个全能型选手,能够在一系列任务上都有不错的表现,而不是只集中在某些任务上表现不错。因为我们需要一个可以全方位衡量一个多模态模型的评测标准。MMBench[12], MME[13] 以及 SEEDBench[14] 是最近提出的用于全方位衡量一个模型性能的 benchmark。相较于其他 benchmark,他们覆盖了一系列通用能力的评测,提供了更为全面的评估结果。因此,在我们的消融实验中,我们选取他们来作为衡量模型性能的标准。同时在日常生活中,图表以及科学技术类内容也是一种经常出现的媒介,所以我们选取了 ScienceQA[14] 作为其中的一个衡量标准。而评测框架,我们选取了上海人工智能实验室开发的 VLMEvalKit(https//github.com/open-compass/VLMEvalKit)
训练框架的选择
大模型时代选择合适的训练框架也是至关重要,一个好的训练框架可以极大地提升模型训练的效率。我们选取了我们专门为大模型开发的训练框架,其不仅仅支持大语言模型的训练,也支持多模态大模型的训练。为了提升数据加载的效率,我们的框架专门设计了一种高效的数据存储格式,在训练过程中也采用了流式读取。同时,和其他大模型训练框架一样,我们的也是支持多种模型并行方案(TP, PP) 以及数据并行方案 (Deepspeed Zero)。在正式进行实验之前,我们需要验证框架训练的正确性,我们选取了 LLaVA-1.5 作为 baseline,同时使用了三种不同的 LLM, 然后使用我们框架 进行训练,训练效果如下:
其中灰色的部分为 LLaVA-1.5 OpenCompass Leaderboard 上面的结果,绿色的部分是我们用 mimikyu 训练的结果,可以发现模型性能基本接近,同时使用其他几个 LLM 也可以得到一个合理的模型结果。
更好的预训练 Setting
LLaVA 在预训练过程中是将 vision encoder 以及 LLM 进行了固定,而我们可以发现,目前很多工作都在预训练阶段将 vision encoder 放开训练。因此,我们也进行了相关实验,实验结果如下:
我们在预训练过程中放开 vision encoder 和 MLP 整体上可以取得更好的性能,因此在后面的所有实验中,我们都沿用这套 setting。
不断增加预训练数据量
我们从 LAION-5B-en 中抽取了 7 个 split,涵盖了从 1M 到 100M 的数据,然后选取了 3 个系列的模型 (Vicuna-1.5[16], Qwen1.5 以及 Yi),对于每个系列的模型我们选取了两个 size。然后,我们让每个模型分别在这 7 个 split 的数据上进行预训练,然后用 LLaVA-1.5-665K 进行 SFT,实验结果如下:
我们可以发现:
-
现在大家使用的预训练数据集是非常低效的,当我们从 1M 数据增大到 100M 数据,我们可以只能观测到模型在 3 个 benchmark 上的表现有轻微提升,升职下降 -
增大模型的 size 可以显著提升模型的性能 -
数据量 vs 模型性能的趋势对不同类但是不同大小的模型均有一致性。增加模型 size,同时增加数据量,模型性能的提升只来源于模型 size 的增加,与数据量的增加无关。
SFT 数据的选择
LLaVA-1.5-665K 是非常经典的一版 sft 数据集,被后面众多工作采用。相较于 LLaVA-150K, 其主要是在其中引入了学术数据集。后面一系列工作在次基础之上引入了更多的公开学术数据集以此来提升数据集的丰富度,从而提升模型的性能。以下有一些列子:
以上分别是 DeepSeek-VL 以及 InternLM-1.5[17] 中使用的 SFT 数据集。初次见到这么多数据集可能会顿感压抑,但更多的是另几个疑问:
为何要选取这些数据集?
这些数据集是否会相互影响?
为了探索这两个问题,以及得到一个更加有效的 SFT 数据组成,我们提出了一个名为 Individual Select 的方案。我们选取 InternVL-1.5 中使用的数据集作为 candidate,同时新增了一个 Screen 的类别(主要是有关电脑手机截图的 QA)。然后我们进行了人工筛选,首先过滤掉其中一些质量比较低的数据集,然后对于保留下来的,我们将其中一些分类分错的进行了重新分类。例如,ALLaVA 既包含 caption 数据,也包含 conversation 数据,而 InternVL-1.5 却将其硬性分到 conversation 类别下面。下面为我们进行人工过滤以及重新分类得到的数据集合。
然后我们以 LLaVA-1.5-665K 作为 baseline,但是后面一些工作发现将 LLaVA-1.5-665K 中 detail description 数据替换为 ShareGPT4V 的数据会得到更好的效果,所以我们使用这样一个增强版本作为我们最终的 baseline。
然后我们利用 Individual Select 对上表保留下来的数据进行选择,选择流程如下:
1) 对于上表每个类别中的数据集,我们将其加入到 baseline 数据集中,然后让模型在此基础上进行 fine-tuning
2) 如果模型的性能在加入当前数据集后超过或则比肩之前版本,我们就将它加入到我们的 candidate pool 中,否则我们将其丢弃。最后,我们将所有 candidate pool 中的数据集融入 baseline 数据集中,得到一个新的 baseline 数据集
3) 然后在这个新的 baseline 数据集的基础之上,对于上表中其他类别的数据集使用 1) 和 2) 中的流程进行挑选
下图(左)展示了 Individual Select 的工作流程,下图(右)展示了我们最终挑选出来的数据集,这些数据集会加入到增强版本的 baseline 中形成一个新的 SFT 数据组合。
效果对比
我们一些 LLM 使用 Vicuna-7B/13B 的开源模型进行对比,可以发现:尽管我们是基于 LLaVA-1.5, 在我们选取的数据上进行 SFT, 其取得的效果甚至优于了一些使用更加先进技术的模型,例如 LLaVA-Next(使用了大分辨率图片),这也进一步说明了 SFT 数据组成还有很多探索的空间。还要说的一点就是,在这篇文章中,我们的目的并不是提取一种可以使得模型取得 SoTA 的方案,而是想找出一些被忽视但是非常重要的点供未来大家参考。
更多消融
我们比较了使用上表中全量数据集训练的模型与在我们选取出来的数据集上训练的模型,具体结果如下:
可以看出在我们选取数据集上训练的模型明显优于全量数据训练出来的模型
同时我们下图也展示了,在 Individual Select 过程中,随着更多类别数据的加入,模型的性能有持续的提升:
讨论
正如前文所探索的那样,在预训练阶段,随着数据集的增大,我们并未得到一个性能持续增加的模型,我们认为可能有以下两个原因: 1) 预训练数据集中的噪声比较大。因为诸如 LAION-5B 这样的数据都是从互联网上爬取下来的,有很多噪声,同时也只经过了一些最基础的过滤操作 2) vision encoder 在之前训练的过程中(例如 CLIP 训练过程中)使用的数据分布和我们当前预训练阶段使用图片分布类似,因此我们预训练并未带来任何新知识的注入。所以,在当前预训练阶段使用一些具有不同分布的图片或许可以带来效果进一步的提升。例如 Vary 中使用 OCR 数据来增强 vision encoder 对文字的提取能力。
局限性
尽管我们在 SFT 数据的选取过程中尽量在避免 overfitting,但是我们可以发现我们模型最终还有呈现出来一定的 overfitting 现象,例如我们模型在其他 benchmark 上超越其他模型的 gap 就不是那么大。同时,我们现在对于 SFT 数据集的选取仅仅以单个数据集为最小细粒度,尽管最终选择的数据可以给模型带来比较大的性能提升,但是方案仍然是比较粗糙的。然后,我们也没有对 SFT 数据集的质量以及分布做进一步的探索。
未来工作
这个工作的主要目的并不是取得一个 SoTA 的方案,而是探索一些曾经被大家忽视但是非常关键的地方。尽管我们的模型基于我们的探索结果也可以达到一个比较不错的性能,但是仍然具有比较大的提升空间。未来,我们主要关注点会放在三个方面: 1) 探索获取更高质量数据的方案 2) 知识注入: 除了使用目前这些通用场景的 caption 数据集,我们会尝试引入其他分布的一些数据集 3) 将最新的一些技术加入进来,例如使用更大分辨率的图片。
参考
[1] GPT-4 Technical Report
[2] LLaMA: Open and Efficient Foundation Language Models
[3] Qwen Technical Report
[4] GLM: General Language Model Pretraining with Autoregressive Blank Infilling
[5] InternLM2 Technical Report
[6] Chameleon: Mixed-Modal Early-Fusion Foundation Models
[7] Llama 2: Open Foundation and Fine-Tuned Chat Models
[8] Visual Instruction Tuning
[9] Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond
[10] DeepSeek-VL: Towards Real-World Vision-Language Understanding
[11] InternLM-XComposer2: Mastering Free-form Text-Image Composition and Comprehension in Vision-Language Large Model
[12] MMBench: Is Your Multi-modal Model an All-around Player?
[13] MME: A Comprehensive Evaluation Benchmark for Multimodal Large Language Models
[14] SEED-Bench: Benchmarking Multimodal LLMs with Generative Comprehension
[15] Learn to Explain: Multimodal Reasoning via Thought Chains for Science Question Answering
[16] Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality
[17] How Far Are We to GPT-4V? Closing the Gap to Commercial Multimodal Models with Open-Source Suites

公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货

点击阅读原文进入CV社区
收获更多技术干货

