Implementasi open-source dari seri LLAVA-NEXT untuk memfasilitasi komunitas model multi-modal yang besar.
Sumber daya: [? Huggingface]
Lihat detail lebih lanjut di modelzoo.md.
| Nama | Vit | Llm | Bobot | Nyonya | BENIH | SQA | MMB | MMB-CN | Textvqa | GQA |
|---|---|---|---|---|---|---|---|---|---|---|
| llava-next-vicuna-7b | Clip-L-336 | Vicuna-7b | Sft | 1519 | 70.2 | 70.1 | 67.4 | 60.6 | 64.9 | 64.2 |
| Open-llava-next-vicuna-7b | Clip-L-336 | Vicuna-7b | Pt, sft | 1540 | 71.1 | 70.7 | 68.5 | 60.7 | 67.2 | 64.3 |
| llava-next-llama3-8b | Clip-L-336 | Llama3-8b | Sft | 1591 | 72.7 | 73.4 | 72.6 | 69.0 | 65.0 | 65.5 |
| Open-llava-next-llama3-8b | Clip-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
Anda harus mengikuti data instruksi ini.md untuk mengelola dataset pelatihan.
Pelatihan Open -llava-Next terdiri dari dua tahap: (1) Tahap Penyelarasan Fitur: Gunakan subset 558K dari dataset Laion-CC-SBU untuk menghubungkan encoder penglihatan pretrained beku ke LLM beku ; (2) Tahap Tuning Instruksi Visual: Finetune Seluruh model dengan 1M data sumber terbuka yang sepenuhnya . Statika data terperinci disediakan dalam penyetelan instruksi visual. Kami mengambil varian Vicuna-V1.5-7B sebagai contoh untuk menyajikan rincian pelatihan dan evaluasi.
Seri Open-Llava-Next dilatih pada A100 GPU dengan memori 80GB. Untuk melatih GPU yang lebih sedikit, Anda dapat mengurangi per_device_train_batch_size dan meningkatkan gradient_accumulation_steps yang sesuai. Dan memanfaatkan nol-3 kecepatan dalam dapat mengurangi persyaratan memori lebih lanjut. Selalu jaga agar ukuran batch global tetap sama: per_device_train_batch_size x gradient_accumulation_steps x num_gpus .
Kami menggunakan hyperparameters yang sama dengan LLAVA di Finetuning. Baik hyperparameters yang digunakan dalam pretraining dan finetuning disediakan di bawah ini.
| Hyperparameter | Ukuran batch global | Proyektor LR | Zaman | Panjang maksimal | Kerusakan berat badan |
|---|---|---|---|---|---|
| Open-llava-next-7b | 256 | 1E-3 | 1 | 4096 | 0 |
| Hyperparameter | Ukuran batch global | Llm lr | Proyektor LR | Vision Tower LR | Zaman | Panjang maksimal | Kerusakan berat badan |
|---|---|---|---|---|---|---|---|
| Open-llava-next-7b | 128 | 2e-5 | 2e-5 | 2e-6 | 1 | 4096 | 0 |
Silakan unduh subset 558K dari dataset Laion-CC-SBU dengan teks blip di sini.
Pretrain membutuhkan waktu sekitar 5 jam untuk terbuka-llava-next-7b pada 16 x A100 (80g).
Script Pelatihan dengan Deeppeed Zero-2: pretrain.sh .
--mm_projector_type mlp2x_gelu : Konektor dua lapis dua lapis.--vision_tower openai/clip-vit-large-patch14-336 : clip vit-l/14 336px. Script Pelatihan dengan Deeppeed Zero-2: finetune.sh .
Opsi baru yang perlu diperhatikan:
--unfreeze_mm_vision_tower True : Menara penglihatan finetune.--mm_vision_tower_lr 2e-6 : Tingkat pembelajaran menara penglihatan.--image_aspect_ratio anyres : Proses gambar dengan resolusi variabel.--mm_patch_merge_type spatial_unpad : Ini membongkar tensor pytorch dari gambar empuk dan diubah ukurannya, dan dengan memasukkan vektor baru yang dapat dipelajari ke dalam token gambar, model ini menjadi sadar akan informasi spasial dua dimensi. Ini digunakan untuk memproses token gambar. Lihat Evaluasi.MD.
Jika Anda menemukan proyek ini berguna dalam penelitian Anda, silakan pertimbangkan CITE:
@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 }
}