VPGTrans 项目介绍
项目概述
VPGTrans 是一个旨在优化视觉-语言大模型(VL-LLM)构建成本的新框架。传统上,开发新的 VL-LLM 需要从头开始在大量的图像文本对上进行预训练,这个过程不仅资源密集,而且耗费大量计算能力。VPGTrans 提供了一种将视觉提示生成器(VPG)在不同的大模型(LLM)之间迁移的方案,这大大降低了成本,实现了 GPU 训练时长的减少,并将所需的训练数据量降低至约 10%。
VPGTrans 包括两个训练阶段,最终实现用新发布的大模型定制新的 VL-LLM。在该项目中,我们发布了两个通过 VPGTrans 创新的 VL-LLM,分别是 VL-LLaMA 和 VL-Vicuna。
VL-LLaMA
VL-LLaMA 是通过将 BLIP-2 OPT-6.7B 迁移到 LLaMA 构建的多模态版本。这个模型通过 VPGTrans 方法提升了性能,大大提高了构建 VL-LLM 的效率。
VL-Vicuna
VL-Vicuna 是一个基于 Vicuna 大模型构建的类似 GPT-4 的多模态聊天机器人。它通过 VPGTrans 框架进行训练,在对话场景中实现了更好的适应性。
安装指导
首先,用户需要克隆项目代码库并安装必要的环境依赖。具体步骤如下:
git clone https://github.com/VPGTrans/VPGTrans.git
cd VPGTrans
pip install -r requirements.txt
pip install -e .
演示与评估
VPGTrans 提供了 VL-Vicuna 的本地演示。用户需要准备预训练的 Vicuna 权重,按说明进行配置文件的修改,然后运行对应的脚本来启动演示。
评估部分则包含数据准备和运行代码来测试模型性能。本文使用的数据集包括 COCO caption、NoCaps、VQAv2、GQA 和 OK-VQA。
训练过程
训练过程分为两个主要阶段:
- 阶段一:投影器预热 - 需要下载 BLIP2 OPT-6.7B 检查点。用户可以通过线性投影工具进行初始设定,然后运行投影器预热脚本。
- 阶段二:直接微调 - 使用预热阶段生成的检查点进行进一步的微调。
对于 VL-Vicuna,除了上述两个阶段,还包括第三个阶段:视觉指令微调,进一步调整模型以适应对话场景。
致谢
此项目构建在 Lavis、Vicuna 和 MiniGPT-4 的基础上,实现了创新和提升。
引用方式
如果你在研究或应用中使用了 VPGTrans,请引用以下文献:
@article{2023vpgtrans,
author = {Ao Zhang, Hao Fei, Yuan Yao, Wei Ji, Li Li, Zhiyuan Liu, and Tat-Seng Chua},
title = {Transfer Visual Prompt Generator across LLMs},
journal = {CoRR},
volume = {abs/23045.01278},
year = {2023},
url = {https://doi.org/10.48550/arXiv.2305.01278},
}
许可证
项目使用 BSD 3-Clause License 授权。