↓
推荐关注↓
在「造车」与「AI」两条截然不同的赛道上,苹果在今年毅然决定取消搞了十多年的电动车项目,而宣布:公司将于 2024 年在生成式人工智能领域“开辟新天地”。
果不其然,在战略方向定下之后,他们的动作很快。
一方面,据彭博社最新报道,苹果收购了一家来自加拿大专门研究基于视觉技术的 AI 初创公司 DarwinAI。虽然苹果及 DarwinAI 尚未宣布这笔交易,但是根据 LinkedIn 部分专家资料显示,这家初创公司团队的几名成员于 1 月份已经加入了苹果的机器学习团队。
另一方面,在 3 月 14 日,也有不少网友发现苹果在 30 位研究员的加持下,带着一款名为
MM1 的多模态大模型
强势入场。
苹果的取名也一如既往地简单好记:M1 是自家的芯片,那 MM1 就是自己的大模型。
此外,苹果更是一上来便说明,自己走了和现在开源、闭源大模型不同的分享路线,正如其论文名称所示,其直接在论文中分享了关于 MM1 多模态大语言模型的预训练方法、分析和启示。
论文地址:https://arxiv.org/pdf/2403.09611.pdf
因业界的“不透明性”,苹果发布多模态大模型——MM1
所谓多模态,是指在各种格式(如图像文件、视频文件和音频文件以及纯文本数据)上训练的大规模语言模型。
之所以发布 MM1,苹果研究团队在论文中指出,主要原因是因为现在很多 AI 公司在 AI 模型的学习方法上有着“不透明性”。
行业中现有的 MLLM(Multimodal Large Language Model,多模态大型语言模型)主要分为两类:闭源模型和开放模型。
但是在苹果团队看来,无论是开放式的还是封闭式的,大多数的模型对于他们所使用的算法设计选择的过程几乎什么都没有公开,特别是关于多模态预训练。
为了在这一领域进一步研究,苹果研究团队认为,当务之急是分享如何建立这样模型的方法。
所以,一不做二不休,苹果发表了这篇论文,不仅带来了 MM1,还在论文中直接记录了 MLLM 的构建过程,也试图尽可能地去分享制定设计的经验教训。
300 亿参数的 MM1 可以用来干些什么?
研究人员在论文中解释道,通过在
模型架构决策
和
预训练数据选择上
执行小规模消融实验,以及通过对图像编码器、视觉语言连接器和各种预训练数据选择进行细致全面的分析,他们发现了一些关键的设计经验。
详细来看,在建模方面,研究人员发现设计的重要性按照以下顺序来:
图像分辨率、视觉编码器的损耗和容量,以及视觉编码器的预训练数据。
此外,研究人员使用三种不同类型的预训练数据:
图像字幕、交错图像文本和纯文本数据。
由此看到,当涉及到少样本和纯文本性能时,交错和纯文本训练数据是至关重要的,而对于零样本性能,字幕数据最为重要。
在监督微调(SFT)后,无论是在预训练中使用的评估上,还是在更多基准上,这些趋势都保持不变。这表明,在预训练中发现的能力和建模决策在微调后得以保留。
最后,通过使用更大的 LLM(从 3B、7B 到 30B)以及探索混合专家模型(MoE)(从使用 64 位专家的 3B MoE,到使用 32 位专家的 7B MoE)来扩展苹果的模型,从而
建立了 MM1,这是一个多模态模型系列,
参数多达 300 亿。
由于进行了大规模的多模态预训练,MM1 有不错的图像识别和推理能力。更具体地说,Apple MM1 非常擅长在用户输入的图像和文本中寻找“规则”。
就如下图所示,当用户给出
排列的图像,并注明
每张上传的图像有关的“对象”和“对象编号”的文本
:
除此之外,MM1 还具有:
(a) 统计对象并遵循自定义格式,输出文本
(b) 参照图像的某些部分并执行 OCR 识别
(c) 展示有关日常物品的常识和文字知识
(d) 执行基本的数学功能。
经过指令调整后,MM1 还具有很强的少量学习能力。
比如说下图,上传一张照片,MM1 可以给出具体的数量、识别图片的数值、动物种类等等。
同时,还能输入多张图片。比如下图:
Q:“识别图片中是什么数字显示在蛋糕上。然后算出总和。”
MM1-30B-Chat:第一个图像显示的是一个蛋糕上的数字 3,第二个图像显示的是一个蛋糕上的数字 4。和
为 7。
Q:我向你展示一幅图像,你需要预测当图像旋转 180 度时显示的字母或数字。
MM1-30B-Chat:W,9
Q:我给你看几张图,你的任务是回答我的问题。估计每张图像的温度(以摄氏度为单位)。也提供理由。
MM1-30B-Chat:
-
海滩上带伞的图像:25-30摄氏度。伞撑起来了,人们都在海滩上,暗示着一个温暖、阳光灿烂的日子。
-
飞机飞越雪地的图像:-20至-30摄氏度。飞机正飞越一片白雪覆盖的地区,地面上有车辆,说明冬天天气寒冷。
-
草地上的动物吃草的图像:15-20摄氏度。动物在吃草,这通常发生在较温和的天气条件下。草是绿色的,进一步表明温带气候。
从示例看来,整体效果还是不错的。
据苹果研究员透露,MM1 这些模型的性能优于大多数相关研究。特别是,预训练模型 MM1 是 SOTA,在少样本设置下的字幕和视觉问题解答(VQA)任务中,无论是小尺寸还是大尺寸,其性能都优于 Emu2、Flamingo 和 IDEFICS。经过 SFT 处理后,最终模型在 12 个既定的多模态基准测试中取得了具有竞争力的性能。
MM1 是如何构建出来的?
那么,MM1 究竟是怎么“造”出来的?苹果研究员首先从三个维度展开了分享:
-
架构:研究员研究了不同的预训练图像编码器,并探索了将 LLM 与这些编码器连接起来的各种方法。
-
数据:他们还考虑了不同类型的数据及其相对混合权重。
-
训练程序:探讨了如何训练 MLLM,包括超参数以及在哪个阶段训练模型的哪些部分。
起步阶段,由于训练一个大型 MLLM 需要大量的资源,研究员采用了一种简化的消融设置。
具体来看,研究员使用一个较小的模型基础配置,并在此基础上进行删减。每次修改一个组件,无论是架构模块还是数据源,然后评估设计选择对每个组件的影响。这样,研究员就能得出最终的模型-数据配置,并在模型参数和训练时间方面进行扩展。
消融的基本配置如下:
-
图像编码器:在 DFN-5B 和 VeCap-300M 上使用 CLIP loss 的 ViT-L/14 模型;图像大小为 336×336。
-
视觉语言连接器:C-Abstractor,含 144 个图像标记。
-
预训练数据:混合字幕图像(45%)、交错图像文本文档(45%)和纯文本数据(10%)。
-
语言模型:1.2B Transformer 解码器语言模型。
为了评估不同的设计决策,研究者在各种 VQA 和字幕任务中使用了零样本和少样本(4 个样本和 8 个样本)性能:COCO Cap tioning、NoCaps、TextCaps、VQAv2、TextVQA、VizWiz、GQA和 OK-VQA。
模型架构消融
在这项工作中,研究员分析了使 LLM 能够处理视觉数据的组件,分析如何用最佳方式预训练视觉编码器,以及如何将视觉特征连接到 LLM 的空间。
过去,大多数 MLLM 都使用 CLIP 预训练图像编码器,而最近的研究也开始探索使用纯视觉自监督模型(如 DINOv2)作为图像编码器。在这里,苹果研究员主要消除了图像分辨率和图像编码器预训练目标的重要性。他们使用的是 2.9B LLM(而不是 1.2 B),以确保有足够的容量来使用一些较大的图像编码器。
在实验过程中,研究人员发现,将图像分辨率从 224 提高到 336,所有架构的所有指标都提高了约 3%。将模型大小从 ViT-L 增加到 ViT-H,参数增加了一倍,但性能提升不大,通常不到 1%。最后,加入 VeCap-300M (一个合成字幕数据集)后,在少量拍摄的情况下,性能提升超过 1%。
在 VL 连接器维度,研究人员发现视觉标记数和图像分辨率最重要,而 VL 连接器的类型影响不大。
下图显示的结果表明,随着视觉标记数量或图像分辨率的增加,零样本和少样本的性能都会提高。
这一点,与之前很多专家发现的情况有所不同,即不同的架构设计似乎并不能最终产生更强的模型。经过指令调整后,所有三种架构在 336px 和 114 token 设置下都取得了非常相似的结果。
大规模和适合任务的数据对训练高性能模型至关重要。通常,模型的训练分为两个阶段:预训练和指令调整。前一阶段使用网络规模的数据,而后一阶段则使用特定任务策划的数据。
有两类数据通常用于训练 MLLM:由图像和成对文本描述组成的字幕数据;以及来自网络的交错图像-文本文档。需要注意的是,字幕数据往往包含相对较短的文本,与图像的相关性较高。
相反,交错数据中的文本篇幅更长、种类更多,但与周围图像的相关性平均较低。最后,苹果研究人员还采用了包括纯文本数据,以帮助保留底层 LLM 的语言理解能力。以下是所有数据集:
预训练数据消融
在预训练数据消融环节,研究员使用了与消融模型相同的模型设置,唯一不同的是,在这里训练了 200k 步,以充分利用大规模数据训练。
最终,研究员总结出以下经验:
-
数据经验 1:交错数据有助于提高少样本和纯文本性能,而字幕数据则能提高零样本性能。
-
数据经验 2:纯文本数据有助于实现少样本和纯文本性能
-
数据经验 3:精心混合图像和文本数据可获得最佳的多模态性能,并保留较强的文本性能。
-
数据经验 4:合成数据有助于少量学习
根据以上,苹果研究员最终确定了 MM1 多模态预训练的最终方法:
-
图像编码器:使用了分辨率为 378x378px 的 ViT-H 模型,并在 DFN-5B 上使用 CLIP 目标进行了预训练。
-
视觉语言连接器:由于视觉标记的数量最为重要,因此研究员使用了具有 144 个 token 的 VL 连接器。实际架构似乎不太重要,其选择了 C-Abstractor。
-
数据:为了保持零样本和少样本的性能,研究员采用了 45% 交错图像-文本文档、45% 图像-文本对文档和 10% 纯文本文档这样的组合数据。
为了提高模型性能,研究员将 LLM 的大小扩展到 3B、7B 和 30B 个参数。
底层 LLM 在同一纯文本数据集上进行内部训练。由于 LLM 和视觉编码器都经过了预训练,研究员将它们作为 MM1 的初始化,并在上述数据组合上进行了 200k 步(约 100B 标记)的多模态预训练。
所有模型都是在序列长度为 4096、每个序列最多 16 幅图像(分辨率为 378×378)、批量大小为 512 个序列的情况下完全不冻结地进行预训练的。所有模型均使用 AXLearn 框架进行训练。
最终,研究员通过适当的提示对字幕和 VQA 任务中的预训练模型进行了评估。得到如下结果: