CommunityBildgithub.com

wshobson/vision-sft

Feinabstimmung von Vision-Language-Modellen (VLMs) mittels überwachtem Lernen auf Bild+Text-Daten. Verwenden Sie dies, um ein VLM an eine visuelle Domäne oder Aufgabe anzupassen, einen gefrorenen Vision-Tower-LoRA zu konfigurieren oder eine VLM-Feinabstimmung zu debuggen, die trainiert, ohne zu lernen.

Was ist vision-sft?

Dieses Skill deckt die überwachte Feinabstimmung (SFT) von Vision-Language-Modellen (VLMs) mit Bild+Text-Demonstrationen ab. Es ist speziell für den Einsatz nach der Auswahl der Feinabstimmungsmethode gedacht, wenn die Basis ein VLM und kein reines Textmodell ist. Das Skill bietet eine konsensuale Standardrezeptur, bei der der Vision-Tower und der Projektor eingefroren und nur das Sprachmodell mit LoRA (r=8–16, α=16–32) trainiert wird. Es erklärt detailliert, wann ein Auftauen der Vision-Layer sinnvoll ist (bei visuellen Domänenverschiebungen) und warnt vor zwei "stillen Killern": Bild-Tag/Count-Mismatch und einer falschen min_pixels/max_pixels-Auflösungsbudgetierung. Das Skill wird in KI-Agentenplattformen wie Claude Code genutzt und gibt eine validierte Adapterkonfiguration aus, die direkt vom LLM-Finetuning-Training-Engineer verarbeitet werden kann.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/plugins/llm-finetuning/skills/vision-sft

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Vision-Language SFT (Überwachte Feinabstimmung)

Dieses Skill setzt voraus, dass die finetuning-method-selection bereits hierher weitergeleitet hat: Die Datenform besteht aus Bild+Text-Demonstrationen, nicht aus Präferenzpaaren oder einem verifizierbaren Belohnungssignal, und die Basis ist ein Vision-Language-Modell und kein reines Textmodell. lora-qlora-recipes deckt das reine Text-LoRA/QLoRA-Rezept ab, das dieses Skill für den Vision-Tower und Projektor spezialisiert; lesen Sie dieses Skill zuerst, wenn die LoRA-Grundlagen (Rang, Alpha, Ziel- Module) noch nicht vertraut sind.

Eingabe: ein Bild+Text-Datensatz und ein bereits aus dem Modellkatalog ausgewähltes VLM-Basismodell. Ausgabeformat: eine validierte Adapterkonfiguration — welche Komponenten eingefroren sind, LoRA-Zielmodule und ein min_pixels/max_pixels-Budget — die llm-finetuning-training-engineer direkt konsumiert, wenn er ein ausführbares Skript generiert.

Kurzreferenz

SituationStandard
Verhalten auf vertrauten Bildern anpassenEingefrorener Tower+Projektor, LoRA r=8–16, α=16–32
Visuelle DomänenverschiebungLetzte 6 ViT-Layer auftauen, Vision-LR 5–10x niedriger
Passt nicht in bf16 beim ZielrangQLoRA — nur eingefrorener Vision-Tower
fast_inference=Truefinetune_vision_layers=False
Loss normal, Eval verbessert sich nichtZuerst die beiden Stillen Killer unten prüfen

Das Konsens-Rezept

Frieren Sie den Vision-Tower und den Projektor ein. Legen Sie LoRA nur auf das LLM, all-linear (die gleiche Attention + MLP-Zielliste wie bei Text-only-SFT — siehe lora-qlora-recipes), mit r=8–16, α=16–32. Dies ist der etablierte Standard für die Anpassung des Verhaltens eines VLM, ohne dessen Sehvermögen zu beeinträchtigen.

  • Der Vision-Tower und der Projektor bleiben standardmäßig eingefroren. Sie codieren bereits eine allgemeine visuelle Repräsentation; ein erneutes Training ist selten notwendig und birgt Risiken, ohne für die meisten Aufgaben einen Mehrwert zu schaffen.
  • Der LoRA-Rang liegt niedriger als der allgemeine Text-only-Standard (r=8–16 hier vs. r=16–32 für Text-only-SFT), da der reine LLM-Adapter das Verhalten anpasst, kein neues visuelles Wissen injiziert.
  • QLoRA ist nur mit einem eingefrorenen Vision-Tower erlaubt. Die Quantisierung der Basis bei gleichzeitigem Auftauen und Trainieren von Vision-Layern ist nicht unterstützt und instabil — behandeln Sie dies als harte Paarungsregel, nicht als einstellbaren Parameter. Wenn der Vision-Tower aufgetaut werden muss, lassen Sie QLoRA fallen und verwenden Sie stattdessen bf16-LoRA.
# Tower + Projektor einfrieren; LoRA nur auf LLM
for name, param in model.named_parameters():
    if "vision_tower" in name or "projector" in name:
        param.requires_grad = False

target_modules = [
    "q_proj", "k_proj", "v_proj", "o_proj",
    "gate_proj", "up_proj", "down_proj",
]  # Nur LLM, all-linear — r=8-16, alpha=16-32

Wann auftauen

Das Auftauen von Vision-Layern ist eine bewusste Eskalation, keine Standardentscheidung — greifen Sie nur darauf zurück, wenn die Domänenverschiebung visuell, nicht textuell ist.

  • Nur bei visueller Domänenverschiebung auftauen. Wenn die Aufgabe darin besteht, neues Verhalten auf Bildern zu lehren, die der Tower bereits versteht (Diagramme, Alltagsfotos), dann ist das eingefrorene Tower-Rezept oben ausreichend. Tauen Sie auf, wenn die visuelle Domäne selbst dem Tower nicht vertraut ist — Satellitenbilder, medizinische Scans, dichte technische Diagramme — und das eingefrorene Tower-Rezept ein Plateau erreicht.
  • Die letzten 6 ViT-Layer sind der Sweet Spot. Das Auftauen der letzten sechs Vision-Transformer-Layer (nicht des gesamten Towers) ergab gemessene +1,7 Punkte auf DocVQA bei ~1,75x Trainingskosten gegenüber der eingefrorenen Basislinie. Behandeln Sie sechs Layer als die Obergrenze, die es wert ist, bezahlt zu werden; weiter zu gehen verbraucht Rechenleistung ohne entsprechendes Ergebnis.
  • Die Vision-LR muss 5–10x niedriger sein als die LLM-LR, wenn sie aufgetaut ist. Die vortrainierte Repräsentation des Vision-Towers ist empfindlicher als der Adapter des LLM; die gleiche LR für beide riskiert, die visuelle Repräsentation schneller zu überschreiben, als der LLM-Adapter kompensieren kann.
  • Hoher LoRA-Rang auf der Patch-Embedding-Schicht riskiert NaN. Wenn Patch-Embedding in der aufgetauten Menge ist, halten Sie seinen Rang niedrig und beobachten Sie den Loss der frühen Schritte genau — eine der empfindlichsten Stellen, um LoRA in einem VLM anzuwenden.

Die beiden Stillen Killer

Beide produzieren einen Lauf, der ohne Fehler trainiert und ohne zu lernen: Die Loss-Kurve sieht normal aus, das Modell verbessert sich nicht, und keiner wirft eine Ausnahme — beide benötigen eine explizite Prüfung vor dem Training, und nicht nur ein sauberes Trainingsprotokoll.

  • Bild-Tag/Count-Mismatch. Jeder Bild-Platzhalter-Token im templatierten Text muss 1:1 auf ein tatsächlich an den Collator übergebenes Medienelement abbilden. Ein Mismatch (ein Platzhalter, null oder zwei Bilder angehängt; oder ein Bild ohne Platzhalter) führt bei den meisten Collatoren zu keinem Fehler — es richtet Bild und Text stillschweigend falsch aus, und das Modell "trainiert, lernt aber nichts." Validieren Sie die 1:1-Platzhalter-zu-Medien-Zuordnung vor Trainingsbeginn für jedes Beispiel, nicht nur für eine Stichprobe. Vollständiges Validierungs-Checklisten-Detail: references/collators-and-pitfalls.md.
  • min_pixels/max_pixels Auflösungsbudget. Dieses Paar ist der mit Abstand wichtigste Hyperparameter für Qualität und Speicher bei VLM SFT — wichtiger als Rang, Alpha oder LR. Zu niedrig verkleinert Bilder stillschweigend unter das, was die Aufgabe benötigt (kleiner Dokumententext wird unlesbar, auch wenn das Training "erfolgreich" ist); zu hoch sprengt das Aktivierungsspeicherbudget oder erzwingt eine zu kleine Batchgröße für stabiles Training. Setzen Sie es bewusst pro Datensatz fest, verlassen Sie sich nicht auf einen Framework-Standard.

Unsloth-Spezifika

  • UnslothVisionDataCollator ist der Collator, den Unsloth für VLM SFT erwartet — er behandelt die Bild-Tag-Ausrichtung und den pro-Architektur-Processor-Vertrag, der in references/collators-and-pitfalls.md beschrieben ist. Ersetzen Sie keinen Text-only-Collator für VLM-Daten.
  • finetune_vision_layers=False ist erforderlich, wenn fast_inference=True. vLLM kann keine LoRA-Adapter auf Vision-Layern bedienen, daher schlägt ein Fast-Inference-Setup, das auch Vision-Layer auftaut, zur Serve-Zeit fehl, selbst wenn das Training erfolgreich ist. Wenn das Rezept das Auftauen der letzten 6 ViT-Layer vorsieht (siehe "Wann auftauen" oben), ist Fast Inference für diesen Lauf vom Tisch — wählen Sie eines oder das andere, nicht beides.

Modellauswahl

Die Wahl des Basis-VLM liegt außerhalb des Rahmens dieses Skills — sie befindet sich an einer Stelle, dem Modellkatalog unter finetuning-method-selection's references/model-catalog.md. Dieses Skill und seine Referenzen beschreiben Rezepte nur nach Architekturfamilie, niemals durch die Empfehlung eines Modells gegenüber einem anderen.

VLM Reinforcement Learning (VLM-GRPO) ist in diesem Plugin nur als Referenz enthalten — die fragmentierten Tools und die für VLM-RL spezifischen Reward-Hacking-Fehlermodi werden in grpo-rlvr-training behandelt, nicht hier. Der Umfang dieses Skills endet bei der überwachten Feinabstimmung.

Fehlermodi

Der immer wiederkehrende Fehler in jedem Abschnitt oben ist, eine saubere Loss-Kurve als Beweis dafür zu behandeln, dass der Lauf gesund ist. Eine normal aussehende Kurve ist konsistent mit sowohl einem funktionierenden Lauf als auch einem der beiden stillen Killer, da das Modell in beiden Fällen auf irgendetwas trainiert — nur nicht auf dem ausgerichteten Bild-Text-Signal, wenn ein Killer vorhanden ist. Ein flacher Eval-Score neben einer normalen Loss-Kurve bedeutet, die Checkliste in references/collators-and-pitfalls.md erneut durchzugehen, bevor Sie irgendeinen Hyperparameter anfassen.

Referenzen

  • references/collators-and-pitfalls.md — pro- Architektur-Collator-Tabelle, Datensatzformat-Beispiele mit Bildplatzhaltern, eine Validierungs-Checkliste vor dem Training und das zweistufige Projektor-Ausrichtungsrezept als fortgeschrittenes Muster.

Verwandte Skills: finetuning-method-selection leitet hierher weiter; lora-qlora-recipes deckt die grundlegenden Text-only-LoRA-Konzepte ab, die dieses Skill spezialisiert; grpo-rlvr-training behandelt VLM-RL (nur als Referenz); dataset-curation deckt die Bild+Text-Datensatzvorbereitung ab, die dieses Skill nicht behandelt.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Verwandte Skills