要解决的问题
- 现有的Video LLMs只能提供视频的粗略描述,但是不能给出特定事件的精确开始和结束时间边界。
- 缺乏具有精确边界注释的大规模视频数据集来训练Video LLMs来进行边界对齐。
- Video LLMs没有设计有效的时间相关任务来训练LLM理解视频中多个时刻的内容。
下图展示了Video LLMs在事件定位任务中的局限性。

作者的方案
作者采用三阶段训练策略分别训练模型,简单来说,第一阶段训练模型对图片的描述能力,给出图片/视频帧,模型可以与相应文本对应起来,使用数据集为LCS-558K;第二阶段训练模型对事件的粗定位能力,文中使用了InternVid-10M-FLT(一个包含多个片段及其大致注释标签的大规模视频文本数据集)以及设计了多种QA任务,使模型拥有时间边界意识和理解边界内相应事件的能力;第三阶段,为了解决第二阶段训练完成后的过拟合问题,并且使模型能更好理解人类意图与对时间片段更精确的理解,作者设计了更高质量的数据集(包含ActivityNet Caption子集与DiDeMo子集,作者对他们进行了人工标注然后用LLM设计QA,以及VideoInstruct100K数据集中直接抽取QA)进行模型训练。总的来讲,通过这样的三阶段训练,模型就可以先理解视频帧,然后学会事件粗定位,最后学会更加精确以及人性化的定位。
数据集介绍
Stage1:LCS-558K,作者通过实验认为图片-文本训练效果好于视频-文本,故采用此数据集。
Stage2:InternVid-10M-FLT,虽然注释标签可能不够精确,但是胜在量大,通过大规模视频文本数据集让模型学习边界粗定位的能力。
Stage3:人工标注ActivityNet Caption子集与DiDeMo子集,使用另一个LLM设计QA, 再加上VideoInstruct100K数据集中直接抽取的QA,整体作为数据集。前者是为了更准确用人工边界校准Stage2学到的粗定位能力,并且让问答更加自然,后者主要修复过拟合问题,也就是Stage2后模型什么问题都回答时间段的倾向。
模型方法

先看Stage1,一个图片输入进去,先进入到Visual Encoder中转化为特征向量,然后通过Visual Adapter投影到与Vicuna(一种LLM)对齐,然后输出对应文本就可以进行训练,从而进行视频特征和文本特征的对齐。注意到Visual Encoder与Vicuna都是被冻结的模块,唯一参与训练的模块只有Visual Adapter。
再看Stage2,输入一个视频和Question,然后视频同样通过Visual Encoder与Visual Adapter转化为特征向量输入到LLM中,由LLM输出Answer进行训练,QA设计如下图

单轮QA任务主要是训练DVC(Dense Video Captioning)任务,也就是输出视频中的所有事件以及对应事件,多轮QA包含两项任务:给定时间戳生成描述(Segment Captioning),给定事件描述生成时间戳(Temporal Video Grounding)。QA的设计能够使模型训练加入时间边界,并且QA本身就是有效的时间相关任务。
回到模型架构,这一阶段主要训练LoRA(Low Rank Adaptation,低秩适配),因为每次更新LLM的全量参数计算量很大,所以采用这种方式适配LLM。
在Stage3,我们加入高质量对话数据进行 instruction tuning(指令微调),使模型能够遵循人类指令,并进行更加准确的视频时间理解与推理,添加新的LoRA的目的也是为了在保留第二轮训练成果的基础上学习自然指令、高质量边界和普通视频问答,降低遗忘之前训练成果的风险。
实验分析

由上图,可以看到VTimeLLM对于以往的Video LLMs性能显著增强,不过也可以看出模型对于严格边界的定位能力还是较差。通过扩大LLM规模,没有稳定改善ActivityNet(R@0.7下降了),不过对于Charades-STA,却带来了一致性提升,提供了初步的跨数据集泛化证据。

上图是消融实验,I意味着用Stage1用图片训练,V同理,Freeze/Tune意味着是否冻结/更新Visual Adapter,Addition/Reuse意味着Stage3是否另起/复用Stage2的LoRA,作者通过消融时间确定了每个Stafe存在的必要性以及每个Stage内部的组件存在必要性。

上图是作者用GPT-3.5通过QA对各种模型进行的打分。

最后是一个例子,素材取自《肖申克的救赎》。
写在最后
本次论文阅读仍然沿用了上期的总思路,以搞清楚问题、方法、不足为脉络进行,并且加上了使用数据集这一模块,接下来也还是会在这个基础上继续精进阅读方法的。tips:最近把博客歌单更新了一下,不知道听感如何呢?