Mantis: 多图像指令微调的开源项目教程
1. 项目介绍
Mantis 是一个基于 LLaMA-3 的多模态模型,旨在通过交错文本和图像输入,在学术级别的资源(例如在 16xA100-40G 上训练 36 小时)上进行训练。该项目专注于解决大型多模态模型在处理多图像视觉语言任务时的性能问题,实现了在五个多图像基准测试(NLVR2、Q-Bench、BLINK、MVBench、Mantis-Eval)上的最新性能,并保持了与 CogVLM 和 Emu2 相当的单图像性能。
2. 项目快速启动
环境搭建
首先,创建一个虚拟环境并激活它:
conda create -n mantis python=3.10
conda activate mantis
然后,安装必要的依赖项:
pip install -e .
运行示例
在 examples
目录下,可以找到运行 Mantis 的示例脚本。以下是一个运行推理的例子:
cd examples
python run_mantis.py
训练模型
安装训练和评估所需的依赖项:
pip install -e .[train,eval]
然后在 mantis/train
目录下运行训练脚本。以下是一个使用文本图像交错数据格式进行训练的例子:
cd mantis/train
bash scripts/train_example_chat.sh
根据不同的数据格式和模型,可以选择不同的训练脚本。
3. 应用案例和最佳实践
训练示例
- Q-lora 训练:适用于单 GPU 的训练。
- 视频文本交错数据训练:使用 Q-lora,需要 1 GPU。
- 分类数据训练:可能需要 8 个或更多的 GPU。
模型训练
- 基于 LLaMA3 的 Mantis:分两阶段进行,首先是预训练多模态投影器,然后是在 Mantis-Instruct 上进行微调。
- 基于 Fuyu-8B 的 Mantis:直接在 Mantis-Instruct 上进行微调。
4. 典型生态项目
Mantis 的生态项目包括:
- Mantis-Instruct:一个用于多图像指令微调的数据集。
- Mantis-Eval:用于评估 LMM 多图像技能的高质量示例。
以上是 Mantis 项目的简要教程,希望对您有所帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考