👁️Vision-Finetuning

Lerne, wie man Vision-/multimodale LLMs mit Unsloth finetunt

Das Feinabstimmen von Vision-Modellen ermöglicht dem Modell, in bestimmten Aufgaben zu brillieren, bei denen normale LLMs nicht so gut sind, wie z. B. Objekt-/Bewegungserkennung. Sie können auch trainieren VLMs mit RL. Wir haben viele kostenlose Notebooks für Vision-Feinabstimmung:

  • Ministral 3: Vision-Feinabstimmung für allgemeine Q&A: Notebookarrow-up-right Man kann allgemeine Q&A-Datensätze mit spezielleren Datensätzen verketten, damit die Feinabstimmung die Fähigkeiten des Basismodells nicht vergisst.

  • Gemma 3 (4B) Vision: Notebookarrow-up-right

  • Llama 3.2 Vision Feinabstimmung für Radiographie: Notebookarrow-up-right Wie können wir medizinische Fachkräfte dabei unterstützen, Röntgenaufnahmen, CT-Scans und Ultraschall schneller zu analysieren?

  • Qwen2.5 VL Feinabstimmung zur Umwandlung von Handschrift in LaTeX: Notebookarrow-up-right Dies ermöglicht es, komplexe mathematische Formeln einfach als LaTeX zu transkribieren, ohne sie manuell schreiben zu müssen.

circle-info

Es ist am besten sicherzustellen, dass Ihr Datensatz Bilder aller gleichen Größe/Dimensionen enthält. Verwenden Sie Dimensionen von 300–1000 px, um sicherzustellen, dass Ihr Training nicht zu lange dauert oder zu viele Ressourcen verbraucht.

Deaktivierung von Vision- / Nur-Text-Feinabstimmung

Um Vision-Modelle feinabzustimmen, erlauben wir Ihnen jetzt auszuwählen, welche Teile des Modells feinabgestimmt werden sollen. Sie können auswählen, nur die Vision-Schichten, oder die Sprachschichten, oder die Attention-/MLP-Schichten feinabzustimmen! Standardmäßig haben wir alle aktiviert!

model = FastVisionModel.get_peft_model(
    model,
    finetune_vision_layers     = True, # False, wenn die Vision-Schichten nicht feinabgestimmt werden
    finetune_language_layers   = True, # False, wenn die Sprachschichten nicht feinabgestimmt werden
    finetune_attention_modules = True, # False, wenn die Attention-Schichten nicht feinabgestimmt werden
    finetune_mlp_modules       = True, # False, wenn die MLP-Schichten nicht feinabgestimmt werden

    r = 16,                           # Je größer, desto höher die Genauigkeit, kann aber überanpassen
    lora_alpha = 16,                  # Empfohlene Alpha == r mindestens
    lora_dropout = 0,
    bias = "none",
    random_state = 3407,
    use_rslora = False,               # Wir unterstützen rank-stabilisiertes LoRA
    loftq_config = None,               # Und LoftQ
    target_modules = "all-linear",    # Jetzt optional! Kann bei Bedarf eine Liste angeben
    modules_to_save=[
        "lm_head",
        "embed_tokens",
    ],
)

Vision Data Collator

Wir haben einen speziellen Data Collator nur für Vision-Datensätze:

Und die Argumente für den Data Collator sind:

Vision-Feinabstimmungs-Datensatz

Der Datensatz zur Feinabstimmung eines Vision- oder multimodalen Modells ähnelt dem standardmäßigen Frage-&-Antwort-Paar datasets , aber dieses Mal enthalten sie auch Bild-Eingaben. Zum Beispiel, die Llama 3.2 Vision Notebookarrow-up-right verwendet einen radiologischen Fall, um zu zeigen, wie KI medizinischen Fachkräften helfen kann, Röntgenaufnahmen, CT-Scans und Ultraschalluntersuchungen effizienter zu analysieren.

Wir verwenden eine Stichprobe des ROCO-Radiographie-Datensatzes. Sie können auf den Datensatz zugreifen hierarrow-up-right. Der Datensatz enthält Röntgenaufnahmen, CT-Scans und Ultraschallbilder, die medizinische Zustände und Krankheiten zeigen. Jedes Bild hat eine von Experten verfasste Bildbeschreibung. Ziel ist es, ein VLM zu fine-tunen, um es zu einem nützlichen Analysetool für medizinische Fachkräfte zu machen.

Werfen wir einen Blick auf den Datensatz und prüfen, was das erste Beispiel zeigt:

Bild
Bildbeschreibung

Panoramische Radiographie zeigt eine osteolytische Läsion im rechten hinteren Oberkiefer mit Resorption des Bodens der Kieferhöhle (Pfeile).

Um den Datensatz zu formatieren, sollten alle Vision-Finetuning-Aufgaben wie folgt formatiert werden:

Wir werden eine benutzerdefinierte Anweisung erstellen, in der das VLM gebeten wird, ein expertenhafter Radiologe zu sein. Beachten Sie auch, dass Sie anstelle nur einer Anweisung mehrere Runden hinzufügen können, um es zu einem dynamischen Gespräch zu machen.

Lassen Sie uns den Datensatz in das "korrekte" Format für das Fine-Tuning konvertieren:

Das erste Beispiel ist jetzt wie unten strukturiert:

Bevor wir mit dem Fine-Tuning beginnen: Weiß das Vision-Modell vielleicht bereits, wie man die Bilder analysiert? Lassen Sie es uns überprüfen!

Und das Ergebnis:

Für weitere Details sehen Sie unseren Datensatzabschnitt in der Notebook hierarrow-up-right.

Multi-Bild-Training

Um ein VLM wie Qwen3-VL mit Mehrfachbildern feinabzustimmen oder zu trainieren, ist die einfachste Änderung, zu tauschen

durch:

Die Verwendung von map löst die Standardisierung des Datensatzes und Arrow-Verarbeitungsregeln aus, die strikt und komplizierter zu definieren sein können.

🔎response_part = "<start_of_turn>model\n",

Training nur auf Assistentenantworten für Vision-Modelle, VLMs Für Llama 3, 3.1, 3.2, 3.3 und 4-Modelle definieren Sie die Teile wie folgt: Für Sprachmodelle können wir wie zuvor beschrieben verwenden. Für Vision-Modelle verwenden Sie die zusätzlichen Argumente als Teil von genau wie zuvor! Siehe Vision Data Collator für weitere Details zur Verwendung des Vision Data Collators.

force_match = True, # Übereinstimmung von Newlines ebenfalls!

Zuletzt aktualisiert

War das hilfreich?