⭐️ Nos séries fonctionnent : [ MMStar ] [ ShareGPT4Video ] [ ShareGPT4Omni ]
??? Implémentation officielle de ShareGPT4V : amélioration des grands modèles multimodaux avec de meilleures légendes dans ECCV 2024.
Auteurs : Lin Chen*, Jinsong Li*, Xiaoyi Dong, Pan Zhang, Conghui He, Jiaqi Wang, Feng Zhao?, Dahua Lin?
Instituts : Université des Sciences et Technologies de Chine ; Laboratoire d'IA de Shanghai
Ressources : [Papier] [Page du projet] [ Partager l'ensemble de données GPT4V]
Modèles : [ShareGPT4V-7B] [ShareCaptioner]
Démo ShareGPT4V-7B [OpenXLab] [?HuggingFace] [Colab]
Démo de partage de sous-titres [OpenXlab] [?HuggingFace]
? Un ensemble de données image-texte hautement descriptif à grande échelle
? 100 000 sous-titres générés par GPT4-Vision, 1,2 million de sous-titres de haute qualité
? Un sous-titreur d'images général , approchant la capacité de sous-titrage de GPT4-Vision.
? Un grand modèle multimodal supérieur, ShareGPT4V-7B
[2024/7/2] Heureux d'annoncer que ShareGPT4V est accepté par l'ECCV 2024 !
[2024/5/8] Nous avons publié ShareGPT4Video , un ensemble de données de sous-titres vidéo à grande échelle, avec 40 000 sous-titres annotés par GPT4V et 4,8 millions de sous-titres annotés par notre ShareCaptioner-Video. Le total des vidéos dure 300 heures et 3000 heures séparément !
[2024/4/1] Nous avons publié un benchmark multimodal indispensable à la vision d'élite , MMStar. Amusez-vous!?
[2023/12/14] Nous avons publié le modèle ShareGPT4V-13B. Amusez-vous!?
[2023/12/13] Le code de formation et d'évaluation est disponible.
[2023/12/13] Local ShareCaptioner est disponible dès maintenant ! Vous pouvez l'utiliser pour générer des légendes de haute qualité pour votre ensemble de données avec inférence par lots en exécutant directement tools/share-cap_batch_infer.py
.
[2023/11/23] Nous publions la démo Web de Share-Captioner général !?
[2023/11/23] Nous publions du code pour créer votre démo locale de ShareGPT4V-7B !?
[2023/11/22] La démo Web et le point de contrôle sont disponibles maintenant !?
[2023/11/21] L'ensemble de données ShareGPT4V est disponible maintenant !?
[20/11/2023] La page papier et projet sont publiées !
Code de formation et d’évaluation pour ShareGPT4V-7B
Sous-titreur de partage local
Démo Web et démo locale de ShareGPT4V-7B
Points de contrôle de ShareGPT4V-7B
Voir plus de détails dans ModelZoo.md.
Nom | LLM | Point de contrôle | LLaVA-Banc-Wild | Perception MME | Cognition MME | MMBench | MMBench-CN | Image SEED | MM-Vet | QBench | Image SQA | VQA-v2 | Visualisation | GQA | TexteVQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PartagerGPT4V-7B | Vigogne-7B | PartagerGPT4V-7B | 72,6 | 1567.4 | 376.4 | 68,8 | 62.2 | 69,7 | 37,6 | 63,4 | 68,4 | 80,6 | 57.2 | 63,3 | 60,4 |
PartagerGPT4V-13B | Vigogne-13B | PartagerGPT4V-13B | 79,9 | 1618.7 | 303.2 | 68,5 | 63,7 | 70,8 | 43.1 | 65.2 | 71.2 | 81,0 | 55,6 | 64,8 | 62.2 |
depuis share4v.model.builder import load_pretrained_modelfrom share4v.mm_utils import get_model_name_from_pathfrom share4v.eval.run_share4v import eval_modelmodel_path = "Lin-Chen/ShareGPT4V-7B" tokenizer, modèle, image_processor, context_len = load_pretrained_model( model_path=model_path, model_base=Aucun, nom_modèle=get_nom_modèle_from_path(chemin_modèle) )
Consultez les détails avec la fonction load_pretrained_model
dans share4v/model/builder.py
.
Vous pouvez également utiliser la fonction eval_model
dans share4v/eval/run_llava.py
pour obtenir facilement le résultat. Ce faisant, vous pouvez utiliser ce code sur Colab directement après avoir téléchargé ce référentiel.
model_path = "Lin-Chen/ShareGPT4V-7B"prompt = "Quel est le slogan le plus courant du personnage de droite ?"image_file = "examples/breaking_bad.png"args = type('Args', (), { " model_path": model_path, "model_base": Aucun, "model_name": get_model_name_from_path(model_path), "query": invite, "conv_mode": Aucun, "image_file": image_file, "sep": ",", "temperature": 0, "top_p": Aucun, "num_beams": 1, "max_new_tokens": 512})()eval_model(args )
git clone https://github.com/InternLM/InternLM-XComposer --degree=1cd projets/ShareGPT4V conda create -n share4v python=3.10 -y conda activer share4v pip install --upgrade pip pip install -e .pip install -e ".[train]"pip install flash-attn --no-build-isolation
Vous pouvez créer votre démo locale en :
# run script python tools/app.py
Vous devez suivre cette instruction Data.md pour gérer les ensembles de données. Actuellement, nous fournissons un accès direct au téléchargement des données Web. Cependant, pour éviter d'éventuels litiges, nous prévoyons de publier prochainement les URL de ces ensembles de données plutôt que les données brutes.
La formation du modèle ShareGPT4V se compose de deux étapes : (1) étape d'alignement des fonctionnalités : utilisez notre ensemble de données ShareGPT4V-PT avec 1,2 million de paires image-texte de haute qualité générées par ShareCaptioner pour affiner l'encodeur de vision, le projecteur et le LLM afin d'aligner le texte et modalités visuelles ; (2) étape de réglage des instructions visuelles : affiner le projecteur et le LLM pour apprendre au modèle à suivre les instructions multimodales.
Pour vous entraîner sur moins de GPU, vous pouvez réduire le per_device_train_batch_size
et augmenter les gradient_accumulation_steps
en conséquence. Gardez toujours la même taille globale du lot : per_device_train_batch_size x gradient_accumulation_steps x num_gpus
.
Nous utilisons un ensemble d'hyperparamètres similaire à celui de ShareGPT4V-7B pour le réglage fin. Les deux hyperparamètres utilisés dans le pré-entraînement et le réglage fin sont fournis ci-dessous.
Pré-formation
Hyperparamètre | Taille globale du lot | Taux d'apprentissage | Époques | Longueur maximale | Perte de poids |
---|---|---|---|---|---|
PartagerGPT4V-7B | 256 | 2e-5 | 1 | 2048 | 0 |
Réglage fin
Hyperparamètre | Taille globale du lot | Taux d'apprentissage | Époques | Longueur maximale | Perte de poids |
---|---|---|---|---|---|
PartagerGPT4V-7B | 128 | 2e-5 | 1 | 2048 | 0 |
Tout d'abord, vous devez télécharger le projecteur MLP pré-entraîné par LLaVA-1.5 avec LAION-CC-SBU-558K. Parce qu'un processus approximatif d'alignement des modalités est bénéfique avant d'utiliser des légendes détaillées de haute qualité pour l'alignement des modalités.
Vous pouvez exécuterprojects projects/ShareGPT4V/scripts/sharegpt4v/slurm_pretrain_7b.sh
pour pré-entraîner le modèle. N'oubliez pas de préciser le chemin du projecteur dans le script. Au cours de cette étape, nous avons affiné la seconde moitié des blocs, du projecteur et du LLM de l'encodeur de vision.
Dans notre configuration, nous avons utilisé 16 GPU A100 (80G) et l'ensemble du processus de pré-formation a duré environ 12 heures. Vous pouvez ajuster le nombre d'étapes d'accumulation de dégradé pour réduire le nombre de GPU.
Dans cette étape, nous affinons le projecteur et le LLM avec sharegpt4v_mix665k_cap23k_coco-ap9k_lcs3k_sam9k_div2k.json.
Vous pouvez projects/ShareGPT4V/scripts/sharegpt4v/slurm_finetune_7b.sh
pour affiner le modèle.
Dans notre configuration, nous avons utilisé 16 GPU A100 (80G) et l'ensemble du processus de pré-formation a duré environ 7 heures. Vous pouvez ajuster le nombre d'étapes d'accumulation de dégradé pour réduire le nombre de GPU.
Pour garantir la reproductibilité, nous évaluons les modèles avec un décodage glouton. Nous n'évaluons pas l'utilisation de la recherche de faisceaux pour rendre le processus d'inférence cohérent avec la démonstration de chat des sorties en temps réel.
Voir Évaluation.md.
LLaVA : la base de code sur laquelle nous avons construit. Merci pour leur merveilleux travail.
Vicuna : l'incroyable grand modèle de langage open source !
Si vous trouvez notre travail utile pour votre recherche, pensez à donner une étoile ⭐ et une citation ?
@article{chen2023sharegpt4v, title={ShareGPT4V : Améliorer les grands modèles multimodaux avec de meilleures légendes}, author={Chen, Lin et Li, Jisong et Dong, Xiaoyi et Zhang, Pan et He, Conghui et Wang, Jiaqi et Zhao, Feng et Lin, Dahua}, journal={préimpression arXiv arXiv:2311.12793}, year={2023}}@article{chen2024sharegpt4video, title={ShareGPT4Video : Améliorer la compréhension et la génération de vidéos avec de meilleurs sous-titres}, author={Chen, Lin et Wei, Xilin et Li, Jinsong et Dong, Xiaoyi et Zhang, Pan et Zang , Yuhang et Chen, Zehui et Duan, Haodong et Lin, Bin et Tang, Zhenyu et autres}, journal={préimpression arXiv arXiv:2406.04325}, year={2024}}@article{chen2024we, title={Sommes-nous sur la bonne voie pour évaluer les grands modèles de langage de vision ?}, author={Chen, Lin et Li, Jinsong et Dong, Xiaoyi et Zhang, Pan et Zang, Yuhang et Chen, Zehui et Duan, Haodong et Wang, Jiaqi et Qiao, Yu et Lin, Dahua et autres}, journal={préimpression arXiv arXiv:2403.20330}, année={2024}}
Avis d'utilisation et de licence : les données et le point de contrôle sont destinés à un usage de recherche uniquement et sont autorisés sous licence. Ils sont également limités aux utilisations qui suivent l'accord de licence de LLaMA, Vicuna et GPT-4. L'ensemble de données est CC BY NC 4.0 (autorisant uniquement une utilisation non commerciale) et les modèles formés à l'aide de l'ensemble de données ne doivent pas être utilisés en dehors des fins de recherche.