后台回复“GAI”,免费获取最新AI相关行业报告和资料!
作者:Honglu Zhou等
文章链接:https://arxiv.org/pdf/2410.16267
项目链接:https://www.salesforceairesearch.com/opensource/xGen-MM-Vid/index.html
亮点直击
高效的时序编码器设计:引入了可学习的“时序编码器”,能够有效抽象多帧时间信息,显著减少视频表示的视觉 token 数量(如仅需 16-32 个 token),而不是采用传统的逐帧汇集方法。 创新的时空注意池化机制:通过时空注意力池化(space-time attentional pooling)与序列模型的结合,模型可以逐步抽象帧级别的 token,使其更适合长视频的处理,且计算效率更高。 广泛的任务适应性:BLIP-3-Video 在开放式问答和视频生成式描述任务中表现优异,实现了少量 token 表达视频全局信息的目标,能够在效率与性能之间取得平衡。 减少模型复杂度:相较于直接收集所有帧的视觉 token 的“蛮力”方法,xGen-MM-Vid (BLIP-3-Video) 通过高效的 token 抽象机制,在保持高准确率的同时,大幅减小计算复杂度。
SOTA 视频 VLM 模型比较: (左)可视tokens的数量与视频质量保证准确性。(右)模型大小与视频质量保证准确性:
总结速览
解决的问题
xGen-MM-Vid (BLIP-3-Video) 旨在解决视频多模态模型在处理多帧时序信息时的效率问题,特别是如何在减少视觉 token 的情况下有效捕捉时序信息。
提出的方案
BLIP-3-Video 引入了“时序编码器”(temporal encoder),除了传统的视觉编码器外,它能够将多帧的视频序列映射为一组紧凑的视觉 token。这大大减少了模型处理所需的视觉 token 数量(32 vs. 4608 tokens)。
应用的技术
BLIP-3-Video 中的时序编码器应用了多种方法,包括可学习的时空池化(spatio-temporal pooling)以及序列模型,例如 Token Turing Machines,用于高效提取和压缩视频信息。
达到的效果
BLIP-3-Video 在视频问答任务中达到了与当前更大规模的最先进模型(例如 34B 参数模型)相近的准确率,而其模型规模仅为 4B 参数。此外,由于视觉 token 的显著减少,该模型在计算效率方面具有明显优势。
BLIP-3-VIDEO
模型架构
基于基于图像的视觉-语言模型 (VLM) BLIP-3构建 BLIP-3-Video 模型。模型架构包括以下四个组件:
用于处理每帧输入的视觉编码器 (ViT) 帧级 token 化器以减少 token 数量 用于构建视频级 token 表示的时序编码器 基于这些视频 token 和文本提示 token 生成输出文本描述的自回归 LLM。
下图2显示了整体概览。
首先,应用预训练的 SigLIP 作为视觉编码器,旨在一次处理一个单帧图像。然后应用 Perceiver-Resampler 将这些视觉 token 映射为每帧 个视觉 token,彼此独立。当模型具有这些随时间变化的视觉 token(即,视频中的多个帧)后,将其提供给显式的“时序编码器”。时序编码器的作用是从这组图像级 token 序列构建视频级 token 表示,作为从 个图像 token 到 个视频 token 的映射函数,其中 为帧数, 为常量 token 数。探索了时序编码器的各种形式,包括时序池化和序列模型。生成的 token 与编码后的文本 token 以前缀方式一起提供给 LLM,这在许多标准 VLM 中常见。
为提高计算效率,模型对每个视频均匀采样 8 帧。因此,在模型中,ViT 首先将一个视频映射为 个视觉 token,之后使用 Perceiver-Resampler 映射为 个视觉 token,最后通过时序编码器映射为 个视频 token。使用 Phi-3作为 LLM 主干网络,将这些视频 token 和文本提示 token 作为输入,使模型能够输入文本+视频并输出文本句子。
时序编码器
时序编码器是一种 token 函数,输入为 个 token,输出为 个 token:。
在模型中探索了不同类型的编码器。最简单的时序编码器形式是时序池化,例如对每帧 token 随时间进行求和:,其中 始终与 相同,这种方法也在中使用过。另一种实现方法是使用时序 Transformer,建模整个 token 序列并选择最后的 个 token,类似于 Mirasol3B。
除了上述简单的时序编码器外,我们还探索了两种重要的时序编码器,考虑了 token 的时空特性:时空注意池化和序列模型(下图 3)。
时空注意池化:注意池化允许在较大 token 集合中进行可学习的“软选择”多个 token。此类注意池化之前已经在 Transformers 中开发(例如,Perceiver 和 TokenLearner),并且也在早期的基础模型中用于图像(例如,CoCa)。
在本文的模型中,使用 TokenLearner,明确将其作为时空感知的时序编码器。不像之前对单帧图像的池化使用,其中空间池化和时序池化分别应用(例如,Video-ChatGPT),时序编码器直接获取所有 个 token,并“学习”时空地软选择 个信息丰富的 token。这里, 个 token 可以视为帧的空间表示,有 帧,表明这是一个时空表示选择。
最简单形式的注意池化表达为:
其中, 是由输入 token 连接而成的矩阵。函数 计算 的加权和,实现 token 的软选择。这个过程进一步分解为 softmax 和函数 。在 Perceiver 中,矩阵乘法与潜在查询 token(即交叉注意力,其中 )实现了这一点:。TokenLearner 在 上使用卷积/MLP:,我们在模型中采用此方法。这使得可以选择较少数量的 token(例如, 个 token)。
在实验中验证了这种可学习的时空注意池化比传统的非学习空间池化和时序池化方法具有优势。
序列模型:使用 Token Turing Machines (TTM) 作为时序编码器,它是一种序列模型,可以处理任意数量的帧以生成视频级别的 token 表示(例如,无论帧数如何,)。对 TTM 的使用类似于 Mirasol3B 中的应用,不同之处在于本文的模型直接使用 TTM 编码图像 token 的序列,而 Mirasol3B 则使用 TTM 编码视频 token 集的序列。我们还通过添加时间戳位置编码来扩展 TTM,将每个 token 的帧索引嵌入到潜在空间中。这使得 TTM 的“记忆”中的 token 能够保留时间顺序信息,这在表示复杂或长视频场景时至关重要。此外,我们以“分组”方式使用 TTM 时序编码器,为每个 的 token 维护大小为 的单独记忆。记忆的大小保持为 ,并从序列模型的最终记忆中通过注意池化生成 个 token。
训练策略
BLIP-3-Video 采用三阶段的学习:
图像描述预训练 视频描述预训练 视频指令微调
在所有训练中,冻结视觉编码器,仅训练视觉编码器之后的模型参数。首先,我们直接使用来自 BLIP-3的预训练权重。BLIP-3 针对图像设计,因此不包含时序编码器的权重,因此随机初始化这些权重。
在第二阶段,模型在 LLaVA-Hound-DPO 的视频描述数据上进行训练,该数据集包含超过 90 万个视频描述。没有直接使用 LLaVA-Hound-DPO 提供的描述,而是使用 GPT-4 重新表述这些描述,使其更符合 GPT 风格的描述。
最后,用视频问答数据集对模型进行微调,包括 VideoChat-GPT 的 9.9 万样本视频指令微调数据,以及 MSVD-QA、MSRVTT-QA、ActivityNet-QA 、TGIF-QA和 NExT-QA 的训练集,分别包含 3 万、14.9 万、3.2 万、7.1 万和 3.4 万个样本。对于 TGIF-QA,仅使用了与重复动作和状态转换任务相关的训练数据。在视频指令微调策略中,对 TGIF-QA 和 NExT-QA 使用了开放式和多选式视频问答格式。
对于 MSVD-QA、MSRVTT-QA、TGIF-QA 和 NExT-QA 训练集的开放式视频问答训练数据,使用 GPT-3.5 将原始的单词或短语答案改写为自然语言句子,同时在 LLM 提示上下文中提供问题。对于 TGIF-QA 和 NExT-QA 的开放式问答,还通过使用原始短语答案和重新表述的句子答案来加倍样本数量。此外,添加了过滤后的 Mira 描述数据集以进行视频指令微调,即在最终训练中同时使用视频问答和视频描述。排除了时长超过一分钟的 Mira 视频描述,样本总数为 93.5 万个视频描述样本。
使用 8 个 H100 GPU 训练模型。对于视频描述预训练,在每个 GPU 上的批量大小为 16,500 步的预热步骤,以及带有余弦衰减的 学习率。训练了 1 个 epoch。视频问答 sft(即指令微调)每个GPU的批量大小为4,500 步的预热步骤,学习率为 ,使用余弦衰减。在这种情况下也训练了 1 个 epoch。整个训练过程(结合视频预训练和 sft)约需 12 小时,验证了我们模型的高效性。
实验与结果
模型实现细节
BLIP-3-Video 基于 BLIP-3 (4B) 架构,但新增了一个时序编码器用于视频处理。模型处理的视频输入分辨率为 (384 \times 384),通过 SigLIP 编码器将每帧映射为 729 个 1152 维的通道特征。Perceiver-Resampler 使用多层交叉注意力对这些特征进行处理,再传递给时序编码器。
在时空池化方面,TokenLearner 使用多层感知器(MLP)作为注意力函数,其内层维度大小设为目标 token 数的两倍。分组的 Token Turing Machine (TTM) 作为时序编码器,包含 4 层 Transformer,用于处理模块,同时 TokenLearner 用于读/写模块,内存大小设置为 512 个 token。处理后的 16 到 128 个 token 被映射为 3072 维的文本嵌入向量,并提供给大语言模型 Phi-3。
公共基准测试
本文进行了实验,测量了多个公共数据集上的视频问答准确率。这包括开放式答案生成任务,例如 MSVD-QA,以及多项选择题,例如 NExT-QA。在所有情况下,遵循它们的标准设置。
下表 1 比较了 BLIP-3-Video 的开放式问答准确率与其他模型报告的数值。使用了四个常用的公共数据集:MSVD-QA、MSRVTT-QA、ActivityNet-QA 和 TGIF-QA,遵循标准的 VideoLLM 评估设置。需要注意的是,我们的 MSVD-QA 和 MSRVTT-QA 的准确率是通过仅使用我们训练数据的子集(即 Video-ChatGPT 数据集)来训练模型来测量的,因为这允许与一些先前工作的更直接比较,并由于其数据分布而实现更稳定的结果。在表中包含了模型的大小以及视觉 tokens 的数量。观察到,尽管我们的模型体积较小(即 40 亿与 70 亿或 340 亿),但其性能优越或相当。
通过使用时序编码器,BLIP-3-Video 能够在使用更少的 tokens 的情况下保持性能,这一点将在以下小节中进行讨论。结果表明,在这些开放式问答基准测试中,并不需要过多的视觉 tokens,只要有经过精心设计的时序编码器。
此外,还评估了 BLIP-3-Video 解决多项选择题(MCQ)的能力。下表 2 显示了 NExT-QA 的结果。由于问题的性质要求理解多个帧,许多先前模型使用了相当多的 tokens。例如,GPT-4 每帧使用至少 255 个 tokens。有趣的是,BLIP-3-Video 仅用 32(或 128)个 tokens 表示整个视频时,达到了相当的准确率。
消融实验
进行了多种时序编码器的消融实验,包括:
基础的 BLIP-3 单帧模型。 平均池化(类似于 Video-ChatGPT)。 类似 Mirasol3B 的基于 Transformer 的时序编码器。 非分组的 Token Turing Machines。
下表 3 显示了不同类型的时序编码器在将视频抽象为 128 个 tokens 时的问答准确率比较结果。可以观察到它们都表现得相当不错,但某些时序编码器更为有效。
此外,还比较了不同的池化方法,这些方法与先前工作的尝试类似,当需要从大量视觉 tokens 中选择较少数量的 tokens(例如 32 个)时。比较了我们的时空注意力池化和顺序模型与其替代方法,包括 (1) 固定窗口(不可学习)时空池化和 (2) 可学习的“每帧”池化。特别地,(2) 类似于 LLaMA-VID中采用的方法,该方法独立选择每帧的固定数量的 tokens(例如 2 个)。下表 4 显示了结果。下表 5 明确比较了较小视觉 tokens 的影响。观察到,32 个或更多的视觉 tokens 可以提供合理的视频问答准确率。
视频描述评估
在视频描述任务上评估了模型性能,将其与当前最新的模型在 MSVD-Caption 和 MSRVTT-Caption 的测试集上进行对比,同时还在 Mira 数据集上进行了自定义评估。对于 Mira 数据集,我们从过滤后的完整数据中随机选择了 6000 个样本作为评估集,其余样本用于训练。评估使用了 Video-ChatGPT 的 LLM,具体采用 GPT-3.5 以比较模型生成的描述与真实描述的匹配度,评估准确性并为每个样本在 0 到 5 分之间打分。
下表 6 展示了结果。
所有模型均使用每个视频的 8 帧,并确保视觉输入和提示词一致。BLIP-3-Video 在所有三项视频描述基准测试上都表现优于 LLaVA-OneVision-7B 和 Tarsier-7B,特别是在 Mira 视频描述任务上表现出显著提升。下图 4 中展示了 Mira 数据集的视频描述生成质量;而 MSVD 和 MSRVTT 数据集的结果在下图 5 中展示。BLIP-3-Video 能够生成高质量、详细的视频描述。
结论
BLIP-3-Video,这是一种高效、紧凑的视频视觉语言模型,参数量为 40 亿。BLIP-3-Video 在其架构中集成了时序编码器,使得模型能够以少至 16 或 32 个 tokens 抽象整个视频。与许多利用数千个视觉 tokens(例如 4608)表示视频的最新视频 VLM 相比,BLIP-3-Video 在使用大大减少的视觉 tokens(例如 32)时仍显示出竞争力的性能。
参考文献
[1] xGen-MM-Vid (BLIP-3-Video): You Only Need 32 Tokens to Represent a Video Even in VLMs
致谢
如果您觉得这篇文章对你有帮助或启发,请不吝点赞、在看、转发,让更多人受益。同时,欢迎给个星标⭐,以便第一时间收到我的最新推送。每一个互动都是对我最大的鼓励。让我们携手并进,共同探索未知,见证一个充满希望和伟大的未来!
技术交流
加入「AI生成未来社区」群聊,一起交流讨论,涉及 图像生成、视频生成、3D生成、具身智能等多个不同方向,备注不同方向邀请入群!可添加小助手备注方向加群!
往期推荐