Singularity 项目教程

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),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值