⭐️ Unsere Serie funktioniert: [ MMStar ] [ ShareGPT4Video ] [ ShareGPT4Omni ]
??? Offizielle Implementierung von ShareGPT4V: Verbesserung großer multimodaler Modelle mit besseren Untertiteln in ECCV 2024.
Autoren : Lin Chen*, Jinsong Li*, Xiaoyi Dong, Pan Zhang, Conghui He, Jiaqi Wang, Feng Zhao?, Dahua Lin?
Institute : Universität für Wissenschaft und Technologie Chinas; Shanghai AI Laboratory
Ressourcen : [Papier] [Projektseite] [ [GPT4V-Datensatz teilen]
Modelle : [ShareGPT4V-7B] [ShareCaptioner]
TeilenGPT4V-7B Demo [OpenXLab] [?HuggingFace] [Colab]
Share-Captioner-Demo [OpenXlab] [?HuggingFace]
? Ein umfangreicher, äußerst beschreibender Bild-Text-Datensatz
? 100.000 von GPT4-Vision generierte Untertitel, 1,2 Millionen hochwertige Untertitel
? Ein allgemeiner Bilduntertitel , der der Untertitelfunktion von GPT4-Vision nahe kommt.
? Ein überlegenes großes multimodales Modell, ShareGPT4V-7B
[02.07.2024] Ich freue mich, Ihnen mitteilen zu können, dass ShareGPT4V von ECCV 2024 akzeptiert wird!
[08.05.2024] Wir haben ShareGPT4Video veröffentlicht, einen umfangreichen Video-Untertitel-Datensatz mit 40.000 von GPT4V annotierten Untertiteln und 4,8 Millionen von unserem ShareCaptioner-Video mit Annotationen versehenen Untertiteln. Die Gesamtdauer der Videos beträgt 300 Stunden und 3000 Stunden einzeln!
[01.04.2024] Wir haben einen erstklassigen, visionären multimodalen Benchmark veröffentlicht: MMStar. Viel Spaß!?
[14.12.2023] Wir haben das Modell ShareGPT4V-13B veröffentlicht. Viel Spaß!?
[13.12.2023] Schulungs- und Evaluierungscode ist verfügbar.
[13.12.2023] Local ShareCaptioner ist jetzt verfügbar! Sie können es verwenden, um hochwertige Beschriftungen für Ihren Datensatz mit Batch-Inferenz zu generieren, indem tools/share-cap_batch_infer.py
direkt ausführen.
[23.11.2023] Wir veröffentlichen die Webdemo von General Share-Captioner!?
[23.11.2023] Wir veröffentlichen Code zum Erstellen Ihrer lokalen Demo von ShareGPT4V-7B!?
[22.11.2023] Web-Demo und Checkpoint sind jetzt verfügbar!?
[21.11.2023] Der ShareGPT4V-Datensatz ist jetzt verfügbar!?
[20.11.2023] Das Paper und die Projektseite sind veröffentlicht!
Trainings- und Evaluierungscode für ShareGPT4V-7B
Lokaler ShareCaptioner
Webdemo und lokale Demo von ShareGPT4V-7B
Kontrollpunkte von ShareGPT4V-7B
Weitere Details finden Sie in ModelZoo.md.
Name | LLM | Kontrollpunkt | LLaVA-Bench-Wild | MME-Wahrnehmung | MME-Erkenntnis | MMBench | MMBench-CN | SEED-Bild | MM-Tierarzt | QBench | SQA-Bild | VQA-v2 | VizWiz | GQA | TextVQA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TeilenGPT4V-7B | Vicuna-7B | TeilenGPT4V-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 |
TeilenGPT4V-13B | Vicuna-13B | TeilenGPT4V-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 |
from 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, model, image_processor, context_len = load_pretrained_model( model_path=model_path, model_base=None, model_name=get_model_name_from_path(model_path) )
Schauen Sie sich die Details mit der Funktion load_pretrained_model
in share4v/model/builder.py
.
Sie können auch die Funktion eval_model
in share4v/eval/run_llava.py
verwenden, um die Ausgabe einfach zu erhalten. Auf diese Weise können Sie diesen Code direkt nach dem Herunterladen dieses Repositorys auf Colab verwenden.
model_path = "Lin-Chen/ShareGPT4V-7B"prompt = "Was ist das häufigste Schlagwort des Charakters auf der rechten Seite?"image_file = "examples/breaking_bad.png"args = type('Args', (), { " model_path“: model_path, „model_base“: Keine, „model_name“: get_model_name_from_path(model_path), „query“: prompt, „conv_mode“: Keine, „image_file“: image_file, „sep“: ",", „temperature“: 0, „top_p“: Keine, „num_beams“: 1, „max_new_tokens“: 512})()eval_model (Argumente)
Git-Klon https://github.com/InternLM/InternLM-XComposer -- Depth=1cd Projects/ShareGPT4V conda create -n share4v python=3.10 -y Conda aktiviert Share4v pip install --upgrade pip pip install -e .pip install -e ".[train]"pip install flash-attn --no-build-isolation
Sie können Ihre lokale Demo folgendermaßen erstellen:
# run script python tools/app.py
Sie sollten dieser Anweisung Data.md folgen, um die Datensätze zu verwalten. Derzeit bieten wir direkten Download-Zugriff auf die Webdaten. Um mögliche Streitigkeiten zu vermeiden, planen wir jedoch, in naher Zukunft URLs für diese Datensätze anstelle der Rohdaten zu veröffentlichen.
Das ShareGPT4V-Modelltraining besteht aus zwei Phasen: (1) Feature-Alignment-Phase: Verwenden Sie unseren ShareGPT4V-PT-Datensatz mit 1,2 Millionen ShareCaptioner-generierten hochwertigen Bild-Text-Paaren, um den Vision-Encoder, den Projektor und den LLM zu optimieren, um die Text- und Textpaare auszurichten visuelle Modalitäten; (2) Phase der visuellen Anweisungsabstimmung: Feinabstimmung des Projektors und des LLM, um dem Modell beizubringen, multimodalen Anweisungen zu folgen.
Um auf weniger GPUs zu trainieren, können Sie „ per_device_train_batch_size
reduzieren und gradient_accumulation_steps
entsprechend erhöhen. Halten Sie die globale Batchgröße immer gleich: per_device_train_batch_size x gradient_accumulation_steps x num_gpus
.
Bei der Feinabstimmung verwenden wir einen ähnlichen Satz von Hyperparametern wie ShareGPT4V-7B. Beide Hyperparameter, die beim Vortraining und bei der Feinabstimmung verwendet werden, sind unten aufgeführt.
Vorschulung
Hyperparameter | Globale Batchgröße | Lernrate | Epochen | Maximale Länge | Gewichtsverlust |
---|---|---|---|---|---|
TeilenGPT4V-7B | 256 | 2e-5 | 1 | 2048 | 0 |
Feinabstimmung
Hyperparameter | Globale Batchgröße | Lernrate | Epochen | Maximale Länge | Gewichtsverlust |
---|---|---|---|---|---|
TeilenGPT4V-7B | 128 | 2e-5 | 1 | 2048 | 0 |
Zunächst sollten Sie den von LLaVA-1.5 vortrainierten MLP-Projektor mit LAION-CC-SBU-558K herunterladen. Denn ein grober Modalitätsausrichtungsprozess ist von Vorteil, bevor hochwertige, detaillierte Bildunterschriften für die Modalitätsausrichtung verwendet werden.
Sie können projects/ShareGPT4V/scripts/sharegpt4v/slurm_pretrain_7b.sh
ausführen, um das Modell vorab zu trainieren. Denken Sie daran, den Projektorpfad im Skript anzugeben. In dieser Phase haben wir die zweite Hälfte der Blöcke, des Projektors und des LLM des Vision-Encoders feinabgestimmt.
In unserem Setup verwendeten wir 16 A100 (80G) GPUs und der gesamte Vortrainingsprozess dauerte etwa 12 Stunden. Sie können die Anzahl der Gradientenakkumulationsschritte anpassen, um die Anzahl der GPUs zu reduzieren.
In dieser Phase optimieren wir den Projektor und LLM mit sharegpt4v_mix665k_cap23k_coco-ap9k_lcs3k_sam9k_div2k.json.
Sie können projects/ShareGPT4V/scripts/sharegpt4v/slurm_finetune_7b.sh
ausführen, um das Modell zu optimieren.
In unserem Setup verwendeten wir 16 A100 (80G) GPUs und der gesamte Vortrainingsprozess dauerte etwa 7 Stunden. Sie können die Anzahl der Gradientenakkumulationsschritte anpassen, um die Anzahl der GPUs zu reduzieren.
Um die Reproduzierbarkeit sicherzustellen, werten wir die Modelle mit Greedy Decoding aus. Wir verwenden keine Strahlsuche, um den Inferenzprozess mit der Chat-Demo der Echtzeitausgaben in Einklang zu bringen.
Siehe Evaluation.md.
LLaVA: die Codebasis, auf der wir aufgebaut haben. Vielen Dank für ihre wunderbare Arbeit.
Vicuna: das erstaunliche Open-Source-Großsprachenmodell!
Wenn Sie unsere Arbeit für Ihre Forschung hilfreich finden, denken Sie bitte darüber nach, einen Stern ⭐ und eine Zitierung zu vergeben.
@article{chen2023sharegpt4v, title={ShareGPT4V: Improving Large Multi-Modal Models with Better Captions}, author={Chen, Lin und Li, Jisong und Dong, Xiaoyi und Zhang, Pan und He, Conghui und Wang, Jiaqi und Zhao, Feng und Lin, Dahua}, Journal={arXiv preprint arXiv:2311.12793}, Jahr={2023}}@article{chen2024sharegpt4video, Titel={ShareGPT4Video: Verbesserung des Videoverständnisses und der Generierung mit besseren Untertiteln}, Autor={Chen, Lin und Wei, Xilin und Li, Jinsong und Dong, Xiaoyi und Zhang, Pan und Zang , Yuhang und Chen, Zehui und Duan, Haodong und Lin, Bin und Tang, Zhenyu und andere}, Journal={arXiv Preprint arXiv:2406.04325}, Jahr={2024}}@article{chen2024we, Titel={Sind wir auf dem richtigen Weg zur Bewertung großer Seh-Sprach-Modelle?}, Autor={Chen, Lin und Li, Jinsong und Dong, Xiaoyi und Zhang, Pan und Zang, Yuhang und Chen, Zehui und Duan, Haodong und Wang, Jiaqi und Qiao, Yu und Lin, Dahua und andere}, Zeitschrift={arXiv preprint arXiv:2403.20330}, Jahr={2024}}
Nutzungs- und Lizenzhinweise : Die Daten und der Kontrollpunkt sind nur für Forschungszwecke bestimmt und lizenziert. Sie sind außerdem auf Nutzungen beschränkt, die der Lizenzvereinbarung von LLaMA, Vicuna und GPT-4 folgen. Der Datensatz ist CC BY NC 4.0 (und erlaubt nur die nichtkommerzielle Nutzung) und Modelle, die mit dem Datensatz trainiert wurden, sollten nicht außerhalb von Forschungszwecken verwendet werden.