← Die Green-Zone-Bibliothek

Eine Geschichte über KI · 04

Was sind Modellgewichte?

Wie eine Maschine mit Zahlen lernt

Ein Blick in die lernenden Zahlen: von einem künstlichen Neuron zu Milliarden Modellgewichten.

Veröffentlicht von AI Model Green Zone

Unterstrichene Begriffe öffnen das Glossar. Mauszeiger oder Tastaturfokus zeigen eine kurze Erklärung.

Über diesen Artikel

Die Gewichte eines Modells sind Zahlenwerte, die während des Trainings angepasst werden und bestimmen, wie künstliche Intelligenz Informationen verarbeitet. Wenn du eine Frage stellst, wird ihr Text zunächst in eine numerische Darstellung umgewandelt. Diese durchläuft anschließend viele Schichten eines neuronalen Netzes. Du kannst dir diese Schichten wie eine Folge besonderer Siebe vorstellen: Jede hebt andere Zusammenhänge und Merkmale hervor, verstärkt bestimmte Signale und schwächt andere ab. Doch diese „Siebe“ filtern nicht einfach nur etwas heraus — sie wandeln die eingehenden Informationen um und geben sie an die nächste Schicht weiter. Die Gewichte bestimmen, wie diese Umwandlungen ablaufen.

Während des Trainings macht das Modell Vorhersagen, vergleicht sie mit den richtigen Fortsetzungen und passt seine Gewichte schrittweise an, um Fehler zu verringern. So werden sprachliche Muster, sachliche Zusammenhänge und Wege zur Problemlösung in vielen miteinander verknüpften numerischen Parametern verankert. Wenn du mit einem bereits trainierten Modell sprichst, bleiben seine Gewichte normalerweise unverändert: Die Informationen aus deiner Eingabe durchlaufen die Schichten und helfen dem Modell, Wahrscheinlichkeiten für den nächsten Teil seiner Antwort zu berechnen. Dieser Vorgang wiederholt sich, und die Antwort entsteht Schritt für Schritt. Wenn du verstehen möchtest, wie solche Anpassungen aus gewöhnlichen Zahlen ein System machen, das ein Gespräch führen kann, lies weiter — der Artikel begleitet dich auf diesem Weg mit anschaulichen Beispielen.

Ein modernes KI-Modell kann Python schreiben, einen Hund erkennen, Japanisch übersetzen, einen Vertrag zusammenfassen, Shakespeare nachahmen und dir gelegentlich etwas völlig Falsches erzählen — mit der Selbstsicherheit eines Mannes, der noch nie auf die Idee gekommen ist, etwas bei Google nachzuprüfen.

Unter all dieser Raffinesse steckt etwas überraschend Gewöhnliches:

Zahlen.

Milliarden davon.

Wenn ein Modell als 8B, 30B oder 70B bezeichnet wird, steht das B für Milliarden Parameter.

Diese Parameter sind gelernte Zahlenwerte innerhalb des neuronalen Netzes. Die meisten befinden sich in riesigen mathematischen Strukturen, den Gewichtsmatrizen.

Diese Zahlen sind gewöhnlich gemeint, wenn von den Gewichten eines Modells die Rede ist.

Es sind keine kleinen Sätze, die irgendwo im Computer gespeichert sind.

Es gibt keine versteckte Zeile mit:

Frankreich → Paris

Es gibt keinen Ordner namens:

Dinge, die ich über Hunde weiß

Und kein einzelnes Gewicht trägt einen Titel wie:

Leitender Vizepräsident für Sarkasmus.

Wissen ist in einem neuronalen Netz über gewaltige Zahlenmuster verteilt.

Das klingt geheimnisvoll.

Die Grundidee ist es nicht.

Tatsächlich beginnt die Geschichte vor mehr als achtzig Jahren.


Bevor KI cool war — oder überhaupt elektronisch

1943 veröffentlichten der Neurophysiologe Warren McCulloch und der Mathematiker Walter Pitts ein einflussreiches mathematisches Modell eines künstlichen Neurons.

Das war vor der modernen KI.

Vor GPUs.

Vor Python.

Noch vor der Erfindung des Transistors.

Ihre Frage war kühn und einfach:

Könnte man etwas, das von einem biologischen Neuron inspiriert ist, mathematisch als Recheneinheit darstellen?

Nach heutigen Maßstäben war ihr künstliches Neuron äußerst primitiv. Es empfing Eingaben und erzeugte nach mathematischen Regeln eine Ausgabe.

Doch eine wichtige Idee war geboren:

Vielleicht könnte komplexes Verhalten aus vielen einfachen, miteinander verbundenen Recheneinheiten entstehen.

Moderne neuronale Netze sind wesentlich ausgefeilter.

Aber unter ihnen ist diese ursprüngliche Idee noch immer erkennbar.


Beginnen wir mit einem künstlichen Neuron

Vergessen wir für einen Moment die acht Milliarden Parameter.

Bauen wir ein einziges winziges künstliches Neuron.

Angenommen, es erhält drei numerische Eingaben:

x1,x2,x3x_1,\quad x_2,\quad x_3

Der Buchstabe xx bedeutet einfach Eingabe.

Diese Eingaben könnten letztlich fast alles darstellen: Zahlen aus einem Finanzdatensatz, Teile eines Bildes oder interne numerische Darstellungen von Sprache.

Jede Eingabe wird mit einer weiteren Zahl multipliziert:

w1,w2,w3w_1,\quad w_2,\quad w_3

Der Buchstabe ww steht für Gewicht.

Ein Gewicht bestimmt, wie stark die jeweilige Eingabe zur Berechnung des Neurons beiträgt.

Das Neuron kombiniert die Werte so:

z=x1w1+x2w2+x3w3+bz=x_1w_1+x_2w_2+x_3w_3+b

Die Formel sieht einschüchternder aus als der eigentliche Vorgang.

In Alltagssprache lautet sie:

Multipliziere jede Eingabe mit ihrem Gewicht, addiere die Ergebnisse und addiere dann noch eine verstellbare Zahl, den Bias.

Der Bias ist:

bb

Er erlaubt dem Neuron, sein Ergebnis unabhängig von den eingehenden Werten nach oben oder unten zu verschieben.

Nach der Berechnung der gewichteten Summe leitet ein neuronales Netz das Ergebnis normalerweise durch eine nichtlineare Funktion:

a=f(z)a=f(z)

Hier bedeutet ff einfach:

Wende eine weitere mathematische Umformung auf das Ergebnis an.

Warum der Aufwand?

Weil sich ohne nichtlineare Funktionen selbst viele aufeinandergestapelte Schichten mathematisch wie eine einzige riesige lineare Transformation verhalten würden.

Nichtlinearität ermöglicht es dem Netz, viel komplexere Zusammenhänge darzustellen.

Der grundlegende Weg lautet also:

Eingaben → Gewichte → gewichtete Summe → nichtlineare Transformation → nächste Schicht

Ein künstliches Neuron wird deinen Quartalsbericht nicht schreiben.

Milliarden gelernter Parameter in ausgefeilten Schichten werden erheblich interessanter.


Das Perzeptron kommt — und mit ihm der KI-Hype

Ende der 1950er-Jahre entwickelte der Psychologe Frank Rosenblatt das Perzeptron, ein frühes trainierbares neuronales Netzsystem.

Das wichtige Wort ist trainierbar.

Statt dass ein Programmierer jeden nützlichen internen Wert ausdrücklich auswählte, konnte die Maschine ihre Verbindungsstärken anhand von Beispielen selbst anpassen.

Diese Verbindungsstärken waren Gewichte.

Die Grundidee klang erstaunlich modern:

Mache eine Vorhersage.
Finde heraus, ob sie falsch war.
Passe die Zahlen an.
Versuche es erneut.

Die Zeitungen waren außerordentlich begeistert.

Das beweist, dass der KI-Hype nicht von sozialen Medien erfunden wurde.

Die Computer waren etwas weniger praktisch.

Heute kannst du Modelle mit Milliarden Parametern auf Hardware unter deinem Schreibtisch ausführen.

Rosenblatt arbeitete in einer Zeit, in der Computer einen beträchtlichen Teil eines Zimmers beanspruchen und dabei deutlich weniger leisten konnten als dein Telefon.

Fortschritt ist manchmal grausam zu alter Hardware.


Das riesige Mischpult

Eine hilfreiche Vorstellung für Gewichte ist ein gewaltiges Audiomischpult.

Ein Signal kommt herein.

Ein Regler verstärkt einen Teil davon.

Ein anderer schwächt etwas ab.

Ein weiterer beeinflusst, wie mehrere Signale zusammenkommen.

Nun stelle dir nicht zwanzig Regler vor.

Auch nicht zwanzigtausend.

Sondern Milliarden.

Das endgültige Verhalten hängt von ihren gemeinsamen Einstellungen ab.

Diese Analogie braucht allerdings einen wichtigen Hinweis.

Ein bestimmtes Gewicht entspricht normalerweise nicht sauber einem menschlichen Begriff.

Du kannst kein 8B-Modell öffnen, Parameter Nummer 4.827.112.391 finden und verkünden:

„Ausgezeichnet. Wir haben das linke Ohr des Hundes gefunden.“

Moderne neuronale Netze verwenden verteilte Repräsentationen.

Ein Begriff wie Hund, Ironie, JavaScript, Schwerkraft oder eine höfliche Art, einem Kunden zu sagen, dass sein Entwurf furchtbar ist, kann von Mustern mit enorm vielen Parametern und vorübergehenden internen Zuständen abhängen.

Die Bedeutung ist verteilt.

Die Intelligenz liegt im Muster.

Nicht in einem magischen Drehknopf.


Vor dem Training: ein sehr teurer Idiot

Bei der ersten Initialisierung eines neuronalen Netzes beginnen seine Gewichte im Allgemeinen als kleine Zahlenwerte, die nach einem Initialisierungsverfahren gewählt werden.

Zu diesem Zeitpunkt hat das Netz eine Architektur.

Es hat Milliarden Stellen, an denen später Wissen dargestellt werden könnte.

Doch nützliche Zusammenhänge hat es noch nicht gelernt.

Du könntest ein riesiges Modell bauen und trotzdem etwas weitgehend Nutzloses erhalten.

Daran sollte man denken, wenn Parameterzahlen Menschen hypnotisieren.

Eine Lagerhalle mit zehn Milliarden leeren Notizbüchern enthält nicht automatisch mehr Wissen als eine Bibliothek.

In den Notizbüchern muss etwas stehen.

Training ist der Prozess, der die Zahlen verändert.

Nicht, indem er Sätze hineinschreibt.

Sondern indem er nützliche numerische Zusammenhänge schafft.


Lassen wir ein Neuron einen Fehler machen

Betrachten wir nun ein winziges Trainingsbeispiel mit Zahlen, die wir von Hand nachvollziehen können.

Angenommen, unser Neuron erhält zwei Eingaben.

Die erste Eingabe ist:

x1=1.0x_1=1.0

Die zweite ist:

x2=0.5x_2=0.5

Das erste Signal hat also den Zahlenwert eins, das zweite den Wert ein halb.

Das aktuelle erste Gewicht ist:

w1=0.20w_1=0.20

Das zweite ist:

w2=0.40w_2=0.40

Und der Bias ist:

b=0.10b=0.10

Nun berechnen wir unsere gewichtete Summe:

z=(1.0)(0.20)+(0.5)(0.40)+0.10z=(1.0)(0.20)+(0.5)(0.40)+0.10

Statt die Formel anzustarren, zerlegen wir sie.

Die erste Eingabe trägt bei:

1.0×0.20=0.201.0\times0.20=0.20

Die zweite Eingabe trägt bei:

0.5×0.40=0.200.5\times0.40=0.20

Und der Bias liefert noch:

0.100.10

Addieren wir die drei Teile:

0.20+0.20+0.10=0.500.20+0.20+0.10=0.50

Unser Neuron liefert also:

y^=0.50\hat y=0.50

Das kleine Dach über yy bedeutet:

die Vorhersage des Modells

Nehmen wir nun an, der richtige Zielwert in diesem Trainingsbeispiel lautet:

y=0.80y=0.80

Das Modell sagte voraus:

0.500.50

Das richtige Ergebnis war:

0.800.80

Die Vorhersage liegt also um diesen Betrag zu niedrig:

0.80−0.50=0.300.80-0.50=0.30

Das Neuron liegt falsch.

Das ist eine ausgezeichnete Nachricht.

Fehler sind im Grunde das Bildungssystem neuronaler Netze.

Ohne Fehler fehlt dem Trainingsprozess das Signal, was verbessert werden muss.


Verlust: ein mathematischer Peinlichkeitsmesser

Das Trainingssystem braucht nun eine formale Antwort auf die Frage:

Wie falsch war diese Vorhersage?

Das ist die Aufgabe einer Verlustfunktion.

Für unser Spielzeugbeispiel können wir eine einfache quadratische Fehlerfunktion verwenden:

L=(y^−y)2L=(\hat y-y)^2

Übersetzen wir jedes Symbol.

LL bedeutet Verlust.

y^\hat y bedeutet die Vorhersage des Modells.

yy bedeutet der richtige Zielwert.

Die Formel sagt also:

Ziehe die richtige Antwort von der Vorhersage ab und quadriere die Differenz.

Unsere Vorhersage ist:

y^=0.50\hat y=0.50

Der Zielwert ist:

y=0.80y=0.80

Subtrahieren wir:

0.50−0.80=−0.300.50-0.80=-0.30

Nun quadrieren wir das Ergebnis:

(−0.30)2=0.09(-0.30)^2=0.09

Unser Verlust beträgt also:

L=0.09L=0.09

Warum quadrieren wir den Fehler?

Unter anderem sollen sich Fehler in entgegengesetzte Richtungen nicht gegenseitig aufheben.

Um 0.30 zu niedrig zu liegen, ist trotzdem ein Fehler.

Durch das Quadrieren erhalten wir eine positive Größe, die die Optimierung zu verringern versuchen kann.

Stelle dir den Verlust als mathematischen Peinlichkeitsmesser vor.

Hoher Verlust:

Das ging daneben.

Geringerer Verlust:

Weniger peinlich.

Ein modernes Sprachmodell verwendet für die Vorhersage des nächsten Tokens gewöhnlich eine andere Verlustfunktion, meist eine Form des Kreuzentropieverlusts.

Den lernen wir später kennen.

Für den Moment lautet die entscheidende Idee:

Vorhersage → Fehler messen

Die nächste Frage ist schwieriger.

Unser kleines Beispiel hat nur zwei Gewichte.

Ein echtes Modell kann Milliarden haben.

Welche Gewichte waren für den Fehler verantwortlich?

Und in welche Richtung sollten sie sich bewegen?


1986: Die Mathematik lernt, Schuld zu verteilen

Eines der zentralen Werkzeuge für diese Frage ist die Rückpropagation.

Die mathematischen Ideen dahinter haben eine längere Geschichte. Doch eine einflussreiche Arbeit von David Rumelhart, Geoffrey Hinton und Ronald Williams aus dem Jahr 1986 trug dazu bei, die Rückpropagation zu einem zentralen Verfahren für das Training moderner neuronaler Netze zu machen.

Das Problem ist leicht beschrieben.

Die Ausgabe war falsch.

Aber viele Schichten und viele Parameter waren an ihrer Entstehung beteiligt.

Wie finden wir heraus, welche Änderungen die Ausgabe verbessern würden?

Die Rückpropagation durchläuft das Netz rückwärts und berechnet, wie empfindlich der abschließende Fehler auf jeden trainierbaren Parameter reagiert.

Man könnte sie sich als außergewöhnlich effiziente Buchhaltung vorstellen.

Ein Fehler ist passiert.

Nun wird der Beitrag jedes Beteiligten berechnet.

Niemand kann sagen:

„Das war ziemlich sicher Schicht 17.“

Die Differentialrechnung hat die Belege.


Rückpropagation: Was bedeutet die Formel?

Einer der Ausdrücke, denen du begegnen wirst, lautet:

∂L∂w\frac{\partial L}{\partial w}

Wenn du vor zwanzig Jahren Differentialrechnung gelernt und sie seitdem erfolgreich vermieden hast, kann diese Schreibweise unnötigen seelischen Schaden anrichten.

Die Idee ist deutlich einfacher als das Symbol.

Sie fragt:

Wenn ich genau dieses Gewicht um einen winzigen Betrag ändere, wie verändert sich der Verlust?

Dieser Wert ist Teil dessen, was wir den Gradienten nennen.

Angenommen, ein leichtes Erhöhen eines Gewichts vergrößert den Fehler.

Nützliche Information.

Angenommen, es verkleinert den Fehler.

Auch nützlich.

Die Ableitung verrät dem Optimierer somit etwas über Richtung und Empfindlichkeit.

Die Rückpropagation nutzt die Kettenregel der Differentialrechnung, um diese Zusammenhänge effizient über viele Schichten hinweg zu berechnen.

Das Netz denkt nicht:

„Ich habe den Hund mit einer Katze verwechselt, weil ich zu sehr auf das Fell geachtet habe.“

Nichts derart Literarisches geschieht.

Es berechnet, wie Änderungen von Zahlen andere Zahlen beeinflussen.

Sehr viele Zahlen.


Gradientenabstieg: Jetzt geht es bergab

Sobald die Rückpropagation die Gradienten berechnet hat, besitzt der Optimierer eine Handlungsgrundlage.

Eine vereinfachte Gewichtsaktualisierung sieht so aus:

wnew=wold−η∂L∂ww_{\text{new}} = w_{\text{old}} - \eta \frac{\partial L}{\partial w}

Übersetzen wir wieder, bevor wir sie anwenden.

woldw_{\text{old}} ist das Gewicht, das wir jetzt haben.

wneww_{\text{new}} ist das Gewicht nach dem Trainingsschritt.

Der Gradient:

∂L∂w\frac{\partial L}{\partial w}

sagt uns, wie sich der Verlust ändert, wenn sich dieses Gewicht ändert.

Und der griechische Buchstabe:

η\eta

ausgesprochen Eta, ist die Lernrate.

Die Lernrate bestimmt, wie groß der Schritt des Optimierers sein soll.

Die ganze Formel bedeutet also:

Beginne beim aktuellen Gewicht.
Bestimme die Richtung, in der der Fehler wächst.
Gehe eine kontrollierte Strecke in die entgegengesetzte Richtung.

Warum die entgegengesetzte Richtung?

Weil der Verlust sinken soll.

Stelle dir vor, du stehst im dichten Nebel auf einem Berg.

Du kannst das Tal nicht sehen.

Aber du kannst feststellen, in welche Richtung es bergauf geht.

Wenn du absteigen willst, gehe in die andere Richtung.

Das ist die Grundidee des Gradientenabstiegs.

Die wirkliche Optimierungslandschaft eines modernen neuronalen Netzes kann Milliarden Dimensionen haben.

Dadurch lässt sich der Berg etwas schwer auf einer Serviette skizzieren.

Wenn du dir eine Landschaft mit siebzig Milliarden Dimensionen mühelos vorstellen kannst, hast du möglicherweise andere Probleme.

Modernes Training verwendet häufig ausgefeiltere Optimierer wie Adam oder AdamW, die zusätzliche Informationen verfolgen und den Aktualisierungsprozess intelligent anpassen.

Die zentrale Idee bleibt jedoch:

Berechne, wie die Parameter den Fehler beeinflussen, und bewege sie dann in eine Richtung, die ihn voraussichtlich verringert.

Tun wir das jetzt tatsächlich.


Eine winzige Aktualisierung — mit der wirklichen Rechnung

Unser Spielzeugneuron erhielt zuvor:

x1=1.0x_1=1.0

und:

x2=0.5x_2=0.5

Seine Gewichte waren:

w1=0.20w_1=0.20

und:

w2=0.40w_2=0.40

Der Bias war:

b=0.10b=0.10

Das Neuron sagte voraus:

y^=0.50\hat y=0.50

Das gewünschte Ergebnis war:

y=0.80y=0.80

Für diese Demonstration verwenden wir die gewichtete Summe direkt als Vorhersage, damit jeder Rechenschritt sichtbar bleibt. Ein echtes Netz kann außerdem eine Aktivierungsfunktion enthalten, deren Ableitung Teil der Rückpropagation wird.

Unser Vorhersagefehler mit Vorzeichen lautet:

y^−y=0.50−0.80=−0.30\hat y-y=0.50-0.80=-0.30

Das Minuszeichen sagt uns:

Die Vorhersage des Modells liegt unter dem Zielwert.

Unser quadratischer Verlust war:

L=(y^−y)2L=(\hat y-y)^2

also:

L=(−0.30)2=0.09L=(-0.30)^2=0.09

Nun berechnen wir, wie dieser Verlust auf jedes Gewicht reagiert.


Den Gradienten für das erste Gewicht finden

Für dieses einfache Neuron ist der Gradient des Verlusts bezüglich des ersten Gewichts:

∂L∂w1=2(y^−y)x1\frac{\partial L}{\partial w_1} = 2(\hat y-y)x_1

Das sieht technisch aus.

Aber alle Werte sind bereits bekannt.

Der Fehler ist:

y^−y=−0.30\hat y-y=-0.30

Die erste Eingabe ist:

x1=1.0x_1=1.0

Setzen wir diese Werte ein:

∂L∂w1=2(−0.30)(1.0)\frac{\partial L}{\partial w_1} = 2(-0.30)(1.0)

Multiplizieren wir:

∂L∂w1=−0.60\frac{\partial L}{\partial w_1} = -0.60

Was bedeutet minus 0.60?

Es sagt uns, dass an dieser Stelle eine Erhöhung von w1w_1 den Verlust verringern sollte.

Der Gradient zeigt in Richtung des wachsenden Fehlers.

Der Gradientenabstieg bewegt sich in die entgegengesetzte Richtung.


Den Gradienten für das zweite Gewicht finden

Nun machen wir dasselbe für das zweite Gewicht:

∂L∂w2=2(y^−y)x2\frac{\partial L}{\partial w_2} = 2(\hat y-y)x_2

Der Fehler beträgt weiterhin:

−0.30-0.30

Die zweite Eingabe beträgt jedoch nur:

x2=0.5x_2=0.5

Einsetzen:

∂L∂w2=2(−0.30)(0.5)\frac{\partial L}{\partial w_2} = 2(-0.30)(0.5)

ergibt:

∂L∂w2=−0.30\frac{\partial L}{\partial w_2} = -0.30

Beachte etwas Nützliches.

Der Betrag des zweiten Gradienten ist nur halb so groß wie der des ersten.

Warum?

Weil die zweite Eingabe:

0.50.5

halb so groß ist wie die erste:

1.01.0

In diesem winzigen Beispiel beeinflusst eine Änderung des ersten Gewichts das Endergebnis stärker.

Genau solche Abhängigkeiten berechnet die Rückpropagation automatisch.


Eine Lernrate wählen

Nun kennen wir die Richtung.

Wir müssen noch entscheiden, wie groß der Schritt sein soll.

Für unsere Demonstration wählen wir:

η=0.10\eta=0.10

Das bedeutet, dass sich der Optimierer in diesem vereinfachten Schritt um ein Zehntel des Gradientenbetrags bewegt.

Das ist eine praktische runde Zahl zum Erklären.

Echte Trainingssysteme wählen und planen Lernraten viel sorgfältiger.

Sind sie zu klein, kann das Lernen quälend langsam werden.

Sind sie zu groß, springt der Optimierer womöglich über gute Lösungen hinweg und hüpft durch die Landschaft wie jemand, der in Skischuhen einen Berg hinuntersteigen möchte.


Das erste Gewicht aktualisieren

Die Aktualisierungsregel lautet:

wnew=wold−η∂L∂ww_{\text{new}} = w_{\text{old}} - \eta \frac{\partial L}{\partial w}

Für das erste Gewicht:

w1,new=0.20−(0.10)(−0.60)w_{1,\text{new}} = 0.20-(0.10)(-0.60)

Zuerst multiplizieren wir Lernrate und Gradient:

0.10×(−0.60)=−0.060.10\times(-0.60)=-0.06

Also:

w1,new=0.20−(−0.06)w_{1,\text{new}} = 0.20-(-0.06)

Eine negative Zahl abzuziehen bedeutet zu addieren:

w1,new=0.26w_{1,\text{new}} = 0.26

Jetzt wissen wir genau, woher 0.26 kommt.

Niemand hat die Zahl ausgewählt, weil sie hübsch aussah.

Kein Ingenieur tippte:

Versuchen wir es mit 0.26.

Gradient und Lernrate haben sie ergeben.


Das zweite Gewicht aktualisieren

Nun wiederholen wir genau denselben Vorgang für w2w_2:

w2,new=0.40−(0.10)(−0.30)w_{2,\text{new}} = 0.40-(0.10)(-0.30)

Multiplizieren:

0.10×(−0.30)=−0.030.10\times(-0.30)=-0.03

Also:

w2,new=0.40−(−0.03)w_{2,\text{new}} = 0.40-(-0.03)

und damit:

w2,new=0.43w_{2,\text{new}} = 0.43

Daher kommt 0.43.

Für dieses Lehrbeispiel lassen wir den Bias unverändert bei:

b=0.10b=0.10

In einem echten Netz hätte ein trainierbarer Bias normalerweise seinen eigenen Gradienten und könnte nach demselben allgemeinen Verfahren aktualisiert werden.


Das Neuron erneut ausführen

Die Eingaben haben sich nicht geändert.

Die erste ist weiterhin:

x1=1.0x_1=1.0

Ihr Gewicht beträgt jetzt jedoch:

w1=0.26w_1=0.26

Ihr Beitrag ist daher:

1.0×0.26=0.261.0\times0.26=0.26

Die zweite Eingabe bleibt:

x2=0.5x_2=0.5

Ihr neues Gewicht ist:

w2=0.43w_2=0.43

Ihr Beitrag wird damit:

0.5×0.43=0.2150.5\times0.43=0.215

Der Bias bleibt:

0.100.10

Alles addieren:

0.26+0.215+0.10=0.5750.26+0.215+0.10=0.575

Die neue Vorhersage des Neurons lautet:

y^=0.575\hat y=0.575

Vor dem Trainingsschritt sagte es voraus:

0.500.50

Nun sagt es voraus:

0.5750.575

Der Zielwert bleibt:

0.800.80

Es liegt noch immer falsch.

Aber beachte, was geschehen ist.

Vor der Aktualisierung war der Abstand zum Zielwert:

0.80−0.50=0.300.80-0.50=0.30

Nach der Aktualisierung:

0.80−0.575=0.2250.80-0.575=0.225

Der Fehler wurde kleiner.

Wir können auch den neuen quadratischen Verlust berechnen:

L=(0.575−0.80)2L=(0.575-0.80)^2

Zuerst:

0.575−0.80=−0.2250.575-0.80=-0.225

Dann quadrieren:

(−0.225)2=0.050625(-0.225)^2=0.050625

Der Verlust ist also gesunken von:

0.090.09

auf:

0.0506250.050625

In diesem absichtlich einfachen Beispiel verringerte ein einziger Gradientenabstiegsschritt den Verlust deutlich.

Das bedeutet nicht, dass sich ein echtes großes Sprachmodell mit jedem Trainingsschritt um denselben Prozentsatz verbessert.

Echte Optimierung ist verrauscht, kompliziert und hat ungeheuer viel mehr Dimensionen.

Unser winziges Beispiel hat nun aber einen vollständigen Lernschritt gezeigt, ohne etwas zu verstecken:

0.50→0.09→gradients→0.26,0.43→0.575→0.0506250.50 \rightarrow 0.09 \rightarrow \text{gradients} \rightarrow 0.26,\;0.43 \rightarrow 0.575 \rightarrow 0.050625

In Worten:

Das Neuron machte eine Vorhersage.
Der Verlust maß den Fehler.
Die Differentialrechnung bestimmte, wie die Gewichte zum Fehler beitrugen.
Der Optimierer veränderte die Gewichte.
Die neue Vorhersage rückte näher an den Zielwert.
Der Verlust wurde kleiner.

Es geschah nichts Magisches.

Die Mathematik veränderte die Zahlen.

Dann macht das System es wieder.

Und wieder.

Und wieder.

Unser Beispiel verwendet zwei Gewichte, weil zwei Gewichte noch bequem auf eine Seite passen.

Ein echtes neuronales Netz kann Millionen oder Milliarden trainierbarer Parameter anpassen.

Hier kommen Berechnungen im industriellen Maßstab ins Spiel.


Wie lernt ein Sprachmodell daraus?

Ein großes Sprachmodell wird normalerweise nicht mit einer riesigen Tabelle ausdrücklicher Regeln trainiert wie:

Paris = Hauptstadt von Frankreich

Hund = Säugetier

Python = Einrückung ist wichtig

Stattdessen nutzt ein großer Teil des modernen Sprachmodell-Vortrainings ein täuschend einfaches Ziel:

Sage das nächste Token voraus.

Bleiben wir also bei Paris und verfolgen das Beispiel bis zum Ende.

Angenommen, der Trainingstext enthält:

Die Hauptstadt von Frankreich ist Paris.

An einer Stelle des Trainings erhält das Modell:

Die Hauptstadt von Frankreich ist

und muss das nächste Token vorhersagen.

Der Einfachheit halber nehmen wir an, dass Paris durch ein Token dargestellt wird. Echte Tokenisierung kann manche Wörter in mehrere Tokens zerlegen, aber am Prinzip ändert das nichts.

Früh im Training könnte das Modell ungefähr folgende Wahrscheinlichkeiten ausgeben:

London — 18%
Paris — 5%
Lyon — 4%
Rom — 3%
Berlin — 2%

Die restliche Wahrscheinlichkeit verteilt sich auf Tausende weitere mögliche Tokens.

Der Trainingstext sagt uns jedoch, dass das tatsächliche nächste Token lautet:

Paris

Das Modell hat also eine schlechte Vorhersage gemacht.

Es gab Paris nur fünf Prozent Wahrscheinlichkeit und bevorzugte London.

Nun muss das Training messen, wie schlecht diese Vorhersage war.


Kreuzentropie: der Verlust des Sprachmodells

Zur Vorhersage des nächsten Tokens verwenden Sprachmodelle häufig eine Form des Kreuzentropieverlusts.

Für ein einzelnes richtiges Token lässt sich der vereinfachte Ausdruck so schreiben:

L=−ln(Pcorrect)L=-\ln(P_{\text{correct}})

Wieder übersetzen wir vor dem Rechnen.

PcorrectP_{\text{correct}} bedeutet:

die Wahrscheinlichkeit, die das Modell dem tatsächlich folgenden Token zugewiesen hat

In unserem Beispiel:

P(Paris)=0.05P(\text{Paris})=0.05

Fünf Prozent als Dezimalzahl:

0.050.05

Einsetzen:

L=−ln(0.05)L=-\ln(0.05)

Das Ergebnis beträgt ungefähr:

L≈2.996L\approx2.996

Du musst dir 2.996 nicht merken.

Wichtig ist, was der Logarithmus bewirkt.

Eine geringe Wahrscheinlichkeit für die richtige Antwort erzeugt einen vergleichsweise hohen Verlust.

Nehmen wir nun an, dass viel später im Training derselbe Kontexttyp Paris eine Wahrscheinlichkeit von siebzig Prozent gibt:

P(Paris)=0.70P(\text{Paris})=0.70

Dann gilt:

L=−ln(0.70)L=-\ln(0.70)

also ungefähr:

L≈0.357L\approx0.357

Somit:

Paris bei 5% → vergleichsweise hoher Verlust

Paris bei 70% → viel geringerer Verlust

Die Verlustfunktion weiß nicht, was Paris ist.

Sie weiß nicht, was Frankreich ist.

Sie versteht das politische Konzept einer Hauptstadt nicht.

Sie sagt lediglich:

Die Wahrscheinlichkeit für das richtige Token hätte höher sein sollen.

Dieses numerische Signal genügt.

Die Rückpropagation kann nun dieselbe Art von Arbeit erledigen wie bei unserem Spielzeugneuron.


Wie gelangt „Paris“ tatsächlich zu den Gewichten?

Die Vorhersage kam nicht von einem einzigen Gewicht.

Die Wörter:

Die Hauptstadt von Frankreich ist

wurden zunächst in numerische Tokendarstellungen umgewandelt.

Diese Darstellungen durchliefen viele Transformer-Schichten.

In diesen Schichten wandelten Aufmerksamkeitsmechanismen und vorwärtsgerichtete Netze die Zahlen mithilfe gelernter Gewichtsmatrizen wiederholt um.

Schließlich erzeugte das Modell Rohwerte für mögliche nächste Tokens.

Diese Rohwerte heißen Logits.

Stelle dir eine stark vereinfachte Version vor:

London=2.4\text{London}=2.4
Paris=1.1\text{Paris}=1.1
Lyon=0.9\text{Lyon}=0.9
Rome=0.6\text{Rome}=0.6

Das sind noch keine Wahrscheinlichkeiten.

Es sind rohe Präferenzwerte.

Eine mathematische Operation namens Softmax wandelt die Logits in eine Wahrscheinlichkeitsverteilung um, deren Werte sich zu hundert Prozent addieren.

Nach Softmax erhalten wir vielleicht:

London — 18%
Paris — 5%
Lyon — 4%
Rom — 3%

Die Trainingsdaten sagen uns:

Paris hätte gewinnen sollen.

Die Kreuzentropie liefert den Verlust.

Dann geht die Rückpropagation rückwärts durch das Netz und berechnet, wie kleine Änderungen an den beteiligten Parametern diesen Verlust beeinflussen würden.

Der Optimierer aktualisiert sie.

Keine einzelne riesige Änderung.

Enorm viele mikroskopische Änderungen.

Dann kommt das nächste Textstück.


Ein Satz lehrt noch keine Geografie

Das Modell sieht nicht einmal:

Die Hauptstadt von Frankreich ist Paris.

und verkündet sofort:

„Geografie abgeschlossen.“

Seine Trainingsdaten könnten auch enthalten:

Paris ist die Hauptstadt von Frankreich.

Frankreichs Hauptstadt ist Paris.

Die französische Regierung sitzt in Paris.

Paris ist eine große europäische Stadt.

Frankreich ist ein Land in Westeuropa.

Die Seine fließt durch Paris.

Und gewaltige Mengen weiterer Kontexte über Frankreich, Paris, Städte, Regierungen, Länder, Sprachen, Reisen, Geschichte und Geografie.

Jedes Beispiel erzeugt Vorhersagen.

Jede Vorhersage erzeugt einen Verlust.

Jeder Verlust erzeugt Gradienten.

Jeder Trainingsschritt verändert die Parameter ein wenig.

Mit der Zeit werden überlappende Zusammenhänge nach und nach in das Netz eingewebt.

Dieses Wort — eingewebt — ist hilfreich.

Die Tatsache wird nicht in eine Schachtel gelegt, auf der steht:

Frankreich → Paris

Sie wird Teil eines verteilten mathematischen Gewebes.


Nach genügend Training

Irgendwann sieht das Modell:

Die Hauptstadt von Frankreich ist

und seine Ausgabeverteilung sieht vielleicht eher so aus:

Paris — 92%
Lyon — 1.2%
Marseille — 0.7%
London — 0.3%

Paris gewinnt jetzt mühelos.

Wo ist die Tatsache also gespeichert?

Nicht in einem Gewicht.

Nicht in einem Neuron.

Nicht in einem versteckten Texteintrag.

Der Zusammenhang ist über das Netz verteilt.

Deshalb kann das Modell auch antworten auf:

Welche Stadt dient als Hauptstadt von Frankreich?

oder:

Wie heißt Frankreichs Hauptstadt?

Der genaue Satz hat sich geändert.

Aber die zugrunde liegenden Zusammenhänge zwischen den Begriffen sind weiterhin nützlich.

Das Modell sucht nicht einfach den exakten Trainingssatz.

Es rechnet durch ein gelerntes Netz numerischer Beziehungen.

Deshalb kann auch die scheinbar einfache Aufgabe der nächsten Tokenvorhersage zu erstaunlich vielfältigem Verhalten führen.

Um Sprache gut vorherzusagen, hilft es, Grammatik zu lernen.

Bedeutung.

Fakten.

Zusammenhänge.

Stil.

Struktur.

Denkmuster.

Das Ziel ist einfach:

Sage voraus, was als Nächstes kommt.

Was das Modell lernen muss, um darin außergewöhnlich gut zu werden, ist es nicht.

Letztlich spiegeln sich diese gelernten Zusammenhänge in seinen Gewichten wider.


Hunde, Katzen und warum „Merkmalswichtigkeit“ irreführen kann

Eine verbreitete Erklärung neuronaler Gewichte verwendet Bildklassifikation.

Angenommen, ein Modell wird darauf trainiert, Hunde von Katzen zu unterscheiden.

Es könnte entdecken, dass bestimmte visuelle Muster der Schnauzenform, Ohren, Gesichtsstruktur oder Körperform nützlicher sind als andere.

Das ist eine hilfreiche Vorstellung.

Man sollte sie aber nicht wörtlich nehmen.

Ein modernes Netz enthält normalerweise nicht:

Ohrengewicht = 0.84

Fellfarbengewicht = 0.17

Frühe Schichten können auf relativ einfache Muster wie Kanten ansprechen.

Spätere Schichten können daraus Texturen und Formen kombinieren.

Noch spätere Darstellungen können auf zunehmend komplexe Strukturen reagieren.

Die endgültige Klassifikation entsteht aus dem Zusammenspiel vieler Schichten und Parameter.

Wenn wir also sagen:

Das Modell hat gelernt, dass die Ohrenform wichtig ist

übersetzen wir einen komplexen verteilten Zahlenprozess in menschliche Sprache.

Es gibt keinen Regler mit der Aufschrift OHR.


2012: Die GPU betritt die Bühne

Neuronale Netze gab es seit Jahrzehnten.

Warum wuchsen ihre Fähigkeiten plötzlich so schnell?

Ein wichtiger Grund war die Hardware.

2012 präsentierten Alex Krizhevsky, Ilya Sutskever und Geoffrey Hinton das später als AlexNet bekannte tiefe Bilderkennungsnetz mit ungefähr sechzig Millionen Parametern.

Ein entscheidender Bestandteil war der Einsatz von Grafikprozessoren, den GPUs.

GPUs hatten sich hauptsächlich entwickelt, weil Computergrafik gewaltige Mengen ähnlicher mathematischer Operationen parallel benötigt.

Videospiele mussten Pixel, Dreiecke, Beleuchtung und Texturen schnell verarbeiten.

Neuronale Netze sahen sich diese Hardware an und sagten gewissermaßen:

„Diese Multiplikationsmaschine sieht nützlich aus.“

Die Spieleindustrie hatte versehentlich jahrelang an der Infrastruktur für maschinelles Lernen mitgearbeitet.

Irgendwo verdient ein virtueller Drache einen Teil der Anerkennung für moderne KI.


Von einzelnen Gewichten zu Tensoren

Unser winziges Neuron verwendete einzelne Werte wie:

w1w_1

und:

w2w_2

Ein echtes Netz kann Milliarden Parameter nicht bequem auf diese Weise verwalten.

Stattdessen werden die Zahlen in Strukturen namens Tensoren organisiert.

Eine einfache Zahlenliste kann man sich als eindimensionalen Tensor vorstellen.

Eine rechteckige Zahlentabelle ist ein zweidimensionaler Tensor, gewöhnlich Matrix genannt.

Sammlungen mit noch mehr Dimensionen sind ebenfalls Tensoren.

Große Teile neuronaler Berechnungen lassen sich kompakt ausdrücken, etwa so:

Y=XWY=XW

Übersetzen wir auch das.

XX steht für eine Sammlung von Eingabezahlen.

WW steht für eine Matrix gelernter Gewichte.

Die Multiplikation:

XWXW

kombiniert viele Eingabewerte mit vielen gelernten Gewichten nach den Regeln der Matrixmultiplikation.

Das Ergebnis:

YY

ist eine neue Sammlung umgewandelter Zahlenwerte.

Die Schreibweise sieht winzig aus.

Die eigentliche Berechnung kann Millionen oder Milliarden einzelner Multiplikationen und Additionen enthalten.

Deshalb sind GPUs so wertvoll.

Sie können enorme Mengen dieser Rechenoperationen parallel ausführen.

Während die KI scheinbar gelassen über Dostojewski spricht, multipliziert die GPU im industriellen Maßstab.

Das Gespräch wirkt intellektuell.

Die Hardware sieht Arithmetik.


2017: Aufmerksamkeit verändert die Architektur

2017 stellte die Arbeit „Attention Is All You Need“ die Transformer-Architektur vor.

Transformer wurden zur Grundlage der meisten modernen großen Sprachmodelle.

Die Architektur führte eine leistungsfähige Möglichkeit ein, verschiedene Teile einer Sequenz durch Aufmerksamkeit miteinander interagieren zu lassen.

Doch die Aufmerksamkeit schaffte die Gewichte nicht ab.

Ganz im Gegenteil.

Transformer enthalten überall in ihrer Architektur große gelernte Matrizen.

Aufmerksamkeit verwendet gelernte Projektionsmatrizen.

Vorwärtsgerichtete Schichten verwenden gelernte Matrizen.

Embedding-Systeme enthalten gelernte Parameter.

Die Architektur wurde dramatisch ausgefeilter.

Die grundlegende Währung blieben Zahlen.


2020: 175 Milliarden werden zur Schlagzeile

Dann kam die Größe.

2020 wurde GPT-3 vorgestellt mit:

175 Milliarden Parametern.

Vergleiche das mit den ungefähr sechzig Millionen Parametern von AlexNet nur acht Jahre zuvor.

Das Gebiet war von Millionen gelernter Werte zu Hunderten Milliarden übergegangen.

Die Grundidee blieb erkennbar:

Lerne nützliche numerische Parameter aus Daten.

Forscher verbesserten die Architektur.

Trainingsmethoden wurden besser.

Datensätze wuchsen.

GPU-Cluster wurden riesig.

Dann fügten wir, wie so oft in der Informatik, eine unvernünftige Anzahl Nullen hinzu.


Was enthält ein 8B-Modell physisch?

Nun werden Parameterzahlen konkret.

Sie werden zu einem physischen Speicherproblem.

Angenommen, ein Modell enthält:

8,000,000,0008{,}000{,}000{,}000

Parameter.

Das bedeutet ungefähr acht Milliarden gelernte Zahlenwerte.

Angenommen, jeder Parameter wird mit sechzehn Bit gespeichert.

Sechzehn Bit entsprechen:

2 bytes2\text{ bytes}

Der ungefähre reine Parameterspeicher beträgt damit:

8,000,000,000×28{,}000{,}000{,}000\times2

Das ergibt:

16,000,000,000 bytes16{,}000{,}000{,}000\text{ bytes}

oder ungefähr:

16 GB16\text{ GB}

Woher kommen diese sechzehn Gigabyte?

Nichts Geheimnisvolles.

Wir haben acht Milliarden Zahlen.

Jede benötigt zwei Byte.

Acht Milliarden mal zwei ergeben ungefähr sechzehn Milliarden Byte.

Betrachte nun ein Modell mit siebzig Milliarden Parametern bei derselben Genauigkeit.

Die Rechnung lautet:

70 billion×2 bytes70\text{ billion}\times2\text{ bytes}

Das ergibt ungefähr:

140 GB140\text{ GB}

nur für die Speicherung der Parameter selbst.

Plötzlich ist:

„70B-Modell“

nicht mehr bloß ein Modellname.

Es ist ein Hardwareproblem.

Deine GPU wird aufmerksam.

Dein System-RAM könnte aufmerksam werden.

Irgendwann wird dein Geldbeutel aufmerksam.


Quantisierung: Was verkleinern wir eigentlich?

Angenommen, sechzehn Bit pro Parameter benötigen zu viel Speicher.

Können wir dieselben gelernten Werte mit weniger Bit darstellen?

Das ist die Grundidee der Quantisierung.

Nehmen wir unser hypothetisches 8B-Modell.

Bei sechzehn Bit pro Parameter beträgt sein idealisierter reiner Parameterspeicher ungefähr:

16 GB16\text{ GB}

Nun stellen wir viele Gewichte stattdessen mit ungefähr vier Bit dar.

Vier Bit sind ein halbes Byte:

4 bits=0.5 byte4\text{ bits}=0.5\text{ byte}

Also ergibt:

8 billion×0.5 byte8\text{ billion}\times0.5\text{ byte}

ungefähr:

4 GB4\text{ GB}

Wichtig ist, was nicht passiert ist.

Wir haben aus einem Modell mit acht Milliarden Parametern kein Modell mit zwei Milliarden gemacht.

Das Modell besitzt noch ungefähr dieselbe Parameterzahl.

Wir haben geändert, mit welcher numerischen Genauigkeit sie dargestellt werden.

Eine einfache Vorstellung ist das Runden von Zahlen.

Du könntest speichern:

3.14159265353.1415926535

oder:

3.143.14

Die zweite Zahl ist weniger genau.

Echte Quantisierung neuronaler Netze ist deutlich ausgefeilter als das bloße Runden von Nachkommastellen. Praktische Verfahren verwenden Skalierungsfaktoren, Gruppen, spezielle Kodierungen und weitere Techniken, um bei geringerem Speicherbedarf nützliches Verhalten zu erhalten.

Der zentrale physische Zusammenhang bleibt jedoch:

weniger Bit pro Gewicht → weniger Speicher

Deshalb verbringen Nutzer lokaler KI erstaunliche Teile ihres Lebens mit Debatten über Q4, Q5, Q6 und Q8.

Aus der Ferne klingt es nach Motoröl.

Meist geht es darum, Milliarden Zahlen in eine Grafikkarte zu bekommen.


Gewichte sind keine Aktivierungen

Beim Thema Hardware ist eine weitere Unterscheidung enorm wichtig.

Gewichte bleiben erhalten.

Sie werden als Teil des Modells gespeichert.

Schalte den Rechner aus.

Lade morgen dasselbe Modell.

Die gelernten Gewichte bleiben.

Aktivierungen sind vorübergehend.

Wenn eine Eingabe durch das Netz läuft, erzeugt jede Schicht numerische Zwischenzustände.

Diese Werte hängen von der aktuellen Eingabe ab.

Ändere den Prompt, und die Aktivierungen ändern sich.

Denke an eine Fabrik.

Die Gewichte sind die installierten Maschinen.

Die Aktivierungen sind das Material, das gerade durch diese Maschinen läuft.

Das erklärt, warum das Laden der Modellgewichte in den GPU-Speicher nicht den gesamten Speicherbedarf abdeckt.

Auch die Berechnung selbst braucht Arbeitsraum.

Sprachmodelle können außerdem beträchtlichen Speicher für einen Schlüssel-Wert-Cache, den KV-Cache, verwenden. Er speichert nützliche Zwischeninformationen aus bereits verarbeiteten Tokens.

Mit wachsendem Kontext kann auch dieser Cache wachsen.

Daher bedeutet:

Die Gewichte passen in den VRAM

nicht automatisch:

Das Modell kann in diesem VRAM bequem arbeiten.

Das Sofa passt vielleicht durch die Wohnungstür.

Du möchtest trotzdem noch irgendwo stehen können.


Ändern sich die Gewichte, während du mit dem Modell chattest?

Normalerweise:

Nein.

Wenn ein trainiertes Modell einen Prompt beantwortet, führt es Inferenz aus.

Inferenz bedeutet:

Verwende die vorhandenen gelernten Parameter, um eine Ausgabe zu berechnen.

Die Gewichte werden gelesen.

Sie werden normalerweise nicht umgeschrieben, weil du eine Frage gestellt hast.

Zum Glück.

Sonst könnte ein einziges hinreichend seltsames Gespräch das Netz dauerhaft umgestalten.

Ein Gespräch erzeugt vorübergehenden Zustand: Kontext, Aktivierungen, KV-Cache, Werkzeugergebnisse und andere Arbeitsinformationen.

Diese unterscheiden sich von den dauerhaft gespeicherten trainierten Parametern.

Die einfachste Zusammenfassung lautet:

Training verändert Gewichte. Inferenz verwendet Gewichte.

Dieser Satz erklärt unglaublich viel über KI.


Feinabstimmung: Die Zahlen erneut verändern

Ein vortrainiertes Modell kann später zusätzlich trainiert werden.

Dieser Vorgang heißt Feinabstimmung.

Stelle dir ein allgemeines Modell vor, das Sprache bereits versteht.

Du könntest es feinabstimmen auf:

juristische Texte,

medizinische Fachbegriffe,

Programmierbeispiele,

Kundendienstgespräche,

Finanzanalysen,

oder ein anderes Fachgebiet.

Das Training verändert erneut Parameter, damit das Modell besser zur neuen Aufgabe passt.

Vollständige Feinabstimmung kann riesige Parametermengen aktualisieren und erhebliche Rechenressourcen erfordern.

Andere Methoden wie Low-Rank Adaptation, kurz LoRA, trainieren viel kleinere zusätzliche Parameterstrukturen und lassen den Großteil des ursprünglichen Modells unverändert.

Die praktische Unterscheidung ist wichtig.

Dem Modell während eines Gesprächs ein PDF zu geben, verändert normalerweise seinen Kontext.

Feinabstimmung verändert gelernte Parameter.

Das eine liefert vorübergehende Informationen.

Das andere verändert das trainierte Modell.


Das Modell ist nicht das ganze System

Angenommen, zwei Menschen laden genau dasselbe Modell herunter.

Derselbe Checkpoint.

Dieselben Gewichte.

Dieselbe Quantisierung.

Einer baut ein hervorragendes Recherchesystem.

Der andere erzeugt unzuverlässige Antworten mit wunderschöner Formatierung.

Wie ist das möglich?

Weil das Modell nur eine Komponente ist.

Drumherum können Prompts, Suchsysteme, Datenbanken, Speicher, Werkzeuge, Browser, Weiterleitung, Berechtigungen, Prüfungen und Anwendungscode liegen.

Diese umgebende Software wird manchmal Harness oder Agentenumgebung genannt.

Der Harness schreibt normalerweise nicht bei jeder neuen Anfrage die Modellgewichte um.

Er steuert, welche Informationen das Modell erreichen, welche Werkzeuge es benutzen kann und was mit dem Ergebnis geschieht.

Dieselben Gewichte.

Andere Umgebung.

Anderes Verhalten.

Der Motor kann identisch sein.

Das Fahrzeug muss es nicht.


Was ist ein Modell mit offenen Gewichten?

Während des Trainings ändern sich die Parameter ständig.

An sinnvollen Stellen speichern Entwickler ihren aktuellen Zustand.

Dieser gespeicherte Zustand heißt Checkpoint.

Ein Checkpoint ist im Wesentlichen eine Momentaufnahme des gelernten numerischen Modellzustands zu einem bestimmten Zeitpunkt.

Werden diese trainierten Parameterdateien zum Herunterladen bereitgestellt, wird das Modell meist als Open-Weight-Modell bezeichnet.

Je nach Lizenz dürfen Menschen es lokal ausführen, quantisieren, feinabstimmen, untersuchen, in Produkte integrieren oder abgeleitete Versionen weitergeben.

Es gibt jedoch eine wichtige begriffliche Unterscheidung.

Offene Gewichte bedeuten nicht automatisch Open Source.

Ein Entwickler kann Gewichte veröffentlichen und trotzdem Trainingsdaten, Teile des Trainingscodes, das vollständige Trainingsverfahren oder andere Komponenten privat halten.

Auch Lizenzen können Einschränkungen vorsehen.

Das sind also zwei verschiedene Fragen:

Kann ich die trainierten Gewichte herunterladen?

und:

Ist der gesamte Entwicklungsprozess des Modells offen?

Die Antworten müssen nicht dieselben sein.

Wörter sind wichtig.

Besonders, wenn Anwälte dazukommen.


Warum offene Gewichte alles veränderten

Ein leistungsfähiges Basismodell von Grund auf zu trainieren, kann enorme Ressourcen erfordern:

Daten, GPU-Cluster, Strom, Entwicklungsarbeit, Zeit und Geld.

Trainierte Gewichte herunterzuladen erlaubt jemand anderem, erst nach diesem teuren Training anzufangen.

Du erhältst den gelernten numerischen Zustand.

Du wiederholst nicht die gesamte Ausbildung.

Forschern ermöglicht das Untersuchungen.

Entwicklern ermöglicht es lokalen Betrieb und Experimente.

Organisationen kann es mehr Kontrolle geben.

Und für Hobbyanwender und technisch Neugierige entsteht etwas, das vor nicht allzu langer Zeit außergewöhnlich geklungen hätte:

Ein Modell, das auf industrieller Infrastruktur trainiert wurde, kann schließlich als Dateien auf einem Computer bei dir zu Hause landen.

Der Trainingscluster belegt vielleicht ein Rechenzentrum.

Der fertige Checkpoint landet womöglich auf einer SSD unter deinem Schreibtisch neben drei USB-Kabeln, an deren Kauf sich niemand erinnert.

Eine beachtliche Reise für einen Tensor.


Was Gewichte nicht sind

Nach all dem lassen sich mehrere Missverständnisse leichter ausräumen.

Gewichte sind keine Datenbank.

Es gibt keine Zeile mit:

capital_of_france = Paris

Ein einzelnes Gewicht ist normalerweise kein für Menschen lesbarer Begriff.

Wenn du:

−0.018273-0.018273

in einem Tensor findest, sagt dir das allein fast nichts.

Gewichte ändern sich normalerweise nicht während gewöhnlicher Inferenz.

Training verändert sie.

Inferenz verwendet sie.

Ein Gewicht entspricht im Allgemeinen nicht einem Merkmal.

Bedeutung ist über viele Parameter und Schichten verteilt.

Parameterzahl ist nicht gleich Intelligenz.

Die Architektur zählt.

Die Trainingsdaten zählen.

Die Optimierung zählt.

Das Nachtraining zählt.

Der Umgang mit Kontext zählt.

Die Umgebung zählt.

Ein Idiot mit achtzig Milliarden Parametern wäre immer noch ein Idiot.

Er bräuchte lediglich eine teurere GPU.


Gewichte und Parameter

Die Wörter Gewicht und Parameter werden oft nahezu austauschbar verwendet.

Im normalen Gespräch ist das gewöhnlich in Ordnung.

Technisch ist Parameter der umfassendere Begriff.

Gewichte sind Parameter.

Bias-Werte, Normalisierungswerte und andere trainierbare Werte können ebenfalls Parameter sein.

Wenn jemand also sagt:

„Das ist ein 70B-Modell“,

bedeutet das genauer:

Das Modell enthält ungefähr siebzig Milliarden gelernte Parameter.

Die meisten dieser Parameter befinden sich in großen gelernten Matrizen.

Die Menschen werden sie weiter Gewichte nennen.

Die Zivilisation wird es vermutlich überleben.


Was bedeutet es, wenn ein Modell etwas „weiß“?

Nun berührt die Mathematik die Philosophie.

Ein Sprachmodell enthält keinen Miniaturbibliothekar, der Faktenregale durchsucht.

Im Transformer versteckt sich keine winzige SQL-Datenbank.

Stattdessen formt das Training Milliarden numerischer Beziehungen so, dass bestimmte Eingabemuster tendenziell nützliche Ausgabemuster erzeugen.

Frage:

Die Hauptstadt von Frankreich ist —

und das gelernte Netz bevorzugt deutlich:

Paris.

Bitte um Python-Code, und ein anderes Muster interner Aktivität erscheint.

Frage nach mittelalterlicher Geschichte, und noch ein anderes entsteht.

Dieselben dauerhaft gespeicherten Gewichte wirken an all diesen Verhaltensweisen mit.

Wenn wir sagen, ein Modell weiß etwas, meinen wir mathematisch daher eher:

Seine gelernten Parameter haben eine Konfiguration erreicht, die ein Verhalten erzeugt, das zum Erlernen dieser Information oder Fähigkeit passt.

Ob dafür dasselbe Wort Wissen angemessen ist wie bei Menschen, ist eine viel größere philosophische Frage.

Am besten versucht man das wohl nach dem Abendessen.


Die ganze Geschichte in zwei Diagrammen

Für alle, die das technische Gerüst möchten, ohne die ganze Reise zu wiederholen, lässt sich Inferenz so zusammenfassen:

input→weighted transformations→activations→output\text{input} \rightarrow \text{weighted transformations} \rightarrow \text{activations} \rightarrow \text{output}

In Alltagssprache:

Gib dem trainierten Netz eine Eingabe.
Leite sie durch Schichten mit gelernten Gewichten.
Erzeuge vorübergehende interne Zustände.
Erzeuge eine Ausgabe.

Training ergänzt eine zweite Schleife:

prediction→loss→gradients→parameter update\text{prediction} \rightarrow \text{loss} \rightarrow \text{gradients} \rightarrow \text{parameter update}

In Alltagssprache:

Mache eine Vorhersage.
Miss, wie falsch sie war.
Berechne, welche Parameteränderungen den Fehler verringern sollten.
Aktualisiere diese Parameter.

Dann wiederholen.

Und wiederholen.

Und wiederholen.

Oder in der kürzesten technisch nützlichen Fassung:

Inferenz verwendet die Zahlen. Training verändert die Zahlen.

Alles andere ist Architektur, Daten, Optimierung, Hardware und Maßstab.

Zugegeben, diese vier Themen haben ziemlich vielen Forschern Arbeit verschafft.


Warum dich das interessieren sollte, selbst wenn du nie etwas trainierst

Die meisten Menschen, die lokale KI betreiben, werden nie einen Gradienten von Hand berechnen.

Das ist völlig in Ordnung.

Die meisten Autofahrer fertigen ihre Kurbelwellen auch nicht selbst.

Wer Gewichte versteht, kann jedoch vieles erklären, dem technisch neugierige KI-Nutzer irgendwann begegnen.

Warum umfasst ein 8B-Modell mehrere Gigabyte?

Weil Milliarden gelernter numerischer Parameter physisch gespeichert werden müssen.

Warum braucht Q4 viel weniger Speicher als sechzehn Bit Genauigkeit?

Weil viele dieser Parameter mit weniger Bit dargestellt werden.

Warum kann Quantisierung das Verhalten leicht verändern?

Weil sich die numerische Genauigkeit verändert hat.

Warum kann Feinabstimmung ein Modell verändern?

Weil zusätzliches Training Parameter verändert.

Warum lernt das Modell durch ein hochgeladenes PDF nicht dauerhaft?

Weil das PDF den aktuellen Kontext verändert, nicht die dauerhaft gespeicherten Gewichte.

Warum können sich zwei Systeme mit identischen Modellgewichten ganz unterschiedlich verhalten?

Weil das Modell nur ein Teil seiner Umgebung ist.

Und warum kann man überhaupt ein trainiertes KI-Modell herunterladen?

Weil sich ein großer Teil des Trainingsergebnisses als gewaltige Sammlungen gelernter numerischer Parameter bewahren lässt.

Die Idee begann mit winzigen mathematischen Neuronen.

Dann kamen trainierbare Perzeptronen.

Rückpropagation machte mehrschichtiges Lernen praktikabel.

GPUs lieferten außergewöhnliche Mengen paralleler Arithmetik.

Transformer ordneten die Sprachverarbeitung neu.

Die Parameterzahlen wuchsen von Millionen auf Milliarden und darüber hinaus.

Der Maßstab veränderte sich fast bis zur Unkenntlichkeit.

Die zentrale Schleife blieb erstaunlich vertraut:

Mache eine Vorhersage.

Miss den Fehler.

Berechne, was sich ändern sollte.

Verändere die Zahlen ein wenig.

Versuche es erneut.

Tue das oft genug, mit genügend Daten, Mathematik, Hardware und Strom —

und irgendwann beginnen die Zahlen zu antworten.

Quellen & weitere Lektüre

Teilen & Nachdruck

Veröffentlicht von AI Model Green Zone.

Du darfst diesen Artikel nur vollständig und unverändert nachdrucken. Nenne dabei AI Model Green Zone als Quelle und füge einen gut sichtbaren, aktiven Link zum Originalartikel auf unserer Website hinzu.

Für Übersetzungen, gekürzte Fassungen und Bearbeitungen ist eine gesonderte Genehmigung erforderlich.

Diese Bedingungen schränken gesetzlich erlaubte Nutzungen nicht ein.

Der öffentliche Artikellink wird verfügbar, sobald die öffentliche Website-Adresse eingerichtet ist.