So lernt ein Modell
Verändere echte Gewichte im Browser. Verfolge Vorhersage, Loss und Gradienten – und teste, ob das Gelernte auch bei neuen Bildern funktioniert.
Ein Fehler wird zum Lernsignal
Ein Modell «versteht» seine Fehler nicht wie ein Mensch. Du definierst eine Aufgabe und lieferst Beispiele mit Zielantworten. Das Modell berechnet eine Vorhersage. Eine Loss-Funktion gibt als Zahl an, wie weit diese vom Ziel entfernt ist. Die Trainingsschleife verändert Parameter so, dass dieser Fehler kleiner werden soll.
Ein Gewicht bestimmt, wie eine Eingabe in die Rechnung eingeht. Der Bias verschiebt die Entscheidung zusätzlich. Ein Gradient beschreibt die Änderungsrichtung des Loss bei kleinen Parameteränderungen. Beim Gradientenabstieg gehen wir ein Stück in die entgegengesetzte Richtung. Wie gross dieses Stück ist, legt die Lernrate fest.
Im folgenden Modell kannst du alle Parameter überblicken. Es verarbeitet nur vier Graustufenpixel und beantwortet «Ist links heller?». Die Rechnungen und Kurven entstehen tatsächlich in deinem Browser.
Trainiere ein Modell mit vier Pixeln.
Die Aufgabe lautet: Ist die linke Bildhälfte heller? Vier Pixelwerte gehen hinein, eine Wahrscheinlichkeit kommt heraus. Die vier Gewichte und ein Bias werden hier wirklich berechnet und verändert.
Erstes Trainingsbild
Zielantwort y = 1: Ja, links ist heller.
Ein Update, vollständig nachvollziehbar
- Vorhersage
p = 0,500. Das Modell ist unentschieden.
- Mit der Zielantwort vergleichen
Loss = 0,693. Eine sicher richtige Vorhersage hätte einen kleineren Loss.
- Änderungsrichtung berechnen
Der Gradient sagt, wie sich der Loss bei kleinen Gewichtsänderungen verändert.
- Gewichte aktualisieren
w neu = w alt − Lernrate × Gradient
Die Rechnung mit Zahlen öffnen
z = w₁x₁ + w₂x₂ + w₃x₃ + w₄x₄ + b
p = 1 / (1 + exp(−z))
Loss = −[y ln(p) + (1−y) ln(1−p)]
∂Loss/∂wᵢ = (p−y)xᵢ
∂Loss/∂b = p−y
Vor dem ersten Schritt sind alle Gewichte und der Bias 0.
Noch kein Update. Mit JavaScript kannst du die Rechnung selbst ausführen.
Diese Parameter hat das Modell gerade.
- w1
- 0,000
- w2
- 0,000
- w3
- 0,000
- w4
- 0,000
- Bias b
- 0,000
Alle Parameter starten bei null. Die Wahl der Trainingsbilder bestimmt, welche Regel sie lernen.
Trainingsfehler und neue Bilder vergleichen
Durchgezogen: TrainingslossGestrichelt: Validierungsloss
Beide mittleren Loss-Werte starten bei 0,693.
Diese zwei Bilder bleiben ausserhalb des Trainings.
Datensätze und alle berechneten Messwerte
Jeder Schritt verwendet ein Trainingsbild, zyklisch in der gezeigten Reihenfolge. Zwei bzw. vier Updates ergeben hier einen vollständigen Durchlauf durch den jeweiligen Datensatz.
- Nur zwei ähnliche Lichtverhältnisse: [1, 0.8, 1, 0.8] → 1; [0, 0.2, 0, 0.2] → 0
- Helle und dunkle Beispiele auf beiden Seiten: [1, 0.8, 1, 0.8] → 1; [0, 0.2, 0, 0.2] → 0; [0.3, 0.05, 0.3, 0.05] → 1; [0.65, 0.9, 0.65, 0.9] → 0
| Update | Trainingsloss | Validierungsloss |
|---|---|---|
| 0 | 0,6931 | 0,6931 |
Das ist ein vollständiger kleiner Klassifikator, kein VLM. Er hat keine Transformer-Schichten und erzeugt keine Sprache. Der übertragbare Teil ist die Lernschleife: vorhersagen → Fehler messen → Gradienten berechnen → Parameter ändern → neue Daten prüfen. Alle Kurven entstehen aus diesen vier Pixeln und den angegebenen Datensätzen.
Rechne den ersten Schritt nach
Beginne mit «Nur zwei Lichtverhältnisse» und Lernrate 0,50. Drücke Ein Lernschritt. Das erste Bild hat die Werte [1; 0,8; 1; 0,8], das Ziel ist y = 1. Weil alle Gewichte zunächst null sind, ist die Vorhersage p = 0,5.
Der Fehlerterm p − y ist −0,5. Für das erste Gewicht ergibt sich der Gradient −0,5 × 1 = −0,5. Das Update lautet daher 0 − 0,5 × (−0,5) = 0,25. Die anderen Gewichte werden 0,20, 0,25, 0,20; der Bias wird 0,25. Für genau dasselbe Bild steigt die Wahrscheinlichkeit danach auf etwa 0,745.
Das Modell hat eine kleine Änderung vorgenommen, die zu diesem Beispiel passt. Ob sie auch eine gute allgemeine Regel ist, wissen wir dadurch noch nicht. Bei grossen Netzen berechnet Backpropagation die nötigen Ableitungen durch die einzelnen Rechenschritte mithilfe der Kettenregel. Ein Optimierer nutzt sie für die Parameterupdates. Die PyTorch-Anleitung zu automatischen Gradienten zeigt diesen Rechenweg in Code.
Warum wird das erste Gewicht grösser?
Erklärung ansehen
Das Update ist w neu = w alt − Lernrate × Gradient. Es kann ein Gewicht erhöhen oder verringern. Die passende Richtung hängt vom Beispiel und vom aktuellen Modell ab.
Gute Trainingswerte können täuschen
Setze zurück und spiele 100 Schritte ab. Bei reduzierter Bewegung führt dieselbe Schaltfläche einzelne Schritte aus. Beobachte beide Kurven: Der Trainingsloss fällt, während der Fehler auf den zwei neuen Bildern steigt. Das Netz nutzt eine Abkürzung: In den Trainingsdaten bedeutet ein insgesamt helles Bild immer «links heller». Die rechten Pixel erhalten deshalb ebenfalls positive Gewichte.
Unsere zwei Validierungsbilder kehren genau diese Korrelation um: links heller bei dunklem Gesamtbild und rechts heller bei hellem Gesamtbild. Nach 100 Updates liegt der mittlere Trainingsloss hier bei etwa 0,057, der Validierungsloss bei 2,414. Beide neuen Bilder werden falsch entschieden. Das sind nachrechenbare Werte dieses kleinen Datensatzes.
Wähle jetzt Abwechslungsreiche Lichtverhältnisse. Das setzt die Gewichte zurück. Lasse mit derselben Lernrate wieder 100 Updates laufen. Nun kommen beide Anordnungen auch bei anderen Helligkeiten im Training vor. Die linken Gewichte werden positiv und die rechten negativ. Bei diesen zwei neuen Bildern fällt der Loss auf etwa 0,416, beide Entscheidungen stimmen. Zwei künstliche Beispiele reichen selbstverständlich nicht, um eine belastbare allgemeine Erkennungsrate zu messen.
Dein Experiment: Vermute zuerst, was eine grössere Lernrate verändert. Vergleiche dann vom gleichen Nullzustand aus die Werte 0,10 und 1,00. Achte auf Zwischenwerte und beide Kurven. Grössere Schritte können schneller vorankommen, aber auch stärker schwanken; «höher» ist keine allgemeine Qualitätsregel.
Ein Update ist hier ein einzelner Lernschritt. Eine Epoche bedeutet, dass alle Trainingsbeispiele einmal verwendet wurden. Bei zwei Bildern sind 100 Updates also 50 Epochen; bei vier Bildern 25. Gleiche Updatezahl und gleiche Epochenzahl sind unterschiedliche Vergleiche.
Der Trainingsloss sinkt, der Validierungsloss steigt. Was prüfst du zuerst?
Erklärung ansehen
Trainingsdaten ändern die Parameter. Validierungsdaten helfen bei der Auswahl von Daten und Einstellungen. Ein separater, bis zum Schluss unbenutzter Testdatensatz prüft die fertige Entscheidung.
Wie daraus VLM-Training wird
Beim VLM gehen Bild und Frage hinein, und als Ziel dient eine geprüfte Textantwort. Der Loss wird über die Ziel-Token berechnet. Statt fünf Parametern gibt es sehr viele. Die Grundschleife bleibt: vorhersagen, mit dem Ziel vergleichen, Gradienten berechnen und die dafür freigegebenen Gewichte ändern.
Woher kommen die ersten Bildmerkmale? LLaVAs Bildencoder wurde bereits als Teil von CLIP vortrainiert. Dabei verarbeitet ein Bildencoder Fotos und ein Textencoder die zugehörigen Beschreibungen. Das Lernziel hebt passende Bild-Text-Paare gegenüber unpassenden Paaren im Batch hervor. Die Encodergewichte lernen dadurch Merkmale, die für diese Zuordnung nützlich sind. Dafür braucht es keine von Hand vergebenen Objektnamen pro Patch. CLIP-Originalpublikation
Auch das Sprachmodell bringt bereits gelernte Fähigkeiten mit. Das spätere VLM-Training muss diese vorhandenen Bausteine verbinden und an Bildfragen anpassen. In LLaVAs betrachtetem Rezept geschieht das in zwei weiteren Phasen:
| Phase | Welche Gewichte ändern sich? | Wozu? |
|---|---|---|
| Alignment | Projektor | Bildmerkmale für das vorhandene Sprachmodell nutzbar machen |
| Visuelles Instruction-Tuning | Projektor und Sprachmodell | Bildbezogene Fragen anhand von Zielantworten bearbeiten |
| Inferenz | Keine | Mit gelernten Gewichten eine Antwort erzeugen |
Der Bildencoder bleibt in diesen Phasen eingefroren, rechnet aber weiterhin mit. Andere Architekturen und Rezepte wählen andere trainierbare Teile. Die Originalpublikation und die LLaVA-1.5-Rezepte dokumentieren diesen Unterschied.
Für dein erstes Projekt musst du nicht sämtliche Grundfähigkeiten neu lernen lassen. Du kannst ein vorhandenes Modell prüfen und bei Bedarf an eine klar begrenzte Aufgabe anpassen. Im nächsten Teil bereitest du eigene Bild-Frage-Antwort-Daten vor und erhältst die passenden Python-Dateien.
Von einer überprüfbaren Aufgabe bis zum Adapter und zum Vergleich auf neuen Fotos.
Quellen & weiterführende Dokumentation
Das hängt zusammen.
- VLM Bild + Frage → Textantwort
Bilder verstehen
Was passiert zwischen Foto und Antwort? Verfolge Pixel, Bildmerkmale und Sprache durch ein VLM – und finde heraus, was es dabei wirklich lernt.
15 Min. Einstieg - Fine-Tuning Vortrainiertes VLM + eigene Beispiele → Adapter + Vergleich auf neuen Bildern
Ein VLM mit eigenen Bildern anpassen
Eine konkrete Aufgabe, saubere Bilddaten und ein messbarer Vergleich: Bereite deinen ersten LoRA-Versuch vor – mit einem herunterladbaren Python-Lernpaket.
25 Min. Einstieg