Une mise en œuvre open source de la série Llava-Next pour faciliter la grande communauté de modèles multimodales.
Ressources: [? Huggingface]
Voir plus de détails dans Modelzoo.md.
| Nom | Vitonner | LLM | Poids | Mme | GRAINE | 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-lava-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
Vous devez suivre ces données d'instructions.md pour gérer les ensembles de données de formation.
La formation ouverte-llava-next se compose de deux étapes: (1) Étape d'alignement des fonctions: Utilisez un sous-ensemble 558K de l'ensemble de données LAION-CC-SBU pour connecter un encodeur de vision prétrainé surgelé à un LLM congelé ; (2) Étape de réglage de l'instruction visuelle: Finetune tout le modèle avec des données de 1M entièrement open source . Des statistiques de données détaillées sont fournies dans le réglage de l'instruction visuelle. Nous prenons la variante vicuna-v1.5-7b à titre d'exemple pour présenter les détails de formation et d'évaluation.
Les séries Open-Llava-Next sont formées sur des GPU A100 avec une mémoire de 80 Go. Pour s'entraîner sur moins de GPU, vous pouvez réduire le per_device_train_batch_size et augmenter le gradient_accumulation_steps en conséquence. Et l'utilisation de Deeppeed Zero-3 peut réduire davantage les exigences de mémoire. Gardez toujours la taille globale du lot: per_device_train_batch_size x gradient_accumulation_steps x num_gpus .
Nous utilisons un même ensemble d'hyperparamètres que Llava dans Finetuning. Les deux hyperparamètres utilisés dans la pré-entraînement et le finetuning sont fournis ci-dessous.
| Hyperparamètre | Taille du lot mondial | Projecteur LR | Époques | Longueur maximale | Décomposition du poids |
|---|---|---|---|---|---|
| Open-Llava-Next-7B | 256 | 1E-3 | 1 | 4096 | 0 |
| Hyperparamètre | Taille du lot mondial | LLM LR | Projecteur LR | Vision Tower LR | Époques | Longueur maximale | Décomposition du poids |
|---|---|---|---|---|---|---|---|
| Open-Llava-Next-7B | 128 | 2E-5 | 2E-5 | 2E-6 | 1 | 4096 | 0 |
Veuillez télécharger le sous-ensemble 558K de l'ensemble de données LAION-CC-SBU avec des légendes BLIP ici.
Pretrain prend environ 5 heures pour l'Open-Llava-Next-7b sur 16 x A100 (80g).
Script de formation avec Deeppeed Zero-2: pretrain.sh .
--mm_projector_type mlp2x_gelu : le connecteur de la langue visuelle MLP à deux couches.--vision_tower openai/clip-vit-large-patch14-336 : Clip Vit-L / 14 336px. Script de formation avec Deeppeed Zero-2: finetune.sh .
Nouvelles options à noter:
--unfreeze_mm_vision_tower True : Finetune Vision Tower.--mm_vision_tower_lr 2e-6 : taux d'apprentissage de la tour de vision.--image_aspect_ratio anyres : traitez une image avec des résolutions variables.--mm_patch_merge_type spatial_unpad : Cela unpads un tenseur pytorche d'une image rembourrée et redimensionnée, et en insérant des vecteurs Newline apprenables dans des jetons d'image, le modèle prend conscience d'informations spatiales bidimensionnelles. Ceci est utilisé pour traiter le jeton d'image. Voir Evaluation.Md.
Si vous trouvez ce projet utile dans vos recherches, veuillez envisager citer:
@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 }
}