综合介绍
VideoRAG是一个专为处理和理解超长上下文视频而设计的检索增强生成框架。该工具结合了图驱动的文本知识基础和分层多模态上下文编码,能够在单个NVIDIA RTX 3090 GPU上高效处理数百小时的视频内容。VideoRAG通过动态构建知识图谱来保持跨视频语义的一致性,并优化检索效率。该项目由香港大学数据科学系开发,旨在为用户提供一个强大的工具来处理复杂的视频数据。
功能列表
- 高效处理超长上下文视频:利用单个NVIDIA RTX 3090 GPU处理数百小时的视频内容。
- 结构化视频知识索引:将数百小时的视频内容提炼成简洁的知识图谱。
- 多模态检索:结合文本语义和视觉内容,识别最相关的视频以提供全面的响应。
- 新建立的LongerVideos基准:包含超过160个视频,总计134小时的讲座、纪录片和娱乐内容。
- 双通道架构:结合图驱动的文本知识基础和分层多模态上下文编码,保持跨视频语义一致性。
使用帮助
安装流程
- 创建并激活conda环境:
conda create --name videorag python=3.11
conda activate videorag
- 安装必要的Python包:
pip install numpy==1.26.4 torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2
pip install accelerate==0.30.1 bitsandbytes==0.43.1 moviepy==1.0.3
pip install git+https://github.com/facebookresearch/pytorchvideo.git@28fe037d212663c6a24f373b94cc5d478c8c1a1d
pip install timm==0.6.7 ftfy regex einops fvcore eva-decord==0.6.1 iopath matplotlib types-regex cartopy
pip install ctranslate2==4.4.0 faster_whisper neo4j hnswlib xxhash nano-vectordb
pip install transformers==4.37.1 tiktoken openai tenacity
- 安装ImageBind:
cd ImageBind
pip install .
- 下载必要的检查点文件:
git clone https://huggingface.co/openbmb/MiniCPM-V-2_6-int4
git clone https://huggingface.co/Systran/faster-distil-whisper-large-v3
mkdir .checkpoints
cd .checkpoints
wget https://dl.fbaipublicfiles.com/imagebind/imagebind_huge.pth
cd ..
使用流程
- 视频知识提取:将多个视频输入VideoRAG,系统会自动提取并构建知识图谱。
- 查询响应:用户可以输入查询,VideoRAG会基于构建的知识图谱和多模态检索机制,提供全面的响应。
- 多语言支持:目前VideoRAG仅在英语环境中测试过,如需处理多语言视频,建议修改asr.py中的WhisperModel。
主要功能操作
- 视频上传:将视频文件上传至系统,系统会自动进行处理和知识提取。
- 查询输入:在查询框中输入问题,系统会基于知识图谱和多模态检索机制,提供详细的回答。
- 结果展示:系统会展示相关视频片段和文本回答,用户可以点击查看详细内容。