大模型开源项目 | 多模态大模型 VideoCLIP-XL:一种新的视频 CLIP 模型
模型,用于解决视频CLIP模型在理解长描述方面的能力不足问题。具体来说,**数据收集系统:**首先,作者建立了一个自动数据收集系统,从多个数据源聚合超过2M的视频和长描述对,形成了VILD预训练数据集。图1:VILD数据集的自动数据收集系统为了更好地学习特征空间的分布并扩展长描述能力,作者提出了一种新的方法——TPCM。该方法利用文本相似性信号来指导主成分提取(PCE)过程,使得模型能够动态地适应
一、简介
对比语言-图像预训练(CLIP) 已被广泛研究和应用于众多应用。然而,在预训练期间强调简短摘要文本会阻止CLIP理解长描述。这个问题对于视频尤其严重,因为视频通常包含丰富的详细内容。
VideoCLIP-XL 模型,旨在释放视频CLIP模型的长描述理解能力。还使用自动数据收集系统收集并发布了包含超过200万视频和长描述对的新的预训练数据集VILD。
本文提出 TPCM 用于动态特征学习,同时扩展长描述能力。还提出了两个新任务(即DDR和HDR),以进一步建模有效属性,从而更好地表示学习长描述。
为了更好地评估视频CLIP模型的长描述能力,提出 LVDR 基准测试进行长描述排名。
广泛的实验表明,VideoCLIP-XL 在各种任务和基准测试上明显优于最先进的模型。
论文地址:https://arxiv.org/pdf/2410.00741
模型地址:https://huggingface.co/alibaba-pai/VideoCLIP-XL
VILD数据集地址:https://huggingface.co/alibaba-pai/VILD
LVDR基准地址:https://huggingface.co/alibaba-pai/LVDR
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】
二、引言
本文解决的问题主要是现有的 CLIP 模型在预训练过程中过于强调简短的总结文本,导致其难以理解长描述,特别是在视频领域,视频通常包含丰富的细节内容。
CLIP模型的文本编码器依赖于最大位置嵌入,长度限制为77,这极大地限制了输入文本的长度;现有研究揭示CLIP模型在实际应用中有效的token限制约为20个词;CLIP模型的训练过程强调简短的总结文本,导致其倾向于关注文本/视觉输入的主要特征,而忽略较小的关键细节。
CLIP模型是一种基于对比学习的跨模态预训练模型,广泛应用于零样本分类、文本图像检索和文本到图像生成等任务。然而,CLIP模型在处理长文本描述方面存在局限性。现有的长文本CLIP模型缺乏在高维特征空间中动态适应分布变化的能力。
三、方法概述
VideoCLIP-XL 模型,用于解决视频CLIP模型在理解长描述方面的能力不足问题。具体来说,
**数据收集系统:**首先,作者建立了一个自动数据收集系统,从多个数据源聚合超过2M的视频和长描述对,形成了VILD预训练数据集。
图1:VILD数据集的自动数据收集系统
文本相似性引导的主成分匹配(TPCM): 为了更好地学习特征空间的分布并扩展长描述能力,作者提出了一种新的方法——TPCM。该方法利用文本相似性信号来指导主成分提取(PCE)过程,使得模型能够动态地适应高维特征空间的分布变化。
图2:基于文本相似性的主成分匹配(TPCM)技术
描述排序任务: 为了进一步建模长描述的有效属性,作者引入了两种新任务:细节感知描述排序(DDR)和幻觉感知描述排序(HDR)。DDR任务要求模型能够正确排序具有不同细节水平的多个描述,而HDR任务则要求模型能够区分具有相同细节水平但准确性和幻觉程度不同的描述。
图3:为(a)幻觉感知和(b)细节感知描述排名任务生成的文本样本示例。蓝色和绿色词汇分别指代被替换的幻觉内容和需要删除的详细内容。
四、实验细节
数据集: 使用了VILD预训练数据集,该数据集通过自动数据收集系统从多个数据源聚合了超过2M的视频和长描述对。
模型结构: 采用了CLIP的模型结构,使用ViT-L/14作为视频编码器,并在视频编码器中引入时空注意力机制,权重初始化来自ViCLIP。
预训练过程: 在VILD数据集上对VideoCLIP-XL进行2轮预训练。所有实验均在PyTorch中实现,并在NVIDIA Tesla A100-80G GPU上运行。
评估任务: 在传统的文本视频检索基准(如MSRVTT、LSMDC、DiDeMo、MSVD和ActivityNet)上进行零样本和微调后的文本视频检索任务评估。此外,还在LVDR基准上进行长视频描述排序任务的评估。
五、实验结果分析
传统基准上的性能: VideoCLIP-XL在所有的传统基准上均表现出色,优于现有的最先进模型。例如,在MSRVTT数据集上,VideoCLIP-XL在零样本设置下的T2V R@1得分为50.1,在微调设置下的T2V R@1得分为49.5,相较于之前的ViCLIP模型分别提高了7.7和8.6个百分点。
长描述基准上的性能: 在Shot2Story数据集上,VideoCLIP-XL在长描述设置下也表现出色,无论是使用整个视频片段还是每个镜头进行文本视频检索任务,均优于其他竞争模型。
LVDR基准上的性能: 在LVDR基准上,VideoCLIP-XL能够更准确地识别不准确的内容,并赋予它们较低的相似度得分。例如,在4x1设置下,VideoCLIP-XL的排名得分(RS)为91.67,显著高于Long-CLIP模型的84.87。
在Shot2Story基准上文本到视频检索的定性示例
六、总结
VideoCLIP-XL 模型,通过建立自动数据收集系统和引入文本相似性引导的主成分匹配(TPCM)技术,扩展了视频CLIP模型的长描述理解能力。此外,通过引入细节感知描述排序(DDR)和幻觉感知描述排序(HDR)任务,进一步提升模型的表现。实验结果表明,VideoCLIP-XL在各种任务和基准上均优于现有的最先进模型。
未来的研究方向包括优化预训练方法和增加数据量和模型规模,以及探索将交叉编码器和大型语言模型(LLMs)的架构整合到VideoCLIP-XL中。
七、项目部署
- 安装基础环境
# 1. Create your environment
# 2. Install torch
# 3. Then:
pip install -r requirements.txt
- 部分代码示例
def _frame_from_video(video):
while video.isOpened():
success, frame = video.read()
if success:
yield frame
else:
break
v_mean = np.array([0.485, 0.456, 0.406]).reshape(1,1,3)
v_std = np.array([0.229, 0.224, 0.225]).reshape(1,1,3)
def normalize(data):
return (data / 255.0 - v_mean) / v_std
def video_preprocessing(video_path, fnum=8):
video = cv2.VideoCapture(video_path)
frames = [x for x in _frame_from_video(video)]
step = len(frames) // fnum
frames = frames[::step][:fnum]
vid_tube = []
for fr in frames:
fr = fr[:,:,::-1]
fr = cv2.resize(fr, (224, 224))
fr = np.expand_dims(normalize(fr), axis=(0, 1))
vid_tube.append(fr)
vid_tube = np.concatenate(vid_tube, axis=1)
vid_tube = np.transpose(vid_tube, (0, 1, 4, 2, 3))
vid_tube = torch.from_numpy(vid_tube)
return vid_tube
videoclip_xl = VideoCLIP_XL()
state_dict = torch.load("./VideoCLIP-XL.bin", map_location="cpu")
videoclip_xl.load_state_dict(state_dict)
videoclip_xl.cuda().eval()
videos = [
"/path/to/video-1.mp4",
"/path/to/video-2.mp4",
]
texts = [
"text-1",
"text-2",
"text-3",
]
with torch.no_grad():
video_inputs = torch.cat([video_preprocessing(video) for video in videos], 0).float().cuda()
video_features = videoclip_xl.vision_model.get_vid_features(video_inputs).float()
video_features = video_features / video_features.norm(dim=-1, keepdim=True)
text_inputs = text_encoder.tokenize(texts, truncate=True).cuda()
text_features = videoclip_xl.text_model.encode_text(text_inputs).float()
text_features = text_features / text_features.norm(dim=-1, keepdim=True)
Tmp = 100.
sim_matrix = (text_features @ video_features.T) * Tmp
print(sim_matrix)
八、提炼关键问题
问题1:现有CLIP模型在处理长描述时的局限性是什么?
现有CLIP模型在预训练过程中主要依赖于简短的摘要文本,这限制了它们处理长描述的能力。具体来说,这些模型的文本编码器依赖于最大位置嵌入,长度为77,这导致输入文本的长度受到严格限制,通常只有约20个token。
此外,现有的视频CLIP模型在处理视频时,往往采用简化的“概念袋”方法,难以准确捕捉复杂的细节和关系。
问题2:VideoCLIP-XL模型是如何解决长描述理解问题的?
-
VideoCLIP-XL模型通过以下几个方法来解决长描述理解问题:
-
建立自动数据收集系统: 从多个数据源收集视频和长描述对,创建了一个大规模的预训练数据集VILD。
-
引入文本相似度引导的主成分匹配(TPCM): 在扩展长描述能力的同时,更好地学习特征空间的分布。
-
提出两个新的任务: 细节感知描述排序(DDR)和幻觉感知描述排序(HDR),以进一步改进表示学习。
-
构建长视频描述排序(LVDR)基准: 用于更全面地评估视频CLIP模型的长描述能力。
问题3:VideoCLIP-XL模型在实验中的表现如何?
VideoCLIP-XL模型在多个文本-视频检索基准测试中表现出色,包括传统的短描述和长描述数据集(如MSR-VTT、LSMDC、DiDeMo、MSVD和ActivityNet),以及在LVDR基准上的表现。
实验结果表明,VideoCLIP-XL模型在零样本和微调设置下均优于现有的视频CLIP模型,显著提高了长描述的准确性和相关性。例如,在MSR-VTT数据集上,VideoCLIP-XL的零样本R@1得分达到了50.1,而ViCLIP为42.4。
最后分享
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
5. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】
更多推荐
所有评论(0)