阿波罗和视频大型多模态模型-LMMs-的设计选择

阿波罗和视频大型多模态模型(LMMs)的设计选择

原文链接

作者提供的图片 - Flux.1 Schnell

作者提供的图片 - Flux.1 Schnell

正如我们一直期待的,模型在理解不同类型的输入方面变得越来越强大。我们已经看到了图像变换模型(参见我关于微调 Flux和 MM1 背后的研究的博客),现在我们开始看到视频模型出现在场景中。

2024 年 12 月,Meta 揭幕了其新的 Apollo 系列模型。当他们揭幕这些模型时,他们也发布了一篇论文,详细介绍了他们在大型多模态模型(LMMs)方面的研究和工作。这篇论文充满了许多精彩细节,所以与其试图涵盖所有内容,我将会专注于他们在构建模型时强调的 4 个主要设计选择。

让我们深入探讨!

背景

嵌入

让我们首先列出一些快速想法,这些想法对于理解这里发生的事情很重要。每个 Transformer 都依赖于嵌入作为其输入。然而,用户输入通常首先从用户理解的内容(文本、视频)转换为标记,然后转换为嵌入。为了转换为嵌入,我们使用嵌入模型。对于多模态输入,我们通常为每种输入类型使用不同的编码器。

论文中的图 1

图 1 来自该论文

虽然我们可以很容易地看到如何使用它来设置图像编码器,但并不容易看到我们应该如何调整这个过程以适应视频。

我们将看到作者探讨了如何最佳选择编码器。

ApolloBench 数据集

作者首先对现有的视频基准进行了分析。基准需要分析,这样我们才知道在这些基准上的高分实际上与更好的性能相关。然而,作者发现其中一些基准可以通过模型只理解输入数据的一部分来操纵。例如,如果模型只理解视频的一帧,那么它的得分不应该很高——然而,在令人惊讶的许多基准中,它做到了这一点(如红色箱子和须状图所示)。作者发现,相当一部分可以通过仅依靠文本和图像理解来回答——这使得它们成为视频理解的更多指南。此外,当在基准上比较不同模型时,他们发现许多模型的性能是聚集的,导致基准不那么有用。

论文中的图 2

图 2 来自该论文

基于这些发现,作者决定创建一个新的基准,以更清晰地测试视频理解和区分模型性能。作者只选择了多选题,以避免需要从外部模型进行额外分析来回答问题。他们移除了那些超过 50%的模型回答正确的问题,以及那些不需要任何视频理解的问题。对于剩余的问题,作者根据他们测试的技能将它们分为 5 个类别:时间 OCR、自我中心、空间、感知和推理。从每个类别中只保留了 400 个问题,这些问题在模型之间产生了明显不同的结果,并保留在基准中。

我们将看到他们如何使用他们新的数据集来指导他们几乎所有的设计选择。

视频采样

我们面临的第一项设计选择是决定拉取多少数据。对于一个图像,我们只有一个帧,因此该帧应该被处理。然而,对于视频,我们通常以每秒 30 帧的速度运行。虽然每一帧都有细微的差别,但它们通常并不如此根本性地不同,以至于丢失一帧就会成为问题(以 Phi 现象为例

均匀采样与每秒帧数

在论文中,他们比较了均匀采样和每秒帧数采样(FPS 采样)。均匀采样意味着我们将从视频中随机抽取一帧。假设我们有一个 10 秒的视频剪辑,每秒 30 帧。如果我们想进行大小为 5 的均匀采样,我们将随机选择 300 个可能的帧中的 5 个,并通过我们的嵌入器传递。虽然这保证了即使对于更长的视频,我们也将始终有足够的内存,但这里有一些显著的扭曲,使得这种方法不太理想。最重要的是,通过随机选择,我们丢失了帧之间的时间元素,可能导致模型对事物发生速度有一个错误的看法。相比之下,基于每秒的采样将保持帧之间的时间信息,但需要通过模型发送更多的标记,因此在内存方面成本更高。

性能比较

为了比较采样选项,他们训练了五个不同的模型,这些模型要么以固定的速率进行均匀采样(8、16、32 和 64),要么以每秒帧数(FPS)采样。然后他们在测试时评估它们。左边的图显示了模型根据相应的训练方法进行测试。如您所见,在 ApolloBench 数据集的所有 5 个类别中,FPS 采样表现更好(见图 4 左)。

图 4(左中和右中)来自论文

图 4(左中和右中)来自该论文

为了消除训练差异的疑虑,作者们还使用每秒帧数推理采样对所有模型进行了实验。我们再次看到,每秒帧数训练的模型表现最佳。尽管如此,鉴于均匀采样模型(尤其是采样帧数较少的模型)取得的重大改进,值得注意的是 FPS 采样似乎非常强大。

在 FPS 采样取得成功的基础上,作者们想要了解如何最好地使用它所要求的额外标记。下方的图表显示了作者们如何通过标记重采样器(下文将详细介绍)调整每个帧发送给模型的标记数量。图表中的颜色表示准确度,x 轴是每秒帧数,y 轴是每秒标记数,靠近虚线红线的数字表示每帧的标记数。

图 4(右)来自论文

图 4(右)来自论文

最高的持续准确度似乎出现在每帧 8 到 32 个标记之间。我们看到每帧标记数更高或更低时准确度较低,这表明这里存在一个权衡,即处理更多(或更少)数据时的权衡。还值得注意的是,每秒帧数并不像每秒标记数和每帧标记数那样重要。对我来说,这表明某些关键时刻需要高度采样,而我们目前无法预测这些时刻,因此最好的办法是让多个连接同时发挥作用。

视频表示

在我们之前讨论过如何为不同类型的输入使用不同的编码器。对于文本,我们可能会使用类似tiktoken的工具,而对于更复杂的输入,行业还没有统一采用一种形式。这意味着当我们试图将视频表示为标记时,我们应该考虑多种不同的编码策略,这些策略基于其他模态(尤其是图像)的成功经验。

图像编码器

图像编码器通常有两种类型:语言监督编码和自监督编码。这两种编码方式的使用方法相同(输入图像,输出嵌入),但训练方式不同。对于语言监督编码模型(如 CLIP),我们有图像和描述性文本作为输入。我们分别嵌入两者并尝试使两个嵌入相似。此外,对于批次中的每一对图像-文本,我们尽力使嵌入与其他图像-文本对的嵌入不同(这是 CLIP 的对比部分)。另一方面,自监督编码只接受图像作为训练输入。模型通过玩游戏(如预测旋转图像的角度或预测图像块之间的相对位置,这些你在 reCAPTCHAs 中见过)来学习创建正确的嵌入。这里的目的是驱使模型学习图像的有用部分,而不需要标签。

图 1 来自《从自然语言监督学习可迁移的视觉模型》

《从自然语言监督学习可迁移的视觉模型》中的图 1

视频编码器

由于视频既有图像又有声音,这里的编码策略可能比图像更复杂。许多领先的视频编码器所做的是基于图像的策略,例如掩码和语言监督,以驱动我们的视频编码器学习关键特征。同样,基于我们在 CLIP 中使用的对比损失,我们可以使用对比损失来使嵌入器将视频和音频数据对齐。让我们更深入地探讨掩码和对比损失策略,通过一个例子解释它们是如何工作的。

对于掩码处理,想象一下你有一个熊在树林中行走的视频。我们通常看到人们随机选择视频的几个部分进行掩码。这个掩码输入随后被嵌入器处理,嵌入器的目标是正确预测最后的标记。一旦我们看到令人满意的聚合损失,我们只需在最后调整我们的模型以输出最终的 logits 而不是下一个标记的概率。我们使用这些 logits 作为嵌入

对于多模态对比损失,我将通过一个例子来解释这一点。假设我们有 3 个视频,每个视频都有音频。我们首先使用视频嵌入器嵌入所有视频,使用音频嵌入器嵌入所有音频。这给我们 3 对嵌入 logits:(V1, A1),(V2, A2),(V3, A3)。我们现在对所有的 3 对进行余弦相似度计算,这样我们可以教会模型区分所有这些对。目标是我们的正确对(V1, A1)的余弦相似度高于错误对(V1,A2)和(V1, A3)。一旦我们这样做足够多,模型就会学会如何为音频-视频对生成相似的嵌入。

作者提供的图像 - 对比损失的示例计算

作者提供的图像 – 对比损失的示例计算

结合图像和视频编码器

到目前为止,你可能想知道为什么我们讨论了图像编码器,因为已经有了视频编码器。在测试了多种不同的视频编码器后,作者发现它们在视频数据上并不比图像编码器有明显的优势。虽然图像编码器在其嵌入中不会有任何时间信息,但它们似乎提供了更高质量的嵌入,从而允许更好的模型性能。

作者使用不同的编码器(视频和图像)训练了几个模型,然后在下面的图表中比较了它们的性能。你可以看到,总的来说,语言监督模型优于自监督模型。重要的是,表现最好的模型是SigLIP SO400M,它是一个图像嵌入器。

论文中的图 5(左)

论文中的图 5(左)

他们随后测试了通过配对编码器来提高准确性的可能性。假设是,虽然图像编码器在时间理解方面表现不佳,但在空间理解方面表现良好。另一方面,视频编码器在时间理解方面表现良好,但在空间理解方面表现不佳。下面的图表显示了某些图像编码器和视频编码器对的性能。有趣的是,将表现最好的图像编码器(SigLIP SO400M)与表现最好的视频编码器(InternVideo2)结合起来确实提高了准确性,超过了各自单独所能达到的(提高了约 4%)。

论文中的图 5(右)— 注意这里的 Y 轴与图 5(左)相同

论文中的图 5(右)— 注意这里的 Y 轴与图 5(左)相同

视频标记采样

我们的视频编码输出比模型期望的隐藏层低维度的嵌入。解决这个问题的典型方法是对其进行上采样,我们将投影放大 2-4 倍。自然地,这个附加信息并不像我们的常规嵌入那样高信号,因此这是一个我们可以寻找来修复的地方。一个解决方案是重采样——即将多个标记组合成一个。这已经在图像模型中尝试过,并且没有降低性能。有几种不同的方法可以组合标记(使用 QFormer,平均池化),但之前的论文发现通道连接是最佳的,因此这是作者们所测试的。

“感知器:迭代注意力下的通用感知”中的图 1

“感知器:迭代注意力下的通用感知”中的图 1

作者们尝试了 3 种技术:mlp 上投影 + 平均池化2D 卷积 + 平均池化,和感知器重采样。MLP 上投影是使用多层感知器来处理我们的上采样,然后对所有现在扩展的张量进行平均池化。2D 卷积是使用卷积操作来组合两个张量,然后从那里使用平均池化来输出结果。最后,我们有感知器重采样,它使用感知器架构(如上图所示)来确定如何最好地组合标记。

如您从下面可以看到,使用感知器重采样器结合标记导致了最高的整体得分。

论文中的表 1

论文中的表 1

视频标记集成

与其他多模态模型一样,一个关键的设计选择是如何结合不同的标记类型。最初,这些标记只是简单地直接连接并传递给模型,然而,最近的研究已经明确地区分了这两种类型。这是通过新的特殊标记或文本来实现的。

作者尝试了 4 种不同的分离方法。其中一种没有任何区分(<vid_token>),另一种在 vid_token 的两侧各有 2 个特殊标记(<vid_start>...<vid_end>)。最后两种使用时间戳直接编码时间信息。他们要么在视频标记之前放置这些时间信息,要么在我们第一个特殊标记之前。

将这 4 种方法通过 ApolloBench 运行显示,没有特殊标记的开始时间戳最为有效。理论上是说,通过添加新词汇,我们增加了模型的认知负荷,需要更多的训练来学习这些权重而没有显著改进。同时,通过添加时间信息,我们使用了原始词汇并提供了模型所需上下文。

论文中的表 2

论文中的表 2

结论

我们现在已经经历了 Meta 在他们的 LMM 中做出的 4 个关键设计选择。随着这里的研究不断改进,似乎理想的编码器(或编码器对)将解锁重大的性能提升。今天,我们广泛看到模型可以处理更大长度的上下文,并且有更多类型的输入。我预计一旦我们有一个强大的视频编码器,我们将看到可用于训练这些模型的数据爆炸性增长。

在我的 MM1 博客中,我说过我们将开始看到更多多模态模型的推出。看到这一点不仅成真,而且编码器思维方式适用于多个领域,这真的很酷。

这是一个激动人心的时刻来构建!


[1] Zohar, O. 等,"Apollo:在大规模多模态模型中探索视频理解 (2024),arXiv

[2] Jaegle, A. 等,"Perceiver:迭代注意力下的通用感知 (2021),arXiv

[3] McKinzie, B. 等,"MM1:多模态 LLM 预训练的方法、分析和见解 (2024),arXiv

[4] Radford, A. 等,"从自然语言监督中学习可迁移的视觉模型 (2021),arXiv

[5] 维基媒体基金会等,"Phi 现象" (2024),维基百科

posted @ 2026-03-27 10:08  布客飞龙II  阅读(3)  评论(0)    收藏  举报