VideoLLaMA2.1 7B AV

提供商DAMO-NLP-SG
分类visual-question-answering
许可证apache-2.0
下载量1.1K
星标1

简介

VideoLLaMA2.1 7B AV 是一款专注于视频理解与视觉问答的开源多模态模型。它通过增强的音视频对齐能力,能够像人类一样“观看”视频并理解其中的动态细节与音频信息,而非简单地处理单帧图片。对于开发者而言,该模型在视频摘要、内容分析和复杂场景问答方面表现出色,且 7B 的参数规模在性能与部署成本之间取得了较好的平衡。如果你需要构建一个能分析短视频内容或实现视频智能检索的应用,它是一个极具性价比的基座选择。

核心亮点

  • 原生支持音视频双模态理解,捕捉动态时空信息
  • 擅长视频内容摘要与复杂视觉问答场景
  • 7B 参数量级,兼顾推理性能与部署灵活性
  • 采用 Apache-2.0 协议,企业级应用门槛低

使用方法

安装依赖
# 安装 Hugging Face transformers
pip install transformers torch
SDK 使用
# 使用 transformers 加载模型
from transformers import AutoModel, AutoTokenizer

model = AutoModel.from_pretrained("DAMO-NLP-SG/VideoLLaMA2.1-7B-AV")
tokenizer = AutoTokenizer.from_pretrained("DAMO-NLP-SG/VideoLLaMA2.1-7B-AV")

Hugging Face 下载

我们推荐使用命令行或者 Hugging Face Hub SDK 来进行模型的下载。

操作指引:在下载前,请先通过如下命令安装 huggingface_hub:

操作指引
pip install -U huggingface_hub

命令行下载

下载完整模型库

下载完整模型库
huggingface-cli download DAMO-NLP-SG/VideoLLaMA2.1-7B-AV

下载单个文件到指定本地文件夹(以下载 config.json 到当前路径下 ./dir 目录为例)

下载单个文件到指定本地文件夹(以下载 config.json 到当前路径下 ./dir 目录为例)
huggingface-cli download DAMO-NLP-SG/VideoLLaMA2.1-7B-AV config.json --local-dir ./dir

更多命令行下载选项,可参见官方文档

SDK 下载

SDK 下载
# 模型下载
from huggingface_hub import snapshot_download
model_dir = snapshot_download('DAMO-NLP-SG/VideoLLaMA2.1-7B-AV')

Git 下载

请确保 lfs 已经被正确安装

Git 下载
git lfs install
git clone https://huggingface.co/DAMO-NLP-SG/VideoLLaMA2.1-7B-AV

如果您希望跳过 lfs 大文件下载,可以使用如下命令

跳过 LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/DAMO-NLP-SG/VideoLLaMA2.1-7B-AV

模型文件托管在 Hugging Face Hub,使用 HF CLI / SDK / Git 直接下载,不经过本站。

PyTorch / Transformers 使用

安装 Transformers

安装 Transformers
pip install -U transformers torch

模型加载和推理

模型加载和推理
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained('DAMO-NLP-SG/VideoLLaMA2.1-7B-AV')
tokenizer = AutoTokenizer.from_pretrained('DAMO-NLP-SG/VideoLLaMA2.1-7B-AV')

模型下载

我们推荐使用命令行或者 ModelScope SDK 来进行模型的下载。

操作指引:在下载前,请先通过如下命令安装 ModelScope:

操作指引
pip install modelscope

命令行下载

下载完整模型库

下载完整模型库
modelscope download --model DAMO-NLP-SG/VideoLLaMA2.1-7B-AV

下载单个文件到指定本地文件夹(以下载 README.md 到当前路径下 dir 目录为例)

下载单个文件到指定本地文件夹(以下载 README.md 到当前路径下 dir 目录为例)
modelscope download --model DAMO-NLP-SG/VideoLLaMA2.1-7B-AV README.md --local_dir ./dir

更多更丰富的命令行下载选项,可参见具体文档

SDK 下载

SDK 下载
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('DAMO-NLP-SG/VideoLLaMA2.1-7B-AV')

Git 下载

请确保 lfs 已经被正确安装

Git 下载
git lfs install
git clone https://www.modelscope.cn/DAMO-NLP-SG/VideoLLaMA2.1-7B-AV.git

如果您希望跳过 lfs 大文件下载,可以使用如下命令

跳过 LFS
GIT_LFS_SKIP_SMUDGE=1 git clone https://www.modelscope.cn/DAMO-NLP-SG/VideoLLaMA2.1-7B-AV.git

ModelScope 模型页直接下载模型文件;无需将模型文件放在本站服务器。

Notebook 快速开发

下载并安装 ModelScope library

下载并安装 ModelScope library
pip install "modelscope[audio,cv,nlp,multi-modal,science]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

模型加载和推理

模型加载和推理
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

p = pipeline('text-generation', 'DAMO-NLP-SG/VideoLLaMA2.1-7B-AV')

完整文档

来源: HuggingFace

---
license: apache-2.0
datasets:

  • lmms-lab/ClothoAQA

  • Loie/VGGSound

language:
  • en

metrics:
  • accuracy

pipeline_tag: visual-question-answering
library_name: transformers
tags:
  • Audio-visual Question Answering

  • Audio Question Answering

  • multimodal large language model

---

<p align="center">
<img src="https://cdn-uploads.huggingface.co/production/uploads/63913b120cf6b11c487ca31d/ROs4bHIp4zJ7g7vzgUycu.png" width="150" style="margin-bottom: 0.2;"/>
<p>

<h3 align="center"><a href="https://arxiv.org/abs/2406.07476">VideoLLaMA 2: Advancing Spatial-Temporal Modeling and Audio Understanding in Video-LLMs</a></h3>
<h5 align="center"> If you like our project, please give us a star ⭐ on <a href="https://github.com/DAMO-NLP-SG/VideoLLaMA2">Github</a> for the latest update. </h2>

<p align="center"><video src="https://cdn-uploads.huggingface.co/production/uploads/63913b120cf6b11c487ca31d/Wj7GuqQ0CB9JRoPo6_GoH.webm" width="800"></p>

📰 News

  • [2024.06.17] 👋👋 Update technical report with the latest results and the missing references. If you have works closely related to VideoLLaMA 2 but not mentioned in the paper, feel free to let us know.
  • [2024.06.03] Release training, evaluation, and serving codes of VideoLLaMA 2.

🌎 Model Zoo

Vision-Only Checkpoints

| Model Name | Type | Visual Encoder | Language Decoder | # Training Frames | |:-------------------|:--------------:|:----------------|:------------------|:----------------------:| | VideoLLaMA2-7B-Base | Base | clip-vit-large-patch14-336 | Mistral-7B-Instruct-v0.2 | 8 | | VideoLLaMA2-7B | Chat | clip-vit-large-patch14-336 | Mistral-7B-Instruct-v0.2 | 8 | | VideoLLaMA2-7B-16F-Base | Base | clip-vit-large-patch14-336 | Mistral-7B-Instruct-v0.2 | 16 | | VideoLLaMA2-7B-16F | Chat | clip-vit-large-patch14-336 | Mistral-7B-Instruct-v0.2 | 16 | | VideoLLaMA2-8x7B-Base | Base | clip-vit-large-patch14-336 | Mixtral-8x7B-Instruct-v0.1 | 8 | | VideoLLaMA2-8x7B | Chat | clip-vit-large-patch14-336 | Mixtral-8x7B-Instruct-v0.1 | 8 | | VideoLLaMA2-72B-Base | Base | clip-vit-large-patch14-336 | Qwen2-72B-Instruct | 8 | | VideoLLaMA2-72B | Chat | clip-vit-large-patch14-336 | Qwen2-72B-Instruct | 8 | | VideoLLaMA2.1-7B-16F-Base | Base | siglip-so400m-patch14-384 | Qwen2-7B-Instruct | 16 | | VideoLLaMA2.1-7B-16F | Chat | siglip-so400m-patch14-384 | Qwen2-7B-Instruct | 16 |

Audio-Visual Checkpoints

| Model Name | Type | Audio Encoder | Language Decoder | |:-------------------|:--------------:|:----------------|:----------------------:| | VideoLLaMA2.1-7B-AV (This Checkpoint) | Chat | Fine-tuned BEATs_iter3+(AS2M)(cpt2) | VideoLLaMA2.1-7B-16F |

🚀 Main Results

Multi-Choice Video QA & Video Captioning

<p><img src="https://cdn-uploads.huggingface.co/production/uploads/63913b120cf6b11c487ca31d/Z81Dl2MeVlg8wLbYOyTvI.png" width="800" "/></p>

Open-Ended Video QA

<p><img src="https://cdn-uploads.huggingface.co/production/uploads/63913b120cf6b11c487ca31d/UoAr7SjbPSPe1z23HBsUh.png" width="800" "/></p>

Multi-Choice & Open-Ended Audio QA

<p><img src="https://huggingface.co/YifeiXin/xin/resolve/main/VideoLLaMA2-audio.png" width="800" "/></p>

Open-Ended Audio-Visual QA

<p><img src="https://huggingface.co/YifeiXin/xin/resolve/main/VideoLLaAM2.1-AV.png" width="800" "/></p>

🤖 Inference with VideoLLaMA2-AV

```python import sys sys.path.append('./') from videollama2 import model_init, mm_infer from videollama2.utils import disable_torch_init import argparse

def inference(args):

model_path = args.model_path
model, processor, tokenizer = model_init(model_path)

if args.modal_type == "a":
model.model.vision_tower = None
elif args.modal_type == "v":
model.model.audio_tower = None
elif args.modal_type == "av":
pass
else:
raise NotImplementedError
# Audio-visual Inference
audio_video_path = "assets/00003491.mp4"
preprocess = processor['audio' if args.modal_type == "a" else "video"]
if args.modal_type == "a":
audio_video_tensor = preprocess(audio_video_path)
else:
audio_video_tensor = preprocess(audio_video_path, va=True if args.modal_type == "av" else False)
question = f"Please describe the video with audio information."

# Audio Inference
audio_video_path = "assets/bird-twitter-car.wav"
preprocess = processor['audio' if args.modal_type == "a" else "video"]
if args.modal_type == "a":
audio_video_tensor = preprocess(audio_video_path)
else:
audio_video_tensor = preprocess(audio_video_path, va=True if args.modal_type == "av" else False)
question = f"Please describe the audio."

# Video Inferen