English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

Gast
1 / ?

Ein Embedding ist eine Lookup-Tabelle, keine Funktion

Eine erste Schicht nach dem Tokenizer

Ein Tokenizer liefert dem Modell ganzzahlige IDs: [256, 1842, 7301, ...]. Eine der ersten Aufgaben eines Transformers besteht darin, jede ID in einen Vektor aus d_model Gleitkommazahlen umzuwandeln. Dieser Vektor existiert in einem d_model-dimensionalen Raum (768 Dimensionen bei ANDREA-120M).


Eine Embedding-Schicht ist eine Lookup-Tabelle, keine Funktion. Stellen Sie sich eine riesige Matrix vor:


shape: (V, d_model)
row 0:    [e_0_0, e_0_1, ..., e_0_767]
row 1:    [e_1_0, e_1_1, ..., e_1_767]
...
row 8448: [e_8448_0, e_8448_1, ..., e_8448_767]

Token-ID i wählt Zeile i. Direkter Array-Zugriff. Keine Arithmetik, keine Aktivierung. Nur ein Index.


Token- & Positions-Embedding-Fluss


Trainierbare Gleitkommazahlen

Jeder Eintrag in dieser Tabelle beginnt als kleine Zufallszahl (typischerweise aus einer Normalverteilung mit Skalierung 1/sqrt(d_model)). Backpropagation aktualisiert jede Zeile, sobald ihre Token-ID in einem Batch vorkommt. Nach dem Training erhalten ähnliche Tokens (cat, dog, pet) ähnliche Vektoren; unzusammenhängende Tokens (cat, Tuesday, xylophone) liegen weit auseinander im Vektorraum.


ANDREA-120M Token Embedding Kosten


MengeWert
V8,449
d_model768
Parameter6,488,832

Etwa 6,5 Mio. Parameter befinden sich allein in einer Token-Embedding-Tabelle, rund 5,4 % der Gesamtparameter von ANDREA-120M. Jeder Vokabular-Slot erhält diese 768 Floats.

Größenberechnung von Embedding-Tabellen

Berechne die Anzahl der Token-Embedding-Parameter für zwei zukünftige Varianten. (a) ANDREA-480M: V = 16.641 (ein 16.384-Segment-Tokenizer plus 256 Bytes plus 1 BOS), d_model = 1536. (b) ANDREA-12M: V = 4.353, d_model = 384. Zeige die V × d_model-Arithmetik für jede Variante.

Skalarprodukte messen Ähnlichkeit

Vektoren als Pfeile

Ein 768-dimensionaler Vektor lebt in einem Raum, den Menschen nicht visualisieren können, aber dieselbe Algebra funktioniert in jeder Dimension. Zwei Schlüsseloperationen sind für Transformer wichtig:


Betrag (Länge eines Pfeils):


||v|| = sqrt(v_0² + v_1² + ... + v_767²)

Skalarprodukt (Ausrichtung zwischen zwei Pfeilen):


u · v = u_0 × v_0 + u_1 × v_1 + ... + u_767 × v_767

Was ein Skalarprodukt aussagt

Zwei Tatsachen, die in jeder Dimension gelten:


- u · v = ||u|| × ||v|| × cos(theta), wobei theta der Winkel zwischen ihnen ist.

- Vektoren, die in dieselbe Richtung zeigen, ergeben große positive Skalarprodukte.

- Vektoren, die in entgegengesetzte Richtungen zeigen, ergeben große negative Skalarprodukte.

- Vektoren im rechten Winkel ergeben ein Skalarprodukt von null.


Skalarprodukt = unnormalisierte Ähnlichkeit. Zwei trainierte Token-Embeddings für cat & dog ergeben ein hohes Skalarprodukt, weil Backpropagation sie zusammengeschoben hat (beide sagen haustierbezogene Kontexte voraus). cat & Tuesday enden nahezu orthogonal, weil sie unterschiedliche Kontexte vorhersagen.


Warum ein Transformer aufmerksam ist

Aktivität 5 (grow_a_language_model_attention) baut Attention aus Dot-Produkten auf: Ein Query-Vektor, der mit Key-Vektoren multipliziert wird, liefert Scores, die angeben, welche vergangenen Tokens für die Vorhersage des nächsten Tokens relevant sind. Embeddings und Dot-Produkte zusammen tragen jede Interaktion innerhalb eines Transformers.

Ähnlichkeit vorhersagen

Nach dem Training ist ANDREA-120M’s Embedding für `believ` (Token-Zeile 4287, hypothetisch) ungefähr mit `know`, `understand`, `learn` ausgerichtet. Ohne exakte Werte zu berechnen, sage eine Reihenfolge vom größten zum kleinsten Dot-Produkt voraus: `believ · know`, `believ · stone`, `believ · understand`. Begründe deine Reihenfolge mit je einem Satz pro Paar.

ANDREA verwendet gelernte Positions-Embeddings

Ein Problem

Ein Token-Embedding sagt einem Modell, welches Wort an dieser Position steht. Es sagt dem Modell jedoch nicht, wo dieses Wort sitzt. Ohne Positionsinformation behandelt ein Transformer the cat sat on a mat und mat a on sat cat the identisch: dieselbe Menge von Tokens, kein Ordnungssignal.


In der Transformer-Literatur gibt es drei Lösungen:


Sinusoidal (Vaswani 2017). Eine feste mathematische Formel basierend auf Sinus- und Kosinusfunktionen. Position 0 erhält einen bestimmten 768-Vektor; Position 1 erhält einen anderen; wird nie trainiert, nie aktualisiert. Generalisiert auf jede Position über die Formel.


RoPE (Rotary Position Embedding). Rotiert Query- und Key-Vektoren basierend auf der Position. Wird von LLaMA, Qwen verwendet. Keine zusätzlichen Parameter; die Rotation ist in den Attention-Mechanismus integriert.


Gelernt. Eine separate Embedding-Tabelle der Form (T, d_model), wobei T eine Kontextlänge ist. Jede Zeile wird per Backpropagation trainiert, genau wie Token-Embeddings.


ANDREAs Wahl: Gelernt

ANDREA übernimmt einen gelernten Positionsansatz von microGPT, der ihn von nanoGPT übernommen hat, der ihn wiederum von GPT-2 geerbt hat. Eine Begründung:


- Einfachheit. Keine spezielle Mathematik in Attention. Eine Positionstabelle sieht aus wie eine Token-Tabelle.

- Kompatibilität mit benutzerdefiniertem CUDA. ANDREAs microgpt_cuda.cu-Engine behandelt zwei Embedding-Lookups identisch; keine Sin/Cos-Kernels nötig.

- Ausreichend für festen Kontext. ANDREA begrenzt T auf 1024. Eine gelernte Tabelle funktioniert gut für Sequenzen fester Länge.


ANDREA-120M Positions-Embedding-Kosten


MengeWert
T (Kontext)1.024
d_model768
Parameter786.432

0,79M Parameter für Positionen. Kombiniert mit Token-Embeddings: 6,49M + 0,79M = 7,27M Embedding-Parameter insgesamt für ANDREA-120M.


Wie sie kombiniert werden

An jeder Position t in einer Eingabesequenz:


x_t = token_embedding[token_id_t] + position_embedding[t]

Zwei 768-Vektoren, elementweise addiert. Das Ergebnis, x_t, fließt in den ersten Transformer-Block. Das Modell trennt sie nie wieder; es lernt, das kombinierte Signal zu nutzen.

Gelernt vs. Sinusförmig

Vergleiche zwei Positions-Embedding-Strategien für ein hypothetisches ANDREA-Modell. Strategie A: gelernt, T = 1024. Strategie B: sinusförmig, T beliebig (funktioniert für jede Sequenzlänge). Nenne jeweils einen Vorteil. Gib dann an, welche Strategie ANDREA wählt und einen Grund aus CUDA-/Engineering-Sicht.

Wo die Embedding-Parameter liegen

Eine vollständige ANDREA-120M-Embedding-Schicht


KomponenteShapeParameter
Token-Einbettungstabelle8.449 × 7686.488.832
Positions-Einbettungstabelle1.024 × 768786.432
Gesamt7.275.264

Rund 7,3 Mio. Parameter. Gesamte Parameteranzahl von ANDREA-120M: ~120 Mio. Allein die Einbettungsschicht: 6 %. Die restlichen 94 % befinden sich in den Transformer-Blöcken (Attention + MLP, behandelt in Aktivitäten 5–7).


Ungebundene vs. gebundene Einbettungen

Viele Transformer-Designs (einschließlich GPT-2) koppeln eine Token-Einbettung mit einer finalen Ausgabeprojektion: dieselbe V × d_model-Matrix wird sowohl am Eingang als auch am Ausgang (Logits über den Wortschatz) verwendet. Das Koppeln spart V × d_model Parameter und verbessert oft die Qualität.


ANDREA verwendet entkoppelte Einbettungen: Eingabe-Einbettung und Ausgabeprojektion werden als separate Matrizen trainiert. Aktivität 7 (grow_a_language_model_transformer_block) behandelt eine finale Schicht.


Ein Forward-Pass bis hierhin

Eingabe: Token-IDs [256, 1842, 7301, ...] (1024 Stück). Jede ID wird zu einem 768-Vektor nachgeschlagen. Jede Position wird zu einem 768-Vektor nachgeschlagen. Elementweise summiert. Ergebnis: eine (1024, 768)-Matrix x aus Token-+-Positionsvektoren. x fließt in Transformer-Block 1.


Aktivität 5 (grow_a_language_model_attention) behandelt, was Block 1 macht: Scaled-Dot-Product-Attention mit kausaler Maske & Softmax.

Vorhersage der Embedding-Struktur

Reflektiere: ANDREA-120M hat 8449 Token-Embeddings & 1024 Positions-Embeddings, die denselben 768-dimensionalen Raum teilen. Was würdest du nach dem Training erwarten: (a) wie eine Token-Embedding-Matrix aussieht (Cluster-Muster?), oder (b) wie eine Positions-Embedding-Matrix aussieht (sanfter Gradient?). Wähle eine Option und prognostiziere in ein oder zwei Sätzen. Es gibt keine falsche Antwort; das Begründen zählt.