For the complete documentation index, see llms.txt. This page is also available as Markdown.

👁️Vision-Feinabstimmung

Lerne, wie man Vision-/Multimodal-LLMs mit Unsloth feinabstimmt

Durch Feinabstimmung von Vision-Modellen kann das Modell bei bestimmten Aufgaben glänzen, bei denen normale LLMs nicht so gut sind, wie z. B. bei der Objekterkennungs-/Bewegungserkennung. Sie können auch trainieren VLMs mit RL. Wir haben viele kostenlose Notebooks für Vision-Fine-Tuning:

  • Qwen3-VL (8B) Vision: Notebook

  • Ministral 3: Vision-Fine-Tuning für allgemeines Frage-und-Antworten: Notebook Man kann allgemeine Frage-und-Antworten-Datensätze mit spezielleren Datensätzen zusammenführen, damit das Fine-Tuning die Fähigkeiten des Basismodells nicht vergisst.

  • Gemma 3 (4B) Vision: Notebook

  • Llama 3.2 Vision Fine-Tuning für Röntgenbildgebung: Notebook Wie können wir medizinische Fachkräfte dabei unterstützen, Röntgenaufnahmen, CT-Scans und Ultraschalluntersuchungen schneller zu analysieren.

  • Qwen2.5 VL Fine-Tuning zum Umwandeln von Handschrift in LaTeX: Notebook Dadurch können komplexe mathematische Formeln ohne manuelles Abtippen leicht als LaTeX transkribiert werden.

Es ist am besten sicherzustellen, dass Ihr Datensatz Bilder alle in derselben Größe/mit denselben Abmessungen enthält. Verwenden Sie Abmessungen von 300–1000 px, damit Ihr Training nicht zu lange dauert und nicht zu viele Ressourcen verbraucht.

Vision-/Nur-Text-Fine-Tuning deaktivieren

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

model = FastVisionModel.get_peft_model(
    model,
    finetune_vision_layers     = True, # False, wenn keine Vision-Layer feinabgestimmt werden
    finetune_language_layers   = True, # False, wenn keine Sprach-Layer feinabgestimmt werden
    finetune_attention_modules = True, # False, wenn keine Attention-Layer feinabgestimmt werden
    finetune_mlp_modules       = True, # False, wenn keine MLP-Layer feinabgestimmt werden

    r = 16,                           # Je größer, desto höher die Genauigkeit, aber möglicherweise Overfitting
    lora_alpha = 16,                  # Empfohlene Alpha mindestens == r
    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 angegeben werden
    modules_to_save=[
        "lm_head",
        "embed_tokens",
    ],
)

Vision-Daten-Collator

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

Und die Argumente für den Daten-Collator sind:

Training mit mehreren Bildern

Um Modelle mit mehreren Bildern feinabzustimmen oder zu trainieren, ist die naheliegendste Änderung, Folgendes auszutauschen:

gegen:

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

Datensatz für Vision-Fine-Tuning

Der Datensatz für die Feinabstimmung eines Vision- oder multimodalen Modells ähnelt einem Standard-Frage-und-Antwort-Paar datasets , enthält diesmal aber auch Bildeingaben. Zum Beispiel verwendet das Llama 3.2 Vision Notebook einen Röntgenfall, um zu zeigen, wie KI medizinische Fachkräfte dabei unterstützen kann, Röntgenaufnahmen, CT-Scans und Ultraschalluntersuchungen effizienter zu analysieren.

Wir verwenden eine gekürzte Version des ROCO-Röntgendatensatzes. Sie können auf den Datensatz zugreifen hier. Der Datensatz enthält Röntgenaufnahmen, CT-Scans und Ultraschallbilder, die medizinische Zustände und Krankheiten zeigen. Jedes Bild hat eine von Experten verfasste Bildunterschrift, die es beschreibt. Ziel ist es, ein VLM so feinabzustimmen, dass es zu einem nützlichen Analysewerkzeug für medizinische Fachkräfte wird.

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

Bild
Bildunterschrift

Panoramaröntgen 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-Fine-Tuning-Aufgaben wie folgt formatiert werden:

Wir erstellen eine eigene Anweisung, in der das VLM gebeten wird, ein Experte für Radiologie zu sein. Beachten Sie außerdem, dass Sie anstelle von nur einer Anweisung mehrere Gesprächsrunden hinzufügen können, um eine dynamische Unterhaltung zu erzeugen.

Lassen Sie uns den Datensatz in das „richtige“ Format für das Fine-Tuning umwandeln:

Das erste Beispiel ist nun wie unten strukturiert:

Bevor wir irgendein Fine-Tuning durchführen, kennt das Vision-Modell vielleicht bereits, wie man die Bilder analysiert? Lassen Sie uns prüfen, ob das der Fall ist!

Und das Ergebnis:

Weitere Details finden Sie in unserem Datensatzabschnitt im Notebook hier.

🔎Training nur auf Assistentenantworten für Vision-Modelle, VLMs

Für Sprachmodelle können wir from unsloth.chat_templates import train_on_responses_only wie zuvor beschrieben verwenden. Für Vision-Modelle verwenden Sie die zusätzlichen Argumente als Teil von UnslothVisionDataCollator genau wie zuvor! Siehe Vision-Feinabstimmung für weitere Details zur Verwendung des Vision-Daten-Collators.

Zum Beispiel für Llama 3.2 Vision:

Zuletzt aktualisiert

War das hilfreich?