VTimeLLM

针对现有的VideoLLM对于视频理解比较粗糙,无法生成精确的时间戳,该文章提出了VTimeLLM,一个新的VideoLLM结合时间边界用于细粒度视频理解与推理。 具体来说,模型通过时间边界感知的三阶段训练得到。分别是利用图像文本数据进行特征对齐、利用多事件视频提高模型时间边界的感知能力以及利用高质量视频指令微调数据进一步提高模型的时间感知能力和与人类便好对齐。实验证明VTimeLLM在事件时间定位以及详细描述生成中超过了现有的VideoLLM,并且得益于细粒度的理解能力,该模型在视频对话的基准中也超过了其他模型。 首先介绍一下模型的架构:模型将视频采样到100帧,然后通过CLIP提取特征,取每一帧的cls token的特征作为视频的特征,然后经过一个线性层将特征映射到文本embedding空间中。对于LLM的输入,模型新增了一个token<video>用于插入视频的embedding(同LLaVA),使用帧的索引来表示时间边界。 介绍一下三阶段训练:1、特征对齐。模型使用LLaVALCS-558K文图对数据集进行特征对齐。不使用视频-文本数据集主要有两点:现在的视频文本数据集包含大量的文本噪声、视频文本数据集的信息损失太大了。在这个阶段,模型将图片与文本的embedding拼接起来利用LLM原本的自回归生成损失训练。这个阶段只训练线性层。2、边界感知。在这个阶段赋予模型对视频时间边界的感知能力。文章利用InternVid-10M-FLT数据集,一个视频包含多个事件及其时间边界,作者对其进行筛选得到了134k个视频数据。对于每个视频具有多个事件,作者构造了单轮对话和多轮对话模版,用于模型的训练,其中单轮对话的目的是使模型生成详尽的视频描述,多轮对话的目的是赋予模型事件定位能力和视频理解能力。在这个阶段,LLM使用LoRA进行训练,其他的冻住。3、指令微调。为了使模型具有类人的输出以及更精准的视频理解和定位能力,文章进行了指令微调。数据为ActivityNet Captions和DiDeMo数据集的子集,并利用LLM将这些数据转化为高质量的对话数据。相比于第二阶段使用的InternVid数据集来说,这两个数据集完全由人工标注得到,具有更细节的描述以及更精准的时间边界。同样,作者对这两个数据集进行筛选,得到了4.2k+4k的视频数据。为了使得模型具有类人输出的能力,作者利用了LLM生成更加自然的对话数据,具体prompt可见原文。此外,作者发现加入一些其他的视频指令微调数据集能在不影响时间边界感知能力的条件下提高模型的描述能力。在这个阶段,作者引入了额外的LoRA进行训练。
  • 数据:训练(LCS-558k, InternVid, ActivityNet Captions, DiDeMo, VideoInstruct100k);测试(ActivityNet Captions, Charades-STA)
  • 指标:视频时间定位能力(IoU—时间边界间);视频详尽描述能力(SODA_c—传统指标,CIDEr+METEOR—配对视频事件的caption的匹配程度?)
  • 硬件:1 4090/bs128
  • 开源:https://github.com/huangb23/VTimeLLM