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

un

gäst
1 / ?

Vad en Språkmodell Förutsäger

En Probabilistisk Fortsättningsmotor

En språkmodell tar en sekvens av tokens & tilldelar en sannolikhetsfördelning över vilken token som kommer nästa. Mata in the cat sat on the & den ger ut sannolikheter över hela vokabulären: hög massa på mat, floor, couch; låg massa på xylophone, Tuesday.


Sampling av den fördelningen, bifoga en token, & mata tillbaka den: den loopen genererar text en token i taget. Autoregressiv generering, namngiven eftersom varje steg regredierar på sin egen tidigare utdata.


Tre siffror definierar en språkmodell


Ordlista storlek (V). Hur många distinkta tokens en modell kan producera. ANDREA-12M använde 4 353 tokens; ANDREA-120M använder 8 449.


Kontextfönster (T). Hur många tokens som ryms i en forward pass. ANDREA-modeller använder T = 1 024.


Parameterräkning (P). Hur många inlärda vikter som finns inuti. 12M, 120M & 480M namnger en familj efter P.


En familj med tre


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

Tre reglage som skalar: d_model (bredd på varje intern vektor), n_layer (djup på stapplade transformerblock), n_head (parallella uppmärksamhetsprojektioner). Vokabulär & kontext förblir fasta inom familjen.

Läsa Familjetabellen

Jämför ANDREA-12M (d_model=384, 6 lager, 12 huvuden) mot ANDREA-120M (d_model=768, 12 lager, 12 huvuden). Nämn två arkitektoniska axlar som skalar från 12M till 120M, & en som förblir konstant. En ensam mening som skäl för varje skalningsval hjälper.

Varför det lilla är viktigt

Begränsning som Befrielse

Stora språkmodeller med hundratals miljarder parametrar kräver tusentals GPU:er, proprietära dataset och företagsbudgetar. Få personer får träna en. Få personer får reparera en.


En liten språkmodell på en GPU vänder upp och ner på det. Vem som helst med en 4090 (eller en 3060) kan reproducera ANDREA från öppen data. Träningsreceptet fungerar också som modellkortet. Öppen kod, öppna vikter, öppen data; full härkomst i 72 timmars beräkning.


Kapacitet vs Kvalitet

Mindre modeller kan inte memorera sitt träningskorpus. ANDREA-12M, med 12,8M parametrar, saknar kapaciteten att lagra faktainnehåll; den lär sig turstruktur, vokabulärfördelning och svarsform. ANDREA-120M, med 10× kapacitet, lär sig faktaminne, flerstyckscoherens och domänbredd (verifierat genom extern bedömning på 9,5/10 på biologi- och signalbehandlingsexempel).


Slutsatsen: kapacitet sätter en takhöjd. Läroplanen avgör om takhöjden nås. Aktiviteter 14-23 täcker läroplanen. [TITLE decoder_only/]

Tre Transformer-varianter

Encoder, Decoder, Båda

Den ursprungliga Transformern (Vaswani et al., 2017) levererades med en encoder & en decoder, klistrade ihop för översättning. Tre arkitektoniska linjer härstammar från den artikeln:


Encoder-only (BERT-linjen). Bidirektionell uppmärksamhet, ingen kausal mask. Optimerad för klassificering, inte generering. En token ser både sin förflutna & sin framtid under träning.


Encoder-decoder (T5, BART). Kodaren läser inmatningen; dekodaren genererar utmatningen och uppmärksammar kodaren via korsuppmärksamhet. Används för översättning, sammanfattning.


Decoder-only (GPT, ANDREA). Kausal mask: varje token ser bara sitt förflutna. Tränas för att förutsäga nästa token. Generering kommer gratis; träning & inferens delar samma forward pass.


Varför Decoder-Only vinner på en GPU

Tre skäl:


1. Enkel målsättning. Nästa-token-förutsägelse fungerar på all text. Ingen parvis källa/mål behövs.

2. Symmetri mellan träning & inferens. Samma forward pass, ingen speciell genereringslogik.

3. Enkel minneshantering. Ingen cross-attention; en stapel lager; ett flöde av aktiveringar.


ANDREA ärver valet av enbart decoder från microGPT, som ärvde från nanoGPT, som ärvde från GPT-2. Linjen förblir standard; det som förändras finns i tokenisering, träningsinfrastruktur & läroplan.

Varför enbart Decoder för ANDREA

Ge ett skäl från ett träningdata-perspektiv & ett skäl från ett inferensbeteende-perspektiv varför ANDREA använder en decoder-enbart transformer istället för en encoder-decoder som T5.

Vad får plats i 24 GB

Byte per parameter

En RTX 4090 levereras med 24 GB VRAM. ANDREA-12M-träning använde 1,4 GB. ANDREA-120M använde betydligt mer. Skillnaden beror på en enkel redovisningsövning: varje parameter dyker upp flera gånger i minnet under träning.


För varje parameter håller träning:

- Vikten själv (1× vikt)

- Adam första moment (m): samma form som vikt (1× vikt)

- Adam andra moment (v): samma form som vikt (1× vikt)

- Gradienter: samma form som vikt (1× vikt)

- Aktiveringar & temporärer: ~2-4× vikt (varierar med batch & kontext)


Totalt: ~6-8× viktantalet, i byte bestämt av precision.


Precision multiplicerar allt


PrecisionBytes/paramTotal för 120M vikterAnmärkningar
FP324480 MBBaslinje; säkrast, långsammast
FP162240 MBcuBLAS, hälften minne
FP8 E4M31120 MBTensor cores, NaN-risk

Multiplicera med 6-8× för fullständigt träningsminnesavtryck. ANDREA-120M tränas bekvämt i FP16 (~2 GB för vikter + optimizer + grads); FP8 E4M3 halverar träningstiden på RTX 4090 tensor cores.


Aktivitet 13 (grow_a_language_model_precision) går igenom FP-precisionens avvägningar i detalj.

Dimensionering av ANDREA-120M:s optimizer-tillstånd

ANDREA-120M har ~120 000 000 parametrar. Varje FP32-vikt upptar 4 byte. AdamW lagrar två extra optimizer-tillståndsfloat per vikt (m, v). Beräkna: (a) endast vikter i FP32, i MB; (b) vikter + optimizer-tillstånd i FP32, i MB; (c) vikter + optimizer-tillstånd i FP16, i MB. Visa din aritmetik.

Tjugofem aktiviteter

Två halvor

Denna kurs delas rent upp. Första halvan täcker vad microGPT lärde ut fältet: en transformer som körs på en GPU. Andra halvan täcker ANDREA:s verkliga bidrag: en läroplan som lär.


Halva 1: En transformer på en GPU (aktiviteter 2-13)


#AktivitetSlag
2Harris morfemtokenseraredistributionell segmentering, 256+N+1 vocab
3Tokenserare-diet-justeringmättnadspunkt, varför 12M slösade 63,6%
4Inbäddningar & positioninlärd token + positionsuppslag
5Skalad prickprodukt-attentionQ·Kᵀ/√d, kausal mask, softmax
6Multi-head attentionhuvuduppdelningar, parallella projektioner
7TransformerblockMLP, residualer, lagernorm
8Korsentropi & perplexitetlog-sannolikhet, SMMA-förlust
9Backprop i anpassad CUDAkedjeregel över microgpt_cuda.cu
10AdamWdecouplad viktdegradation; varför vanliga Adam dog
11LR-uppvärmning + cosinusnedgång2000-stegs ramp; varför omedelbar topp förstör 120M
12Gradientklippningglobal L2-norm; 3 CUDA-kärnor
13FP32 / FP16 / FP8 E4M3precisionerbyt; tensor cores

Halva 2: Ett läroplan som lär sig (aktiviteter 14-24)


#AktivitetSlå
14Multi-armed banditsUCB1, utforskning vs utnyttjande
15Fasbaserad tärningskontroll7/14/21/28/42 faser, 1d3/1d4 tärningar
16Belöningsattribution & EMAper-källförlust EMA, 1000× skalning
17Källgolven & epokstraff1/(1+epoker) förhindrar memorering
18Täckningsbonusdokumentnivåspårning, 1.3× aktualitet
19Läroplansuppvärmning7 chatt/prosa källor första 20K stegen
20Filtrering efter form, inte teckenhas_system_prompt_shape()
21Kohärensbaserad tidig stoppningbigram/trigram/word/char auto-halt
22Kontrollpunkt, återuppta, signalerformat, SIGTERM/SIGUSR1, loss.json kontinuitet
23Provgranskning & extern bedömningläsa en körning, 9.5/10 territorium
24Från microGPT till ANDREA-120Mv1 kollaps, v2 fixar, v2.5 patch, v3 polering

Plus en följeslagare: geometry_of_andrea betraktar varje lager som geometri (embedding space, attention som projektion, loss surface, bandit som en promenad på en diskret simplex).


Föreslagen ordning

Aktiviteterna 2-13 bygger en fungerande transformer. Hoppa fram till del 2 om du har tränat transformatorer tidigare; kom tillbaka när nyfikenheten slår till.


Varje aktivitet står för sig så långt det är möjligt. Matematikreferenser hänvisar till tidigare aktiviteter vid namn (se aktivitet 5: scaled dot-product attention). Kodreferenser pekar på microgpt/microgpt_cuda.cu & microgpt/training_proxy.py i ~/git/uncloseai-cli/.

Var kommer du att börja?

Med tanke på de 24 aktiviteterna + geometri-kompanjonen, namnge en aktivitet du vill börja med & en anledning: tidigare kunskapslucka, yrkesmässig relevans, eller ren nyfikenhet. Det finns inget fel svar; vägen genom kursen tillhör dig.