MA-LMM 开源项目使用教程
1. 项目介绍
MA-LMM(Memory-Augmented Large Multimodal Model)是一个用于长时视频理解的高效且有效的模型。该项目的主要目标是设计一个能够处理长时视频的模型,通过在线方式处理视频并将过去的视频信息存储在内存库中,从而在不超出LLM上下文长度约束或GPU内存限制的情况下进行长期分析。MA-LMM可以无缝集成到当前的多模态LLM中,并在多个视频理解任务上实现了最先进的性能。
2. 项目快速启动
2.1 环境准备
首先,克隆项目到本地:
git clone https://github.com/boheumd/MA-LMM.git
cd MA-LMM
2.2 安装依赖
使用pip安装项目依赖:
pip install -e .
如果你在Apple Silicon上运行代码,需要使用eva-decord
而不是decord
。可以在requirements.txt
文件中进行修改:
contexttimer
eva-decord
einops>=0.4.1
fairscale==0.4.4
2.3 下载预训练模型
下载预训练的LLM权重(例如Vicuna-v1.1)并按照以下格式组织:
├── llm
│ ├── vicuna-7b
│ ├── vicuna-13b
2.4 运行示例
你可以通过运行demo.ipynb
来探索MA-LMM的演示:
jupyter notebook demo.ipynb
3. 应用案例和最佳实践
3.1 长时视频理解
MA-LMM在长时视频理解任务中表现出色,可以处理包括LVU、Breakfast和COIN等数据集。你可以通过以下命令进行训练和测试:
bash run_scripts/lvu/train.sh
bash run_scripts/lvu/test.sh /path/to/checkpoint
3.2 视频问答
在视频问答任务中,MA-LMM在MSRVTT、MSVD和ActivityNet数据集上进行了实验,并取得了优异的成绩。你可以通过以下命令进行训练和测试:
bash run_scripts/msrvtt/train.sh
bash run_scripts/msrvtt/test.sh /path/to/checkpoint
3.3 视频字幕生成
MA-LMM还可以用于视频字幕生成任务,在Youcook2数据集上进行了实验。你可以通过以下命令进行训练和测试:
bash run_scripts/youcook2/train.sh
bash run_scripts/youcook2/test.sh /path/to/checkpoint
4. 典型生态项目
MA-LMM作为一个多模态模型,可以与其他视频处理和理解项目结合使用,例如:
- Video-LLaMA: 一个基于LLaMA的视频理解模型,可以与MA-LMM结合进行更复杂的视频分析。
- InstructBLIP: 一个用于图像-文本对齐的模型,MA-LMM可以作为其插件模块,无需微调即可进行零样本评估。
- LAVIS: 一个用于视频和图像理解的库,MA-LMM可以作为其扩展模块,提供长时视频理解能力。
通过这些生态项目的结合,MA-LMM可以在更广泛的场景中发挥作用,提升视频理解和分析的效率和效果。