论文笔记《Video-LLaVA: Learning United Visual Representation by Alignment Before Projection》

论文笔记《Video-LLaVA: Learning United Visual Representation by Alignment Before Projection》

Administrator 3 2025-07-02
  • 论文 - 《Video-LLaVA: Learning United Visual Representation by Alignment Before Projection》
  • 代码 - Github
  • 关键词 - 微调、LanguageBind、Vicuna、视频大模型、视觉-语言大模型

0 比较不同的 LVLM 范式

  • 大型视觉-语言模型(LVLM)对比
paper95-1.webp

1 Video-LLaVA

1.1 模型结构

1.1.1 框架概述

如图2所示,Video-LLaVA 包括以下组件:LanguageBind 编码器 ​ f_V 、大型语言模型 ​ f_L (Vicuna)、视觉投影层 ​ f_P 、词嵌入层 ​ f_T

处理流程:首先使用 LanguageBind 编码器获取视觉特征,将不同模态映射到文本特征空间中,从而提供统一的视觉表示。随后,这种统一的视觉表示通过共享的投影层进行编码,并与分词后的文本查询结合,输入至 LLM,以生成相应的响应。

paper95-3.webp

1.1.2 统一的视觉表示

目标:将图像和视频映射到一个共享的特征空间中,使 LLM 能够基于统一的视觉表示进行学习。

方法:采用了 LanguageBind 中的模态编码器,该方法能够将图像和视频对齐到文本特征空间中,实现统一的视觉表示。


1.1.3 投影前对齐

LanguageBind 的训练流程:初始化来源于 OpenCLIP(Ilharco 等,2021),它天然地实现了图像与语言在共享特征空间中的对齐。随后,使用来自 VIDAL-10M 数据集的300万对视频-文本数据,将视频表示也对齐到语言空间中。通过共享语言特征空间,图像和视频的表示最终收敛到一个统一的视觉特征空间中。

因此,在 Video-LLaVA 中,视频编码器和图像编码器均初始化自 LanguageBind 编码器库。随后,统一的视觉表示经过共享的投影层后,被输入到 LLM 中,从而实现多模态的理解与推理。


1.2 训练流程

总体而言,Video-LLaVA 生成响应的过程与大型语言模型(GPT 系列)类似。给定文本输入 ​ \mathbf{X}_\text{T} 和视觉信号 ​ \mathbf{X}_\text{V} ,输入信号根据公式 (1) 被编码为一系列词元。通过最大化公式 (2) 中的似然概率,模型最终实现了多模态理解能力。

\mathbf{Z}_\text{T} = f_\text{T}(\mathbf{X}_\text{T}), \quad \mathbf{Z}_\text{V} = f_\text{P}(f_\text{V}(\mathbf{X}_\text{V})) \tag{1}
p(\mathbf{X}_\text{A} \mid \mathbf{X}_\text{V}, \mathbf{X}_\text{T}) = \prod_{i=1}^{L} p_\theta\left(\mathbf{X}_\text{A}^{[i]} \mid \mathbf{Z}_\text{V}, \mathbf{Z}_\text{T}^{[1:i-1]}\right) \tag{2}

其中,​ L 是生成序列 ​ \mathbf{X}_\text{A} 的长度,​ \theta 是可训练参数。动态地对图像和视频进行联合训练,其中每个批次同时包含图像和视频样本。

两个训练阶段和对应的数据集如图3所示。

paper95-3.webp

1.2.1 Understanding 训练

在这一阶段,模型需要从一个广泛的图像/视频-文本配对数据集中学习解读视觉信号的能力。每个视觉信号对应一组单轮对话数据 ​ (\mathbf{X}_\text{q}, \mathbf{X}_\text{a}) ,其中 ​ \mathbf{X}_\text{T} = \mathbf{X}_\text{q} 是查询,而 ​ \mathbf{X}_\text{a} 是对应的 ground truth。该阶段的训练目标是原始的自回归损失,模型在此过程中学习基本的视觉理解能力。在这个过程中,冻结模型的其他参数。


1.2.2 指令微调

在这一阶段,模型需要根据不同的指令生成相应的响应。这些指令通常涉及更复杂的视觉理解任务,而不仅仅是描述视觉信号。需要注意的是,对话数据 ​ (\mathbf{X}_\text{q}^1, \mathbf{X}_\text{a}^1, \dots, \mathbf{X}_\text{q}^N, \mathbf{X}_\text{a}^N) 包含多轮对话

\mathbf{X}_\text{T}^r = \begin{cases} \mathbf{X}_\text{q}^1, & r = 1 \\ \text{Concat}(\mathbf{X}_\text{q}^{r-1}, \mathbf{X}_\text{A}^{r-1}, \mathbf{X}_\text{q}^r), & r > 1 \end{cases} \tag{3}

其中,​ r 表示当前的轮次编号。如公式 (3) 所示,当 ​ r > 1 时,将所有前一轮的对话内容与当前指令拼接起来作为本轮的输入。训练目标与上一阶段相同。经过这一阶段后,模型学会了根据不同的指令和请求生成相应的响应。LLM 也在这一阶段参与训练


实验部分不展示了,感兴趣可以去看原论文。