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 }
}