Open LLaVA NeXT
Open-LLaVA-Next
LLAVA-NEXT系列的开源实施,用于促进大型多模式模型社区。
资源: [?huggingface]
在ModelZoo.md中查看更多详细信息。
| 姓名 | VIT | LLM | 权重 | 妈妈 | 种子 | SQA | MMB | MMB-CN | textvqa | GQA |
|---|---|---|---|---|---|---|---|---|---|---|
| llava-next-vicuna-7b | 夹L-336 | Vicuna-7b | SFT | 1519年 | 70.2 | 70.1 | 67.4 | 60.6 | 64.9 | 64.2 |
| 开放式隔壁-NEXT-VICUNA-7B | 夹L-336 | Vicuna-7b | pt,sft | 1540年 | 71.1 | 70.7 | 68.5 | 60.7 | 67.2 | 64.3 |
| llava-next-llama3-8b | 夹L-336 | Llama3-8b | SFT | 1591年 | 72.7 | 73.4 | 72.6 | 69.0 | 65.0 | 65.5 |
| 开放式lalava-next-llama3-8b | 夹L-336 | Llama3-8b | pt,sft | 1552 | 74.4 | 77.3 | 74.4 | 70.4 | 69.8 | 65.9 |
git clone https://github.com/xiaoachen98/Open-LLaVA-NeXT.git
cd Open-LLaVA-NeXTconda create -n llava-next python=3.10 -y
conda activate llava-next
pip install --upgrade pip # enable PEP 660 support
pip install -e . pip install -e ".[train]"
pip install flash-attn --no-build-isolation
您应该遵循此指令data.md来管理培训数据集。
Open-LALAVA-NEXT训练包括两个阶段:(1)特征对齐阶段:使用Laion-CC-SBU数据集的558K子集将冷冻预验证的视觉编码器连接到冷冻的LLM ; (2)视觉说明调整阶段:使用1M完全开源数据的整个模型进行芬特。详细的数据静态在视觉说明调整中提供。我们以Vicuna-V1.5-7B变体为示例,以介绍培训和评估细节。
Open-Lalava-Next系列在具有80GB内存的A100 GPU上进行了培训。为了减少GPU,您可以减少per_device_train_batch_size并相应地增加gradient_accumulation_steps 。并利用DeepSpeed Zero-3可以进一步降低内存需求。始终保持全局批次大小相同: per_device_train_batch_size x gradient_accumulation_steps x num_gpus 。
我们在Finetuning中使用了与Llava相同的超参数。下面提供了用于训练预训练和填充的两个超参数。
| 超参数 | 全局批处理大小 | 投影仪LR | 时代 | 最大长度 | 重量衰减 |
|---|---|---|---|---|---|
| 开放式隔壁-next-7b | 256 | 1E-3 | 1 | 4096 | 0 |
| 超参数 | 全局批处理大小 | LLM LR | 投影仪LR | 视觉塔LR | 时代 | 最大长度 | 重量衰减 |
|---|---|---|---|---|---|---|---|
| 开放式隔壁-next-7b | 128 | 2E-5 | 2E-5 | 2E-6 | 1 | 4096 | 0 |
请在此处下载带有BLIP字幕的Laion-CC-SBU数据集的558K子集。
在16 x A100(80G)上,预处理需要大约5个小时的开放式隔壁-Next-7b。
使用深速零2的培训脚本: pretrain.sh 。
--mm_projector_type mlp2x_gelu :两层MLP视觉语言连接器。--vision_tower openai/clip-vit-large-patch14-336 :剪辑VIT-L/14 336PX。使用深速零2的培训脚本: finetune.sh 。
要注意的新选项:
--unfreeze_mm_vision_tower True :Finetune Vision Tower。--mm_vision_tower_lr 2e-6 :视觉塔的学习率。--image_aspect_ratio anyres :处理具有可变分辨率的图像。--mm_patch_merge_type spatial_unpad :这可以解开填充和调整大小的图像的pytorch张量,并通过将可学习的newline向量插入图像令牌中,模型就会意识到二维空间信息。这用于处理图像令牌。 请参阅评估。
如果您发现此项目对您的研究有用,请考虑引用:
@misc { chen2024open ,
title = { Open-LLaVA-NeXT: An open-source implementation of LLaVA-NeXT series for facilitating the large multi-modal model community. } ,
author = { Chen, Lin and Xing, Long } ,
howpublished = { url{https://github.com/xiaoachen98/Open-LLaVA-NeXT} } ,
year = { 2024 } ,
doi = { 10.5281/zenodo.13935471 }
}