Singularity 项目教程
1、项目介绍
Singularity 是一个用于视频和语言学习的 PyTorch 项目,由 Jie Lei、Tamara L. Berg 和 Mohit Bansal 开发。该项目在 ACL 2023 上发布,旨在揭示单帧偏差对视频和语言学习的影响。Singularity 采用单帧训练和多帧推理策略,以实现高效且准确的视频文本任务学习。此外,它还在图像文本任务上展示了竞争性能。
支持的任务包括:
- 文本到视频检索(MSRVTT、DiDeMo、ActivityNet Captions)
- 视频问答(MSRVTT-MC、MSRVTT-QA、ActivityNet-QA)
- 文本到图像检索(COCO、Flickr)
- 图像问答(VQA)
2、项目快速启动
环境设置
首先,创建并激活 Conda 环境:
# 创建 Conda 环境
conda env create -f environment.yaml
# 激活环境
conda activate sl
在 bashrc 文件中设置环境变量:
export SL_EXP_DIR="/path/to/ckpts_and_logs"
export SL_DATA_DIR="/path/to/data"
下载数据和模型
下载预训练数据和下游数据:
# 预训练数据 (2.6 GB)
# 下游数据 (0.6 GB)
下载预训练和微调模型:
# 预训练模型 (1.6 GB - 4.0 GB)
# 微调模型 (MSRVTT 检索、DiDeMo 检索等)
预训练
启动预训练:
bash scripts/pretrain.sh EXP_NAME CORPUS NGPU local
例如,使用 WebVid 和 CC3M 数据集进行预训练:
bash scripts/pretrain.sh first_run webvid_cc3m 3 local
微调
启动微调:
bash scripts/train_ret.sh EXP_NAME DATASET NGPU local \
pretrained_path=PT_CKPT_PATH
例如,微调 MSRVTT 数据集:
bash scripts/train_ret.sh ft_msrvtt msrvtt 1 local \
pretrained_path=PT_CKPT_PATH
3、应用案例和最佳实践
文本到视频检索
在 MSRVTT 数据集上进行文本到视频检索:
bash scripts/train_ret.sh ft_msrvtt msrvtt 1 local \
pretrained_path=PT_CKPT_PATH
视频问答
在 MSRVTT-QA 数据集上进行视频问答:
bash scripts/train_qa.sh ft_msrvtt_qa msrvtt_qa 1 local \
pretrained_path=PT_CKPT_PATH
文本到图像检索
在 COCO 数据集上进行文本到图像检索:
bash scripts/train_ret.sh ft_coco coco 1 local \
pretrained_path=PT_CKPT_PATH
4、典型生态项目
相关项目
- PyTorch: Singularity 基于 PyTorch 框架开发,PyTorch 是一个广泛使用的深度学习框架。
- MSRVTT: 一个常用的视频文本数据集,用于视频检索和问答任务。
- COCO: 一个常用的图像文本数据集,用于图像检索和问答任务。
社区支持
- GitHub Issues: 通过 GitHub Issues 可以获取项目的问题和解决方案。
- Discussions: 在 GitHub Discussions 中可以参与项目的讨论和交流。
通过以上步骤,您可以快速上手 Singularity 项目,并在视频和语言学习任务中应用它。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



