Eine Geschichte über KI · 02
Wie denkt eine Maschine?
Begleite eine Frage durch die Maschine: von Tokens und Aufmerksamkeit bis zum ersten Wort der Antwort.
Veröffentlicht von AI Model Green Zone
Weiterlesen →Unterstrichene Begriffe öffnen das Glossar. Mauszeiger oder Tastaturfokus zeigen eine kurze Erklärung.
Es gibt einen seltsamen Moment, den fast jeder erlebt, der genügend Zeit mit einem guten KI-Modell verbringt.
Am Anfang ist dir vollkommen klar, dass du Software benutzt.
Du tippst in ein Eingabefeld. Ein Computer rechnet. Wörter erscheinen.
Dann, vielleicht zwanzig Minuten später, fragst du etwas Kompliziertes. Die Maschine bemerkt ein Detail, das du vor zehn Minuten erwähnt hast, verknüpft es mit etwas anderem, entdeckt einen Widerspruch in deiner Argumentation und liefert eine Antwort, die nicht nur grammatisch korrekt, sondern offenbar auch relevant ist.
Und irgendwann stellt sich die naheliegende Frage:
Was genau ist zwischen meiner Frage und dieser Antwort in der Maschine passiert?
Nicht philosophisch.
Sondern mechanisch.
Was hat der Computer tatsächlich getan?
Verfolgen wir eine Frage auf ihrem gesamten Weg durch die Maschine.
Angenommen, du tippst:
Mein Hund hat ein ganzes Hähnchen vom Küchentisch geklaut. Soll ich den Tierarzt anrufen?
Für dich steckt in diesem Satz bereits eine ganze Bedeutung.
Da ist ein Hund.
Da war ein Hähnchen.
Das Hähnchen hat offenbar ohne Genehmigung den Besitzer gewechselt.
Möglicherweise waren Knochen dabei.
Du machst dir Sorgen.
Der Hund, so vermuten wir, bereut nichts.
Ein großes Sprachmodell (Large Language Model, LLM) empfängt nichts davon als Bild oder Erlebnis. Es stellt sich keinen Labrador neben einem leeren Teller vor. Es hat nie gebratenes Hähnchen gerochen. Es hat nie um elf Uhr abends ein Tier zum tierärztlichen Notdienst gefahren.
Es empfängt Symbole.
Und als Erstes muss es diese Symbole in Zahlen verwandeln.
Schritt eins: Tokenisierung — Sprache in maschinengerechte Stücke zerlegen
Das Modell kann deinen Satz nicht direkt als gewöhnliche menschliche Sprache verarbeiten.
Bevor das neuronale Netz ihn sieht, zerlegt eine Software namens Tokenizer den Satz in kleinere Einheiten, die Tokens heißen.
Ein Token kann ein ganzes Wort sein.
Es kann ein Teil eines Wortes sein.
Es kann ein Satzzeichen sein.
Es kann eine Zahl, ein Leerzeichen oder ein Teil eines unbekannten Namens sein.
So könnte:
My dog stole a whole chicken.
sinngemäß zu etwas wie diesem werden:
My|dog|stole|a|whole|chicken|.
Das Beispiel ist vereinfacht; verschiedene Modellfamilien verwenden unterschiedliche Tokenizer.
Jedem Token wird anschließend eine numerische Kennung zugewiesen, die Token-ID.
Das Wort dog wandert nicht als Buchstaben D-O-G durch das Modell.
Es könnte als etwas wie diesem eintreten:
Token-ID 8.214
Die konkrete Zahl bedeutet uns nichts. Sie ist einfach eine Adresse im Wortschatz des Modells.
An diesem Punkt hat die Maschine deinen Satz in eine Folge ganzer Zahlen verwandelt.
Das klingt nur bei sehr großzügiger Auslegung des Wortes nach Fortschritt.
Denn die Zahl 8.214 erklärt nicht, was ein Hund ist.
Dafür brauchen wir eine weitere Umwandlung.
Von Token-IDs zu Embeddings
Das Modell wandelt jede Token-ID in ein Embedding um.
Ein Embedding ist eine Liste von Zahlen, die das Token in einem mathematischen Raum darstellt.
Ein weiteres hilfreiches Wort ist Vektor.
Ein Vektor ist in diesem Zusammenhang einfach eine geordnete Sammlung von Zahlen.
Statt dog durch eine einzige bedeutungslose ganze Zahl darzustellen, kann das Modell Hunderte oder Tausende numerischer Werte verwenden.
Ganz grob:
dog → [0.17, −0.42, 0.08, 1.31, …]
Dieser Vektor kann Tausende Zahlen enthalten.
Versuche nicht, einzelnen Positionen menschliche Bedeutungen zuzuordnen.
Die erste Zahl bedeutet nicht „hat Fell“.
Die zweite bedeutet nicht „zerstört gelegentlich Möbel“.
Die Bedeutung entsteht aus dem gesamten Muster.
Du kannst dir Embeddings als Koordinaten auf einer riesigen Karte vorstellen.
Aber es ist keine normale Karte mit Norden, Süden, Osten und Westen.
Sie kann mehrere Tausend mathematische Dimensionen haben.
Für Autoreisen ist sie damit furchtbar, für maschinelles Lernen jedoch sehr nützlich.
Auf dieser seltsamen mathematischen Karte entwickeln verwandte Begriffe tendenziell verwandte Darstellungen.
Hund kann näher bei Welpe liegen als bei Hypothek.
Tierarzt kann Beziehungen zu Tier, Medizin, Klinik und Behandlung haben.
Hähnchen kann mit Essen, Vogel, Knochen, Kochen und Tausenden weiteren Zusammenhängen verknüpft sein.
Niemand hat all diese Beziehungen von Hand in das Modell eingegeben.
Sie entstanden, weil das Training die Modellgewichte immer wieder anpasste, bis nützliche Beziehungen auftraten.
Aber wir sind noch nicht fertig.
Es gibt ein weiteres Problem.
Das englische Wort bank kann ein Geldinstitut bedeuten.
Oder das Ufer eines Flusses.
Das Embedding des Wortes allein verrät nicht, welche Bedeutung du meinst.
Bedeutung hängt vom Kontext ab.
Und beim Kontext beginnt der Transformer, sein Gehalt zu verdienen.
Der Transformer-Block: Hier beginnt die eigentliche Verarbeitung
Moderne große Sprachmodelle bestehen meist aus vielen wiederholten Verarbeitungsstufen, den Transformer-Blöcken.
Du kannst dir jeden Block als Stockwerk eines sehr hohen Gebäudes vorstellen.
Deine Tokendarstellungen betreten das erste Stockwerk.
Sie werden umgewandelt.
Sie steigen nach oben.
Das nächste Stockwerk erhält die veränderten Darstellungen und wandelt sie erneut um.
Ein modernes Modell kann Dutzende oder sogar mehr als hundert Transformer-Schichten enthalten.
Wenn die Information oben ankommt, ist die Darstellung des Satzes wesentlich reichhaltiger als beim Eintritt.
In jedem Transformer-Block gibt es mehrere wichtige Mechanismen.
Der berühmte heißt:
Selbstaufmerksamkeit (Self-Attention).
Und hier brauchen wir drei der seltsamsten Namen der modernen KI:
Query, Key und Value — Anfrage, Schlüssel und Wert.
Meist abgekürzt als:
Q, K und V.
Query, Key, Value — schreckliche Namen, nützliche Idee
Die Begriffe stammen teilweise aus Informationssuchsystemen. Leider hat niemand innegehalten und gefragt, ob gewöhnliche Menschen sie eines Tages lernen müssen.
Aber die Idee lässt sich verstehen.
Stell dir eine Cocktailparty vor.
Alle tragen ein Namensschild mit Informationen über sich.
Eine Person sucht gerade:
„Jemanden, der sich mit Tiermedizin auskennt.“
Das entspricht ungefähr einer Query, einer Anfrage.
Auf den Namensschildern der anderen steht, wofür sie stehen.
Das ähnelt einem Key, einem Schlüssel.
Wenn eine Anfrage stark zu einem bestimmten Schlüssel passt, beachten wir die Informationen dieser Person stärker.
Diese Informationen sind der Value, der Wert.
In einem Transformer erzeugt jedes Token eigene Query-, Key- und Value-Vektoren.
Nicht metaphorisch: Mit gelernten Gewichtsmatrizen werden tatsächliche Zahlenvektoren berechnet.
Das Wort dog erzeugt Q-, K- und V-Darstellungen.
Das tut auch chicken.
Und vet.
Und jedes andere Token.
Das Modell vergleicht dann Queries mit Keys, um Folgendes zu berechnen:
Welche anderen Tokens soll dieses Token beachten, und wie stark?
Aufmerksamkeitswerte: entscheiden, was wichtig ist
Kehren wir zu unserem unglücklichen Hähnchen zurück.
Das Modell erreicht den Satz:
Soll ich den Tierarzt anrufen?
Die mit Tierarzt verbundene Darstellung kann starke Beziehungen zu früheren Tokens entwickeln, etwa:
Hund
Hähnchen
geklaut
ganzes
Und schwächere Beziehungen zu weniger wichtigen Stücken wie:
den
Mathematisch wird diese Beziehung durch einen Aufmerksamkeitswert ausgedrückt.
Technisch berechnet das Modell ein sogenanntes Skalarprodukt zwischen Query- und Key-Vektoren.
Ein Skalarprodukt ist einfach ein mathematischer Weg, zu messen, wie stark zwei Vektoren miteinander ausgerichtet sind.
Die genaue Rechnung musst du nicht kennen.
Sinngemäß:
Starke Übereinstimmung → höherer Wert
Schwache Übereinstimmung → niedrigerer Wert
Die Werte durchlaufen anschließend eine mathematische Operation namens Softmax.
Softmax verwandelt eine Sammlung roher Werte in normierte Gewichte.
Einfach ausgedrückt:
Aus „Wer scheint wichtig?“ wird „Wie viel Aufmerksamkeit soll ich jedem tatsächlich geben?“
Vielleicht, rein zur Veranschaulichung:
Hund → 35% Aufmerksamkeit
Hähnchen → 28%
Tierarzt → 21%
Tisch → 6%
den → fast nichts
Tatsächliche Aufmerksamkeit ist wesentlich komplizierter, und mehrere Aufmerksamkeitsköpfe arbeiten gleichzeitig. Aber die Vorstellung ist hilfreich.
Das Modell kombiniert dann die entsprechenden Value-Vektoren gemäß diesen Aufmerksamkeitsgewichten.
So entsteht eine neue Darstellung mit Informationen aus relevanten Teilen des Kontexts.
Das Token steht nicht mehr nur für sich selbst.
Es trägt nun Informationen über seine Beziehungen zu anderen Tokens.
Die Gleichung der Ingenieure
Ein Ingenieur schreibt Selbstaufmerksamkeit häufig so:
Attention(Q, K, V) = softmax(QKᵀ / √d) V
Auf den ersten Blick sieht das aus, als hätte jemand einen Taschenrechner die Treppe hinuntergeworfen.
Aber jetzt können wir es übersetzen.
Q = wonach dieses Token sucht.
K = was die anderen Tokens über sich anbieten.
QKᵀ = das Gesuchte mit dem Verfügbaren vergleichen.
√d = eine Skalierungskorrektur, damit sich die Zahlen mathematisch vernünftig verhalten.
softmax = die Vergleichswerte in Aufmerksamkeitsgewichte umwandeln.
V = die eigentlichen Informationen aus den Tokens entsprechend diesen Gewichten einsammeln.
Die einschüchternde Gleichung sagt im Grunde:
Schau dich um, entscheide, was wichtig ist, und kombiniere die relevanten Informationen.
Plötzlich ist sie nicht mehr ganz so furchteinflößend.
Multi-Head Attention: denselben Satz auf mehrere Arten betrachten
Ein Transformer führt normalerweise nicht nur eine Aufmerksamkeitsberechnung durch.
Er verwendet Multi-Head Attention, also Aufmerksamkeit mit mehreren Köpfen.
Ein Aufmerksamkeitskopf ist ein unabhängiger Aufmerksamkeitsmechanismus.
Warum mehrere?
Weil derselbe Satz gleichzeitig mehrere Arten von Beziehungen enthält.
Nehmen wir:
Der Hund, der das Hähnchen geklaut hat, schläft jetzt friedlich, weil er kein Gewissen hat.
Ein Aufmerksamkeitskopf kann für grammatische Beziehungen nützlich werden.
Ein anderer konzentriert sich vielleicht darauf, auf welches Substantiv sich er bezieht.
Ein weiterer verfolgt möglicherweise das Hauptsubjekt.
Noch einer erfasst vielleicht weiter reichende Bedeutungsbeziehungen.
Wir sollten uns nicht vorstellen, dass jeder Kopf eine sauber beschreibbare Aufgabe hat wie:
Kopf Nummer 17 = Abteilung Hähnchendiebstahl.
Die Spezialisierung ist nicht unbedingt so eindeutig.
Doch mehrere Köpfe erlauben dem Netz, denselben Kontext gleichzeitig durch verschiedene gelernte Beziehungsmuster zu untersuchen.
Darum liest das Modell Wörter nicht bloß von links nach rechts.
Es baut ein Netz von Beziehungen zwischen ihnen auf.
Der verborgene Zustand: was das Modell gerade über das Token „weiß“
Nach der Aufmerksamkeit besitzt jedes Token eine reichhaltigere interne Darstellung.
Diese Darstellung wird gewöhnlich verborgener Zustand genannt.
Verborgen bedeutet lediglich, dass diese Zahlen innerhalb des neuronalen Netzes existieren und für den Nutzer nicht direkt sichtbar sind.
Das ist eine wichtige Idee.
Das Modell beginnt mit:
„Hund“
als Token.
Einige Schichten später kann dessen verborgener Zustand indirekt eher so etwas darstellen:
der Hund des Nutzers, der gerade ein ganzes Hähnchen gefressen hat und Anlass zu einer möglichen medizinischen Sorge gibt
Im Modell steht kein deutscher Satz, der das aussagt.
Der verborgene Zustand ist weiterhin ein Zahlenvektor.
Mathematisch trägt er nun aber wesentlich mehr Kontextinformation.
Dann gelangt er in den nächsten Transformer-Block.
Wieder Aufmerksamkeit.
Wieder Umwandlung.
Ein weiterer verborgener Zustand.
Noch einmal.
Und noch einmal.
Schicht für Schicht.
Das vorwärtsgerichtete Netz: über das nachdenken, was die Aufmerksamkeit gefunden hat
Aufmerksamkeit bekommt die meiste öffentliche Beachtung. Transformer-Blöcke enthalten jedoch einen weiteren wichtigen Bestandteil: das vorwärtsgerichtete Netz (Feed-Forward Network, FFN).
Du kannst dir Aufmerksamkeit als das Sammeln relevanter Informationen vorstellen.
Das vorwärtsgerichtete Netz führt anschließend weitere Umwandlungen dieser Informationen durch.
Wenn Aufmerksamkeit die Nachrichtenredaktion ist, die sagt:
„Diese Fakten hängen zusammen“,
Dann sagt das vorwärtsgerichtete Netz eher:
„Gut. Was machen wir daraus?“
Technisch gehören dazu große Matrixmultiplikationen.
Eine Matrix ist im Wesentlichen eine rechteckige Zahlentabelle.
Moderne neuronale Netze verbringen außerordentlich viel Zeit damit, riesige Matrizen miteinander zu multiplizieren.
Das klingt vielleicht unspektakulär.
Es ist zugleich der Grund, warum GPUs so nützlich sind.
Grafikprozessoren (Graphics Processing Units, GPUs) wurden für viele gleichzeitige mathematische Operationen entwickelt.
Das Zeichnen von Millionen Pixeln und das Verarbeiten neuronaler Matrizen haben überraschend ähnliche Hardwareanforderungen.
Die Menschheit baute jahrzehntelang schnellere Grafikkarten, damit Explosionen in Computerspielen realistischer aussahen.
Dann entdeckten Forscher, dass dieselbe Hardware bemerkenswert gut für künstliche Intelligenz geeignet war.
Technik nimmt selten den Weg, den der ursprüngliche Werbeprospekt versprochen hat.
Aktivierungsfunktionen: Nichtlinearität einführen
Im vorwärtsgerichteten Netz begegnet uns ein weiterer Begriff:
Aktivierungsfunktion.
Ohne Aktivierungsfunktionen wäre das Stapeln vieler neuronaler Schichten wesentlich weniger leistungsfähig.
Eine Aktivierungsfunktion bringt Nichtlinearität hinein.
Dieser Ausdruck verdient eine Übersetzung.
Wenn das gesamte Netz nur einfache lineare Kombinationen ausführte, würden viele Schichten mathematisch zu etwas zusammenfallen, das einer einzigen großen linearen Transformation entspricht.
Nichtlineare Aktivierungsfunktionen erlauben dem Netz, wesentlich kompliziertere Beziehungen darzustellen.
Moderne Transformer nutzen häufig Funktionen wie GELU, SiLU oder verwandte Varianten.
Du musst diese Namen wirklich nicht auswendig lernen, um ein LLM zu benutzen.
Wichtig ist die Idee:
Aktivierungsfunktionen erlauben dem Netz, Informationen zu biegen, durchzulassen oder zurückzuhalten und umzuformen, statt sie nur zu skalieren und zu addieren.
Denk an den Unterschied zwischen einem Lineal und einer Kiste Lego.
Lineare Operationen liefern ausgezeichnete Lineale.
Nichtlinearität lässt dich anfangen, Dinge zu bauen.
Residualverbindungen: Wirf nicht weg, was du schon wusstest
Transformer-Blöcke nutzen außerdem sogenannte Residualverbindungen.
Dahinter steckt eine wunderbar vernünftige Idee, versteckt hinter einem weiteren Fachbegriff.
Anstatt die vorherige Darstellung vollständig durch eine neue Transformation zu ersetzen, addiert das Modell einen großen Teil der ursprünglichen Information wieder hinzu.
Sinngemäß:
neue Darstellung = alte Darstellung + neue Information
Warum?
Stell dir vor, du bearbeitest ein Dokument.
Du würdest normalerweise nicht jedes Mal das gesamte Dokument aus dem Gedächtnis neu schreiben, wenn du einen Absatz korrigierst.
Du behältst, was bereits funktioniert, und ergänzt die Verbesserung.
Residualverbindungen helfen Informationen, durch sehr tiefe neuronale Netze zu fließen, ohne immer wieder zerstört oder verzerrt zu werden.
Sie gehörten zu den wichtigen Neuerungen, die sehr tiefe Netze praktisch nutzbar machten.
Schichtnormalisierung: die Mathematik unter Kontrolle halten
Dann gibt es noch die Schichtnormalisierung (Layer Normalization).
Wenn Werte durch Dutzende Schichten wandern, können ihre numerischen Größenordnungen schwer beherrschbar werden.
Die Schichtnormalisierung skaliert interne Werte auf einen stabileren Bereich.
Denk an einen Tontechniker, der Aufnahmen mit völlig unterschiedlichen Lautstärken bekommt.
Ein Mikrofon flüstert.
Ein anderes klingt, als hätte es in einem Düsentriebwerk gestanden.
Bevor die Musik gemischt wird, braucht der Techniker vernünftige Pegel.
Die Schichtnormalisierung erledigt eine vergleichbare mathematische Aufräumarbeit.
Sie liefert keine Intelligenz.
Aber ohne gute Ordnung wird der intelligente Teil wesentlich schwerer zu trainieren.
Offenbar braucht selbst künstliche Intelligenz jemanden, der das Zimmer aufräumt.
Und das geschieht Schicht für Schicht
Halten wir kurz inne.
Dein ursprünglicher Satz:
Mein Hund hat ein ganzes Hähnchen vom Küchentisch geklaut. Soll ich den Tierarzt anrufen?
hat Folgendes durchlaufen:
Tokenisierung
→ Umwandlung in Token-IDs
→ Umwandlung in Embeddings
→ Umwandlung in Vektoren
→ Eintritt in einen Transformer-Block
→ Verarbeitung durch Selbstaufmerksamkeit
→ Vergleich von Queries mit Keys
→ Berechnung von Aufmerksamkeitsgewichten mit Softmax
→ Kombination der Values
→ Umwandlung durch ein vorwärtsgerichtetes Netz
→ Durchlaufen von Aktivierungsfunktionen
→ Erhaltung durch Residualverbindungen
→ Stabilisierung durch Schichtnormalisierung
→ Umwandlung in reichhaltigere verborgene Zustände
Dann wiederholt sich der gesamte Vorgang in einer weiteren Transformer-Schicht.
Und noch einer.
Und noch einer.
Das kommt dem viel näher, was tatsächlich passiert, wenn wir beiläufig sagen:
„Das Modell denkt.“
Doch etwas übersieht man leicht, wenn man diesen Ablauf langsam auf einer Seite beschreibt.
Der Computer macht all das mit außergewöhnlicher Geschwindigkeit.
Irgendwo ist gerade ein Rechenzentrum aufgewacht
Wenn du einen KI-Dienst in der Cloud nutzt, kann deine Frage über das Internet zu einem Rechenzentrum voller Computerschränke reisen.
Darin stecken leistungsfähige Grafikprozessoren (Graphics Processing Units, GPUs), die riesige Mengen mathematischer Operationen parallel ausführen können.
Die gelernten Gewichte des Modells sind bereits in den Speicher dieser Maschinen geladen.
Sie entstehen nicht erst, wenn du deine Frage stellst.
Sie wurden zuvor beim Training erzeugt.
Du kannst sie dir als dauerhafte mathematische Struktur vorstellen, die das Modell während seiner Ausbildung erworben hat.
Deine Frage wird nicht in diese Gewichte hineingeschrieben.
Sie wandert stattdessen durch sie hindurch.
Dieser Unterschied ist wichtig.
Wenn du schreibst:
Mein Hund hat ein Hähnchen geklaut. Soll ich den Tierarzt anrufen?
hält das Modell nicht an, um sich neu zu trainieren.
Seine Milliarden gelernten Gewichte liegen schon bereit und warten.
Deine Eingabe kommt an.
Sie wird zu Tokens.
Tokens werden zu Embeddings.
Embeddings werden zu verborgenen Zuständen.
Diese Zustände wandern durch Schicht um Schicht gelernter Gewichtsmatrizen.
Aufmerksamkeit vergleicht Beziehungen.
Vorwärtsgerichtete Netze formen sie um.
Residualverbindungen bewahren nützliche Informationen.
Normalisierung hält den gesamten numerischen Vorgang stabil.
Der eingehende Text wird nach und nach in immer reichhaltigere interne Darstellungen umgewandelt.
Locker gesagt wird der ursprüngliche Satz zu mathematischer Bedeutung verdichtet. „Verdichtung“ bedeutet hier allerdings nicht, dass die Information in die Gewichte zurückgeschrieben wird.
Die Gewichte bleiben weitgehend unverändert.
Was sich ändert, ist der vorübergehende interne Zustand, der entsteht, wenn deine Frage durch diese Gewichte läuft.
All das kann Milliarden und Abermilliarden von Multiplikationen und Additionen umfassen.
Trotzdem kann auf moderner Hardware der erste Teil der Antwort nach einem Sekundenbruchteil oder einigen Sekunden erscheinen, abhängig von Modell, Hardware, Systemauslastung und Länge deiner Eingabe.
Denk einen Moment darüber nach.
Du drückst Enter.
Dein Satz verlässt deinen Computer.
Irgendwo, vielleicht Hunderte oder Tausende Kilometer entfernt, beginnen GPUs, riesige Matrizen zu multiplizieren.
Der Satz wird zerlegt, in Vektoren umgewandelt, über Aufmerksamkeitsköpfe hinweg verglichen, durch Dutzende Schichten transformiert und auf Wahrscheinlichkeiten möglicher nächster Tokens reduziert —
und dann kommt eine Antwort zurück.
Für dich sieht das so aus:
„Wenn dein Hund ein ganzes Hähnchen gefressen hat, ist die wichtige Frage, ob gekochte Knochen darin waren …“
Es fühlt sich wie ein Gespräch an.
Im Rechenzentrum hat gerade eine gewaltige mathematische Fabrik ihre Arbeit aufgenommen.
Wenn du das Modell lokal ausführst, läuft derselbe grundsätzliche Vorgang auf der GPU in deinem eigenen Computer ab.
Kein fernes Rechenzentrum.
Keine geheimnisvolle Cloud.
Nur deine Grafikkarte, die leise eine absurde Menge Mathematik bewältigt, während ihre Lüfter ihre Lebensentscheidungen überdenken.
Aber irgendwann muss das Modell etwas sagen
Nach all diesen Schichten hat das Modell eine reichhaltige verborgene Darstellung des aktuellen Kontexts aufgebaut.
Nun muss es diesen internen Zustand wieder in Sprache verwandeln.
Der letzte verborgene Zustand wird in eine große Liste von Zahlen umgewandelt, die Logits heißen.
Ein Logit ist im Wesentlichen ein Rohwert für ein mögliches nächstes Token.
Angenommen, die Antwort steht unmittelbar bevor.
Das Modell könnte sinngemäß Folgendes erzeugen:
Wenn → 8.4
Weil → 7.9
Dein → 6.7
Hähnchen → 2.1
Volkswagen → −3.8
Auch das sind erfundene Zahlen zur Veranschaulichung.
Das Modell hat das Wort noch nicht gewählt.
Es hat Bewertungen erzeugt.
Diese Logits werden anschließend in Wahrscheinlichkeiten umgewandelt, normalerweise erneut mit Softmax.
Nun vielleicht:
Wenn → 31%
Weil → 22%
Dein → 14%
Da → 11%
Hunderte weitere Tokens → die restliche Wahrscheinlichkeit
Das System muss entscheiden, welches Token es erzeugt.
Temperatur und Sampling: warum das Modell nicht immer dasselbe sagt
Wählte das Modell immer nur das Token mit der höchsten Wahrscheinlichkeit, könnten Antworten wiederholend und starr werden.
Stattdessen verwenden Generierungssysteme häufig Sampling, also eine zufallsbasierte Auswahl.
Sampling bedeutet, wahrscheinliche Tokens gemäß ihrer Wahrscheinlichkeitsverteilung auszuwählen.
Eine Einstellung namens Temperatur verändert, wie abenteuerlustig diese Wahl ausfällt.
Bei niedriger Temperatur bevorzugt das Modell die wahrscheinlichsten Tokens deutlich.
Es verhält sich konservativer.
Bei höherer Temperatur bekommen weniger wahrscheinliche Alternativen bessere Chancen.
Die Sprache kann abwechslungsreicher oder kreativer werden.
Sie kann auch exzentrischer werden.
Stell dir Temperatur als den Unterschied vor zwischen der Einstellung:
eines vorsichtigen Buchhalters
Und:
desselben Buchhalters nach drei Espressi und einem Improvisationskurs.
Beide können nützlich sein.
Nicht unbedingt für denselben Auftrag.
Weitere Generierungseinstellungen sind Top-k-Sampling und Top-p-Sampling. Sie begrenzen, welche Tokenkandidaten überhaupt in den Auswahlpool gelangen.
Die Einzelheiten sind einstellbar, aber der Kern ist einfach:
Das neuronale Netz liefert Möglichkeiten.
Die Decodierungsstrategie wählt daraus aus.
Autoregressive Generierung: ein Token verändert das nächste
Nun wählt das Modell sein erstes Ausgabetoken.
Vielleicht:
Wenn
Dieses Token wird dem Kontext hinzugefügt.
Das Modell läuft erneut.
Jetzt verarbeitet es:
Mein Hund hat ein ganzes Hähnchen vom Küchentisch geklaut. Soll ich den Tierarzt anrufen?
Wenn
Es sagt das nächste Token voraus.
Vielleicht:
dein
Dann:
Hund
Dann:
gefressen
Und so weiter.
Das heißt autoregressive Generierung.
Auto bedeutet, dass das System seine eigene erzeugte Ausgabe in die nächste Vorhersage zurückführt.
Regressiv bedeutet hier, dass der nächste Wert von vorherigen Werten der Folge abhängt.
Die Antwort wird also nicht auf einmal geschrieben.
Sie wächst.
Token für Token.
Jedes erzeugte Token verändert den Kontext für die nächste Vorhersage ein wenig.
Darum passt der Vergleich mit Jazz so gut.
Ein Musiker spielt eine Note.
Diese Note verändert, was als Nächstes musikalisch sinnvoll ist.
Die nächste Note verändert die Möglichkeiten erneut.
Ein Sprachmodell tut das mit Tokens.
Gibt es also einen Moment, in dem das Modell „die Antwort hat“?
Das ist eine interessante Frage.
Normalerweise nicht so, wie ein Mensch es sich vorstellt.
Es gibt keinen eindeutigen Augenblick, in dem das Modell intern schreibt:
VOLLSTÄNDIGE ANTWORT GEFUNDEN. JETZT AUSGEBEN.
Stattdessen entwickelt sich der interne Zustand fortlaufend weiter.
Jede Schicht verfeinert Darstellungen.
Jedes erzeugte Token verändert den Kontext.
Die Antwort entsteht schrittweise.
Das erklärt einige merkwürdige Verhaltensweisen.
Ein Modell kann selbstsicher beginnen und später durch seinen eigenen neu erzeugten Kontext feststellen, dass eine andere Richtung sinnvoller ist.
Es kann sich korrigieren.
Oder sich widersprechen.
Oder gelegentlich direkt in einen gedanklichen Straßengraben fahren und dabei hervorragende Grammatik beibehalten.
Generierung ist ein Vorgang, nicht das Abrufen eines fertigen Gegenstands.
Wo passt der Key-Value-Cache hinein?
Jetzt können wir den Key-Value-Cache (KV-Cache) endlich richtig verstehen.
Erinnerst du dich an Query, Key und Value?
Jede Transformer-Schicht berechnet Keys und Values für die Tokens, die sie verarbeitet.
Bei der Erzeugung des nächsten Tokens müssen die meisten früheren Keys und Values nicht erneut berechnet werden.
Sie sind bereits berechnet.
Deshalb speichert die Inferenzsoftware sie im KV-Cache.
Der KV-Cache ist also keine geheimnisvolle Zusatzfunktion, die an das Modell angeklebt wurde.
Er hängt direkt mit dem gerade beschriebenen Aufmerksamkeitsmechanismus zusammen.
Der Cache sagt:
„Die Keys und Values der vorherigen Tokens haben wir schon berechnet. Behalten wir sie griffbereit, damit wir die Arbeit nicht wiederholen.“
Mit dem Gespräch wächst die Zahl vorheriger Tokens.
Mehr Tokens bedeuten mehr gespeicherte Keys und Values.
Also wächst der KV-Cache.
Da er VRAM belegt, benötigt ein längerer Kontext mehr GPU-Speicher.
Nun wird der Zusammenhang logisch, statt nur eine Regel zum Auswendiglernen zu sein:
Mehr Kontext → mehr gespeicherte K/V-Informationen → größerer KV-Cache → mehr belegter VRAM.
Genau solche Zusammenhänge möchte Green Zone sichtbar machen.
Also endlich: Wie denkt die Maschine?
Kehren wir ein letztes Mal zum Hund und zum gestohlenen Hähnchen zurück.
Du hast einen Satz eingegeben.
Der Computer verstand ihn nicht so mühelos und unmittelbar wie du.
Er musste dieses Verständnis aufbauen.
Zuerst zerlegte er deine Sprache in Tokens.
Dann verwandelte er die Tokens in Vektoren.
Diese Vektoren gelangten in ein Netz mit Milliarden gelernter Gewichte.
Selbstaufmerksamkeit ließ verschiedene Teile des Satzes miteinander interagieren.
Query-, Key- und Value-Vektoren halfen dem Modell zu entscheiden, welche Beziehungen wichtig waren.
Multi-Head Attention erlaubte es, mehrere unterschiedliche Beziehungsmuster gleichzeitig zu betrachten.
Vorwärtsgerichtete Netze verwandelten die entstandenen Informationen.
Aktivierungsfunktionen ermöglichten komplizierte nichtlineare Beziehungen.
Residualverbindungen trugen nützliche frühere Informationen weiter.
Die Schichtnormalisierung hielt das numerische System stabil.
Und jede Transformer-Schicht erzeugte reichhaltigere verborgene Zustände als die vorherige.
Als die Information die letzten Schichten erreichte, entsprach die interne mathematische Darstellung nicht mehr bloß einzelnen Wörtern wie:
Hund
Hähnchen
Tierarzt
Das Netz hatte etwas aufgebaut, das einer Darstellung der Situation wesentlich näher kam:
Ein Mensch macht sich Sorgen, weil ein Hund etwas gefressen hat, das gefährliche Knochen enthalten könnte, und möchte wissen, ob ärztliche Hilfe nötig sein könnte.
Im Modell steht kein deutscher Satz, der das aussagt.
Kein winziger Arzt untersucht den Hund.
Es gibt einen komplizierten Zustand aus Zahlen.
Doch diese Zahlen codieren nun so reichhaltige Beziehungen, dass das Modell eine passende Fortsetzung erzeugen kann.
Der letzte verborgene Zustand wird in Logits verwandelt.
Die Logits werden zu Wahrscheinlichkeiten.
Ein Decodierungsalgorithmus wählt ein Token.
Dieses Token wird Teil der nächsten Eingabe.
Ein weiteres Token entsteht.
Dann noch eines.
Währenddessen bleiben die zuvor berechneten Keys und Values im KV-Cache verfügbar. So kann das Modell das Gespräch fortsetzen, ohne jede Berechnung von vorn zu wiederholen.
All das — Tokenisierung, Embeddings, Aufmerksamkeit, Matrixmultiplikation, Umwandlung verborgener Zustände, Wahrscheinlichkeitsberechnung, Decodierung und Zwischenspeicherung — kann so schnell ablaufen, dass die Antwort fast sofort erscheint.
In der Maschine gibt es keine einzelne Operation namens Gedanke.
Keine besondere „Intelligenzgleichung“.
Stattdessen geschieht etwas Interessanteres.
Tausende relativ einfacher mathematischer Operationen werden über Milliarden gelernter Parameter wiederholt, immer wieder, Schicht für Schicht, bis eine komplexe Darstellung entsteht.
Denk an ein Klavier.
Ein einzelner Hammer ist keine Musik.
Eine Saite ist keine Musik.
Eine Holztaste ist keine Musik.
Das Pedal ist ganz sicher keine Musik.
Du kannst das ganze Instrument zerlegen und jedes Teil untersuchen, ohne Beethoven unter dem Resonanzboden zu finden.
Musik entsteht, wenn die Teile richtig angeordnet und in Bewegung gesetzt werden.
In einer wichtigen Hinsicht ähnelt ein neuronales Netz dem.
Ein einzelnes Gewicht ist nicht intelligent.
Eine Matrixmultiplikation ist nicht intelligent.
Ein Token ist nicht intelligent.
Selbst ein Aufmerksamkeitskopf ist für sich allein nicht intelligent.
Das bemerkenswerte Verhalten entsteht aus dem Zusammenspiel des gesamten Systems.
Vielleicht ist das das Seltsamste an moderner künstlicher Intelligenz.
Wir haben kein mathematisches Symbol entdeckt, das bedeutet:
Intelligenz = 42.
Wir haben gelernt, gewaltige Systeme zu bauen, in denen einfache mathematische Operationen, sorgfältig strukturiert und mit riesigen Datenmengen trainiert, ein erstaunlich anspruchsvoll wirkendes Verhalten hervorbringen können.
Du tippst:
Soll ich den Tierarzt anrufen?
Irgendwo machen sich Milliarden Zahlen an die Arbeit.
Und einen Moment später antwortet die Maschine.
Damit bleibt die nächste naheliegende Frage:
Woher kamen diese Milliarden nützlicher Gewichte?
Als das Modell erschaffen wurde, wussten diese Gewichte nichts über Hunde.
Oder Hähnchen.
Oder Tierärzte.
Oder Python.
Oder Frankreich.
Oder Shakespeare.
Sie mussten lernen.
Und damit beginnt die nächste Geschichte.
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.