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

un

gast
1 / ?
terug naar lessen

Wat een Taalmodel Voorspelt

Een Probabilistische Vervolgengine

Een taalmodel neemt een reeks tokens & wijst een waarschijnlijkheidsverdeling toe over welk token er daarna komt. Voer the cat sat on the in & het geeft waarschijnlijkheden over een gehele woordenschat: hoge massa op mat, floor, couch; lage massa op xylophone, Tuesday.


Bemonster die verdeling, voeg een token toe, & voer het terug: die lus genereert tekst één token tegelijk. Autoregressieve generatie, genoemd omdat elke stap regresseert op zijn eigen eerdere uitvoer.


Drie Getallen Definiëren een Taalmodel


Woordenschatgrootte (V). Hoeveel verschillende tokens een model kan produceren. ANDREA-12M gebruikte 4.353 tokens; ANDREA-120M gebruikt 8.449.


Contextvenster (T). Hoeveel tokens in één forward pass passen. ANDREA-modellen gebruiken T = 1.024.


Aantal parameters (P). Hoeveel geleerde gewichten er binnenin zitten. 12M, 120M, & 480M benoemen een familie naar P.


Een Familie van Drie


Variantd_modelHeadsLayersContextParams
ANDREA-12M384126102412.8M
ANDREA-120M76812121024~120M
ANDREA-480M153624161024~480M

Drie knoppen schalen: d_model (breedte van elke interne vector), n_layer (diepte van gestapelde transformerblokken), n_head (parallelle aandachtsprojecties). Woordenschat & context blijven vast binnen de familie.

De Familietabel lezen

Vergelijk ANDREA-12M (d_model=384, 6 lagen, 12 koppen) met ANDREA-120M (d_model=768, 12 lagen, 12 koppen). Noem twee architectonische assen die schalen van 12M naar 120M, & één die constant blijft. Een zinnetje reden voor elke schaalkeuze helpt.

Waarom Klein Belangrijk Is

Beperking als Bevrijding

Grote taalmodellen met honderden miljarden parameters vereisen duizenden GPU's, proprietary datasets en bedrijfsbudgetten. Weinig mensen kunnen er een trainen. Weinig mensen kunnen er een repareren.


Een klein taalmodel op één GPU keert dat om. Iedereen met een 4090 (of een 3060) kan ANDREA reproduceren vanuit open data. Het trainingsrecept dient tegelijk als modelkaart. Open code, open gewichten, open data; volledige herkomst in 72 uur rekenkracht.


Capaciteit vs Kwaliteit

Kleinere modellen kunnen hun trainingscorpus niet memoriseren. ANDREA-12M, met 12,8M parameters, mist de capaciteit om feitelijke inhoud op te slaan; het leert gespreksstructuur, woordenschatverdeling en responsvorm. ANDREA-120M, met 10× capaciteit, leert feitelijke herinnering, samenhang over meerdere paragrafen en domeinbreedte (geverifieerd door externe beoordeling met 9,5/10 op biologie- en signaalverwerkingssamples).


De kernboodschap: capaciteit stelt een plafond. Het curriculum bepaalt of het plafond wordt bereikt. Activiteiten 14-23 behandelen het curriculum. [TITLE decoder_only/]

Drie Transformer Varianten

Encoder, Decoder, Beide

De originele Transformer (Vaswani et al., 2017) bevatte een encoder & een decoder, aan elkaar gekleefd voor vertaling. Drie architecturale lijnen stammen af van dat artikel:


Encoder-only (BERT-lijn). Bidirectionele aandacht, geen causale maskering. Geoptimaliseerd voor classificatie, niet voor generatie. Een token ziet zowel zijn verleden & zijn toekomst tijdens de training.


Encoder-decoder (T5, BART). Encoder leest de input; decoder genereert de output, met aandacht voor de encoder via cross-attention. Gebruikt voor vertaling, samenvatting.


Decoder-only (GPT, ANDREA). Causal mask: elk token ziet alleen zijn verleden. Getraind om het volgende token te voorspellen. Generatie komt gratis; training & inferentie delen dezelfde forward pass.


Waarom Decoder-Only Wint op Eén GPU

Drie redenen:


1. Enkelvoudig doel. Next-token voorspelling werkt op elke tekst. Geen gepaarde bron/doel nodig.

2. Symmetrie tussen training & inferentie. Dezelfde forward pass, geen speciale generatielogica.

3. Eenvoud van geheugen. Geen cross-attention; één stack van lagen; één stroom van activaties.


ANDREA erft de decoder-only keuze over van microGPT, die het overnam van nanoGPT, die het weer overnam van GPT-2. De lijn blijft standaard; wat verandert zit in tokenization, traininginfrastructuur, & curriculum.

Waarom Decoder-Only voor ANDREA

Geef één reden vanuit een training-data perspectief & één reden vanuit een inferentie-gedrag perspectief waarom ANDREA een decoder-only transformer gebruikt in plaats van een encoder-decoder zoals T5.

Wat past in 24 GB

Bytes Per Parameter

Een RTX 4090 wordt geleverd met 24 GB VRAM. De training van ANDREA-12M gebruikte 1,4 GB. ANDREA-120M gebruikte aanzienlijk meer. Het verschil komt neer op een eenvoudige boekhoudkundige oefening: elke parameter verschijnt meerdere keren in het geheugen tijdens de training.


Voor elke parameter houdt training vast:

- Het gewicht zelf (1× gewicht)

- Adam eerste moment (m): dezelfde vorm als gewicht (1× gewicht)

- Adam tweede moment (v): dezelfde vorm als gewicht (1× gewicht)

- Gradienten: dezelfde vorm als gewicht (1× gewicht)

- Activaties & tijdelijke waarden: ~2-4× gewicht (varieert met batch & context)


Totaal: ~6-8× het gewichtenaantal, in bytes bepaald door precisie.


Precisie Vermenigvuldigt Alles


PrecisieBytes/paramTotaal voor 120M gewichtenOpmerkingen
FP324480 MBBasislijn; veiligst, traagst
FP162240 MBcuBLAS, helft geheugen
FP8 E4M31120 MBTensor cores, NaN-risico

Vermenigvuldig met 6-8× voor volledige footprint tijdens training. ANDREA-120M traint comfortabel in FP16 (~2 GB voor gewichten + optimizer + grads); FP8 E4M3 halveert trainingstijd op RTX 4090 tensor cores.


Activiteit 13 (grow_a_language_model_precision) behandelt de FP-precisie-afwegingen in detail.

Het bepalen van de grootte van de optimizer-status van ANDREA-120M

ANDREA-120M heeft ~120.000.000 parameters. Elk FP32-gewicht занимает 4 bytes. AdamW slaat twee extra optimizer-status floats op per gewicht (m, v). Bereken: (a) alleen gewichten in FP32, in MB; (b) gewichten + optimizer-status in FP32, in MB; (c) gewichten + optimizer-status in FP16, in MB. Toon je berekening.

Vijfentwintig Activiteiten

Twee Helften

Deze cursus splitst netjes op. De eerste helft behandelt wat microGPT aan het veld heeft geleerd: een transformer die draait op één GPU. De tweede helft behandelt ANDREA's echte bijdrage: een curriculum dat leert.


Helft 1: Een Transformer op Eén GPU (activiteiten 2-13)


#ActiviteitBeat
2Harris morfeem tokenizerdistributionele segmentatie, 256+N+1 vocab
3Tokenizer-dieet uitlijningverzadigingspunt, waarom 12M 63,6% verspild
4Embeddings & positiegeleerde token + positielookup
5Geschaalde dot-product aandachtQ·Kᵀ/√d, causale masker, softmax
6Multi-head aandachthead-splitsingen, parallelle projecties
7TransformerblokMLP, residualen, laag normalisatie
8Cross-entropy & perplexitylog-wahrscheinlichheid, SMMA-verlies
9Backprop in custom CUDAketenregel over microgpt_cuda.cu
10AdamWontkoppelde weight decay; waarom vanilla Adam faalde
11LR warmup + cosine decay2000-stap ramp; waarom instant piek 120M vernietigt
12Gradient clippingglobale L2-norm; 3 CUDA-kernels
13FP32 / FP16 / FP8 E4M3precisie-afwegingen; tensor cores

Helft 2: Een Curriculum Dat Leert (activiteiten 14-24)


#ActiviteitBeat
14Multi-armed banditsUCB1, exploratie vs exploitatie
15Fase-gebaseerde dobbelsteencontrole7/14/21/28/42 fasen, 1d3/1d4 dobbelstenen
16Beloningsattributie & EMAper-bron verlies EMA, 1000× schaling
17Bronvloeren & epoch-straf1/(1+epochs) voorkomt memoriseren
18Dekkingsbonusdoc-niveau tracking, 1.3× versheid
19Curriculumsopwarming7 chat/proza bronnen eerste 20K stappen
20Filteren op vorm, niet tekenshas_system_prompt_shape()
21Coherence-gated early stoppingbigram/trigram/word/char auto-halt
22Checkpoint, hervatten, signalenformaat, SIGTERM/SIGUSR1, loss.json continuïteit
23Sample audit & externe beoordelingeen run lezen, 9.5/10 territorium
24Van microGPT naar ANDREA-120Mv1 instorting, v2 fixes, v2.5 patch, v3 polish

Plus een metgezel: geometry_of_andrea bekijkt elke laag als geometrie (embedding space, attention als projectie, loss surface, bandit als een wandeling op een discreet simplex).


Voorgestelde Volgorde

Activiteiten 2-13 bouwen een werkende transformer op. Sla door naar deel 2 als je eerder transformers hebt getraind; kom terug wanneer nieuwsgierigheid toeslaat.


Elke activiteit staat zoveel mogelijk op zichzelf. Wiskunde verwijst naar eerdere activiteiten bij naam (zie activiteit 5: scaled dot-product attention). Codeverwijzingen wijzen naar microgpt/microgpt_cuda.cu & microgpt/training_proxy.py in ~/git/uncloseai-cli/.

Waar Wil Je Beginnen?

Kijkend naar de 24 activiteiten + geometrie-companion, noem één activiteit waarmee je wilt beginnen & één reden: voorkennislacune, professionele relevantie, of pure nieuwsgierigheid. Er is geen verkeerd antwoord; het pad door de cursus is van jou.