摘要
信息以多种形式存在。 多模态原生 AI 模型对于整合现实世界信息和提供全面的理解至关重要。 虽然专有的多模态原生模型已经存在,但它们的缺乏开放性给采用带来了障碍,更不用说适应了。 为了填补这一空白,我们介绍了
Aria
,这是一种开放的多模态原生模型,在各种多模态、语言和编码任务中表现出色。
Aria
是一个专家混合模型,每个视觉符元和文本符元分别具有 3.9B 和 3.5B 个激活参数。 它在性能上超越了 Pixtral-12B 和 Llama3.2-11B,在各种多模态任务中与最好的专有模型竞争。 我们从头开始预训练
Aria
,遵循 4 个阶段的管道,逐步为模型配备强大的语言理解、多模态理解、长上下文窗口和指令遵循能力。 我们开源了模型权重以及一个代码库,方便在实际应用中轻松采用和调整
Aria
。
代码:https://github.com/rhymes-ai/Aria
网站:https://rhymes.ai/
†
1
引言
在本报告中,我们介绍了
Aria
,这是第一个开放的专家混合 (MoE) 模型,它是
多模态原生
的。 多模态原生这个术语在之前的文献中被用来指代不同的模型能力,但没有明确的共识。 这里,我们提供一个可量化的定义:
多模态原生模型指的是单个模型在多个输入模态(例如文本、代码、图像、视频)中具有强大的理解能力,并且与类似容量的模态专用模型相匹配或超越它们。
我们的定义与 GPT-4o 或 Gemini-1.5 等专有多模态模型的用户体验一致,用户无需区分来自不同模态的输入。 相反,该模型预计能够无缝处理和整合多个模态的输入,并使用单个模型。
虽然专有多模态原生模型并不罕见,但它们的训练方法在很大程度上仍未公开。 因此,大多数开源模型要么是模态专用的,要么在跨模态性能方面表现不佳。 在这项研究中,我们填补了这一空白,并引入了从头开始开发多模态原生模型的训练方法,其中包括以下关键方面:
-
•
模型架构。
我们模型的核心是一个细粒度的专家混合解码器, 与密集解码器相比,它可以实现更快的训练和推理速度, 因为通过专家专门化,参数利用率更高。
Aria
MoE 每个文本符元激活 35 亿个参数,总共有 249 亿个参数。 使用 4.38 亿个参数的轻量级视觉编码器将可变长度、大小和纵横比的视觉输入编码为视觉符元。
Aria
具有 64k 个符元的长多模态上下文窗口。
-
•
数据。
Aria
在 6.4T 个语言符元和 400B 个多模态符元上进行预训练。 我们开发了一个严格的流程来从各种来源整理高质量数据。 多模态预训练数据包括四大类:来自通用爬虫的交织图像文本序列、合成图像字幕、文档转录和问答对、合成视频字幕和问答对。
-
•
训练流程。
我们设计了一个包含四个阶段的训练流程,包括语言预训练、多模态预训练、多模态长文本预训练和多模态后训练。 每个阶段旨在逐步增强模型的某些能力,同时保持早期阶段获得的能力。 我们的流程高效且有效地利用了数据和计算资源,以最大限度地提高模型性能。
遵循此方法,
Aria
作为一种开放的多模态原生模型,展示了最先进的性能。 与 Pixtral-12B
(Mixtral, 2024)
和 Llama3.2-11B
(Dubey et al., 2024)
相比, Aria 在各种多模态、语言和编码任务中展示了更优越的性能, 同时由于激活参数数量较少,推理成本更低。 此外,
Aria
在各种多模态任务上的表现也与 GPT-4o 和 Gemini-1.5 等专有模型相当。 详细的基准测试结果见表
1
。
表 1:
跨各种多模态和语言基准的性能比较。 竞争模型的结果来自经过验证的官方来源或使用官方设置重新运行。
我们根据 Apache 2.0 许可发布
Aria
, 可供学术和商业用途免费使用。 为了便于更容易地采用, 我们开源了一个训练框架,该框架允许在各种数据源和格式上微调
Aria
, 只需使用一个 GPU。
2
模型
2.1
细粒度混合专家
MoE 已成为构建计算高效大型语言模型的首选架构,优于密集模型
(Fedus et al., 2022; Jiang et al., 2024; Dai et al., 2024; Ludziejewski et al., 2024)
。 MoE 的核心思想是将 Transformer 中的每个前馈层 (FFN) 替换为一组专家,其中每个专家在结构上与 FFN 相同。 每个输入符元仅被路由到每层中的一组专家。 专家激活的稀疏性确保了 MoE 层的计算效率。
由于多模态数据的巨大多样性, 我们假设
专家专业化
对于多模态 MoE 理解来自不同数据分布的输入至关重要。 为此, 我们使用大量细粒度的专家,这些专家具有比标准 FFN 更小的 FFN 隐藏维度,类似于
(Dai 等人,2024)
。 特别是,
Aria
在每个 MoE 层中拥有 66 个专家, 其中 66 个专家中的 2 个在所有输入之间共享,以捕获通用知识, 而另外 6 个专家则由路由模块为每个符元激活。 表
2
显示了详细的架构配置。
Aria
与之前的多模态 MoE 大不相同,后者要么设计特定于模态的专家架构,要么依赖于密集模型的升级
(Lin 等人,2024b; Shen 等人,2023; Lin 等人,2024a)
。 我们的多模态原生 MoE 从头开始预训练,使用模态通用专家。 在第
4.2
节中, 我们展示了多模态专家专业化在预训练后自然出现。
表 2:
我们 MoE 解码器的架构配置。
△
表示共享专家。
2.2
视觉编码器
我们设计了一个轻量级的视觉编码器,将视觉输入(即图像或视频帧)转换为具有与词嵌入相同特征维度的连续视觉符元, 这使得 MoE 能够无缝集成视觉和语言输入。
从先前工作
(Li 等人,2023; Bai 等人,2023; Laurençon 等人,2024)
中汲取灵感, 我们的视觉编码器由视觉 Transformer (ViT) 和投影模块组成。 ViT 以其原生纵横比接受图像,作为可变长度的补丁序列
(Lee 等人,2023; Dehghani 等人,2023)
, 这保留了图像中固有的信息结构。 我们将图像大小分为三个范围:(1) 中分辨率图像,其中较长边调整为 490 像素;(2) 高分辨率图像,其中较长边调整为 980 像素;(3) 超高分辨率图像,其中图像被动态分解为多个高分辨率图像,遵循类似于
Liu et al. (2024)
的策略。 我们使用 SigLIP-SO400M 模型
(Zhai et al., 2023)
初始化 ViT 的权重,并在我们的多模态数据上继续预训练 ViT。
我们的投影模块将来自 ViT 的图像嵌入序列转换为视觉符元序列。 它包含一个交叉注意力层和一个 FFN 层。 交叉注意力层使用一组可训练向量作为查询,并将图像嵌入作为键。 中分辨率图像由 128 个查询处理, 而高分辨率图像由另外 128 个查询处理(总共 256 个查询)。 然后将来自交叉注意力层的输出馈送到 FFN, 然后输出视觉符元,供 MoE 解码器进一步处理。
2.3
基础设施
Aria
在经过广泛修改的 Megatron 框架
(Shoeybi et al., 2019)
上进行训练。 我们摒弃了流水线并行,而是结合了专家并行
(Lepikhin et al., 2020)
和 ZeRO-1 数据并行
(Rajbhandari et al., 2020)
来优化性能。 由于精心设计的并行方法和较小的模型尺寸,
Aria
可以有效地进行训练,无需使用张量并行, 这显著降低了通信开销并提高了训练效率。
我们实现了一个负载均衡损失,以防止路由崩溃并鼓励平衡的专家激活。 我们发现先前工作
(Fedus et al., 2022; Dai et al., 2024)
中的专家级负载均衡损失对我们的 MoE 过于严格,因为专家数量过多。 因此,我们将负载均衡放宽到专家组,其中每个组包含 8 个细粒度专家。 我们还采用了 z-loss
(Zoph et al., 2022)
来稳定训练。
3
训练
本节概述了我们的四阶段训练流程。 在每个阶段,模型的目标都是学习新的能力,同时保持之前所获得的能力。 我们在每个阶段都进行评估,以确保以数据高效和计算高效的方式实现这一目标。
3.1
语言预训练
第一阶段使用大量的经过整理的语言数据(转换为离散文本符元)对 MoE 解码器进行预训练,使用下一个符元预测损失,这使得 MoE 能够学习有关世界的通用知识。 上下文窗口长度为 8K 个符元。
语言数据。
我们的语言预训练数据总共包含 6.4T 个符元,这些数据来自各种数据源,这些数据源包含截至 2024 年 5 月的知识。 我们在不同的粒度上对数据进行去重,并使用基于规则的方法和基于模型的质量分类器相结合的方法,进行严格的质量过滤。 为了增强模型的上下文学习能力,我们采用数据聚类,并将类似数据在训练期间打包到同一个序列中,类似于
Shi 等人(2023)
中的方法。 然而,他们最初的方法可扩展性较差,在处理数万亿个符元时可能会生成许多长尾结构。 相反,我们利用最小生成树算法进行语言数据聚类,这带来了明显的性能提升。
3.2
多模态预训练
第二阶段使用语言和多模态数据的混合体对 MoE 解码器和视觉编码器进行预训练,使用相同的下一个符元预测损失。 这一阶段旨在使模型具备广泛的多模态理解能力,同时保持甚至提高其语言理解能力。 为此,语言数据包含一个 1T 个符元的高质量子集,涵盖代码、推理和知识等主题。 多模态数据包含来自各种来源的 4000 亿个符元,可分为以下四个主要类别。
交织的图像文本网页数据。
我们从 Common Crawl 中提取和过滤网页。 过滤过程首先删除图像或文本质量低的网页。 然后,它对图像进行去重,并删除图像和文本的整体 CLIP 得分低的网页
(Radford 等人,2021)
。 此外,我们调整图像在序列中的位置, 如果句子具有更高的 CLIP 得分并且位于图像前面,则将图像移到句子的前面。 总共,我们整理了 1900 亿个交织的图像文本符元。
合成的图像标题。
直接从网页图像中提取的替代文本通常很短、描述性较弱且有噪声。 之前的工作表明,大规模的合成数据可以改善多模态预训练
(Li 等人,2022)
。 因此,我们使用一个小模型来合成图像标题,该模型已学会通过重写替代文本生成更长、更具描述性的图像标题。 我们为 LAION-400M 数据集中
Schuhmann 等人 (2021)
的 3 亿张图像创建了合成标题, 从而总共产生了 700 亿个多模态符元。
文档转录和问答。
为了提高模型理解文本密集型图像的能力, 我们使用公开的 OCR 方法将文档图像转录为文本。 我们还使用纯文本、图表 json 或表格/方程式 latex 代码来渲染图像。 为了增强模型不仅能够转录文本而且能够理解其含义的能力, 我们使用语言模型来创建合成问答对。 总共,我们的多模态文档数据包含 1020 亿个符元。
视频字幕和问答。
我们从各种来源收集了 440 万个不同长度的视频。 我们训练了一个模型来为视频生成帧级密集描述。 然后,我们使用语言模型根据密集视频描述生成问答对和视频摘要。 总共,我们的视频数据包含 350 亿个符元。 我们选择长度在 8K 以内的样本进行多模态预训练。
3.3
多模态长上下文预训练
在此阶段,我们在长序列上进行预训练,以将模型的上下文窗口扩展到 64K 个符元。 语言长序列数据是从预训练数据源中选择的。 多模态长序列数据包含长视频、长文档和从短多模态数据构建的合成长序列。 特别地,我们将一系列独立的图像连接起来作为输入,并将它们的图像描述连接起来作为目标。 此阶段消耗了 120 亿个语言符元和 210 亿个多模态符元, 其中 330 亿个符元的 69% 是长序列。 我们将 RoPE 基频超参数从 100K 提高到 5M。
在此阶段之后,模型完美地解决了针线任务
(Kamradt, 2023)
,最多可达 64K 上下文窗口。 它还在长视频理解和长多模态文档理解任务方面表现出了显着的性能提升。
3.4
多模态后训练
最后的后训练阶段将学习率退火以使模型收敛。 学习侧重于改进模型的问答和指令遵循能力, 使用高质量开源数据集和人工标注数据集的混合, 涵盖多模态、代码、数学和推理等领域。 此阶段总共消化了 200 亿个符元。
4
评估与分析
4.1
基准测试结果
表 3:
对视频和文档进行长上下文多模态理解评估。 竞争模型的结果来自经过验证的官方排行榜或使用官方设置重新运行。
在表
1
中, 我们将
Aria
与各种已建立基准中类似规模的领先开源模型和专有模型进行比较。 在表
3
和表
4
中, 我们分别考察了长上下文多模态理解和指令遵循能力。 基于评估结果,我们强调以下关键观察结果。
Aria
是同类最佳的开放多模态原生模型