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

un

ospite
1 / ?
torna alle lezioni

Cosa Predice un Modello Linguistico

Un Motore di Continuazione Probabilistica

Un modello linguistico prende una sequenza di token & assegna una distribuzione di probabilità su quale token viene dopo. Alimentalo con the cat sat on the & esso outputta probabilità su tutto il vocabolario: alta massa su mat, floor, couch; bassa massa su xylophone, Tuesday.


Campionando quella distribuzione, aggiungendo un token, & reinserendolo: quel ciclo genera testo un token alla volta. Generazione autoregressiva, chiamata così perché ogni passo regredisce sul proprio output precedente.


Tre Numeri Definiscono un Modello Linguistico


Dimensione del vocabolario (V). Quanti token distinti un modello può produrre. ANDREA-12M usava 4.353 token; ANDREA-120M usa 8.449.


Finestra di contesto (T). Quanti token entrano in un forward pass. I modelli ANDREA usano T = 1.024.


Numero di parametri (P). Quanti pesi appresi vivono all'interno. 12M, 120M e 480M nominano una famiglia per P.


Una Famiglia di Tre


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

Tre manopole di scala: d_model (larghezza di ogni vettore interno), n_layer (profondità dei blocchi transformer impilati), n_head (proiezioni di attenzione parallele). Vocabolario e contesto rimangono fissi nella famiglia.

Leggendo la Tabella della Famiglia

Confronta ANDREA-12M (d_model=384, 6 layer, 12 heads) con ANDREA-120M (d_model=768, 12 layer, 12 heads). Nomina due assi architetturali che scalano da 12M a 120M, & uno che rimane costante. Una ragione di una frase per ciascuna scelta di scaling aiuta.

Perché il Piccolo Conta

Il Vincolo come Liberazione

I grandi modelli linguistici con centinaia di miliardi di parametri richiedono migliaia di GPU, dataset proprietari e budget aziendali. Poche persone possono addestrarne uno. Poche persone possono ripararne uno.


Un piccolo modello linguistico su una singola GPU ribalta tutto questo. Chiunque abbia una 4090 (o una 3060) può riprodurre ANDREA da dati aperti. La ricetta di addestramento funge anche da model card. Codice aperto, pesi aperti, dati aperti; piena provenienza in 72 ore di calcolo.


Capacità vs Qualità

I modelli più piccoli non possono memorizzare il loro corpus di addestramento. ANDREA-12M, con 12,8M parametri, manca della capacità di memorizzare contenuti fattuali; impara la struttura dei turni, la distribuzione del vocabolario e la forma della risposta. ANDREA-120M, con capacità 10× maggiore, impara il richiamo fattuale, la coerenza multi-paragrafo e l'ampiezza del dominio (verificato tramite valutazione esterna con 9,5/10 su campioni di biologia e elaborazione del segnale).


Il takeaway: la capacità stabilisce un soffitto. Il curriculum decide se il soffitto viene raggiunto. Le attività 14-23 coprono il curriculum. [TITLE decoder_only/]

Tre Varianti del Transformer

Encoder, Decoder, Entrambi

Il Transformer originale (Vaswani et al., 2017) includeva un encoder e un decoder, uniti insieme per la traduzione. Tre linee architetturali discendono da quel paper:


Encoder-only (linea BERT). Attenzione bidirezionale, nessuna maschera causale. Ottimizzato per la classificazione, non per la generazione. Un token vede sia il suo passato che il suo futuro durante l'addestramento.


Encoder-decoder (T5, BART). L'encoder legge l'input; il decoder genera l'output, prestando attenzione all'encoder tramite cross-attention. Usato per traduzione, summarizzazione.


Decoder-only (GPT, ANDREA). Maschera causale: ogni token vede solo il suo passato. Addestrato a prevedere il token successivo. La generazione è gratuita; addestramento & inferenza condividono lo stesso forward pass.


Perché Decoder-Only Vince su una GPU

Tre ragioni:


1. Singolo obiettivo. La previsione del token successivo funziona su qualsiasi testo. Non serve paired source/target.

2. Simmetria tra training e inferenza. Stesso forward pass, nessuna logica di generazione speciale.

3. Semplicità della memoria. Nessuna cross-attention; un solo stack di layer; un solo flusso di attivazioni.


ANDREA eredita la scelta decoder-only da microGPT, che l'ha ereditata da nanoGPT, che l'ha ereditata da GPT-2. La linea di discendenza rimane standard; ciò che cambia risiede nella tokenizzazione, nell'infrastruttura di training e nel curriculum.

Perché Decoder-Only per ANDREA

Dai una ragione da una prospettiva di training-data e una ragione da una prospettiva di comportamento in inferenza per cui ANDREA usa un transformer decoder-only invece di un encoder-decoder come T5.

Cosa Sta in 24 GB

Byte Per Parametro

Una RTX 4090 è dotata di 24 GB di VRAM. L'addestramento di ANDREA-12M ha usato 1,4 GB. ANDREA-120M ne ha usati molti di più. La differenza deriva da un semplice esercizio di contabilità: ogni parametro appare più volte in memoria durante l'addestramento.


Per ogni parametro, l'addestramento mantiene:

- Il peso stesso (1× peso)

- Primo momento di Adam (m): stessa forma del peso (1× peso)

- Secondo momento di Adam (v): stessa forma del peso (1× peso)

- Gradienti: stessa forma del peso (1× peso)

- Attivazioni e temporanei: ~2-4× peso (varia con batch e contesto)


Totale: ~6-8× il conteggio dei pesi, in byte determinati dalla precisione.


La Precisione Moltiplica Tutto


PrecisioneByte/paramTotale per 120M pesiNote
FP324480 MBBaseline; più sicuro, più lento
FP162240 MBcuBLAS, metà memoria
FP8 E4M31120 MBTensor cores, rischio NaN

Moltiplica per 6-8× per l'impronta completa durante l'addestramento. ANDREA-120M si addestra comodamente in FP16 (~2 GB per pesi + ottimizzatore + gradienti); FP8 E4M3 dimezza il tempo di addestramento sui tensor cores di RTX 4090.


L'Attività 13 (grow_a_language_model_precision) esplora in dettaglio i compromessi di precisione FP.

Dimensionamento dello Stato dell'Ottimizzatore di ANDREA-120M

ANDREA-120M ha ~120.000.000 parametri. Ogni peso FP32 occupa 4 byte. AdamW memorizza due float extra per stato ottimizzatore per peso (m, v). Calcola: (a) solo pesi in FP32, in MB; (b) pesi + stato ottimizzatore in FP32, in MB; (c) pesi + stato ottimizzatore in FP16, in MB. Mostra i tuoi calcoli.

Venticinque Attività

Due Metà

Questo corso si divide in modo netto. La prima metà copre ciò che microGPT ha insegnato al campo: un transformer che gira su una singola GPU. La seconda metà copre il contributo reale di ANDREA: un curriculum che impara.


Metà 1: Un Transformer su Una GPU (attività 2-13)


#AttivitàBatteggio
2Tokenizzatore a morfemi Harrissegmentazione distributiva, vocabolario 256+N+1
3Allineamento tokenizer-dietpunto di saturazione, perché 12M sprecati 63.6%
4Embeddings & posizionelookup token + posizione appreso
5Attenzione a prodotto scalareQ·Kᵀ/√d, maschera causale, softmax
6Attenzione multi-headdivisioni head, proiezioni parallele
7Blocco TransformerMLP, residui, normalizzazione layer
8Cross-entropy & perplessitàlog-verosimiglianza, perdita SMMA
9Backprop in CUDA personalizzatoregola della catena attraverso microgpt_cuda.cu
10AdamWdecadimento del peso desacoplato; perché il vanilla Adam è morto
11Riscaldamento LR + decadimento cosenorampa di 2000 step; perché il picco istantaneo distrugge 120M
12Clip del gradientenorma L2 globale; 3 kernel CUDA
13FP32 / FP16 / FP8 E4M3compromessi di precisione; tensor cores

Metà 2: Un Curriculum Che Impara (attività 14-24)


#AttivitàBattuta
14Banditi a bracci multipliUCB1, esplorazione vs sfruttamento
15Controllo dei dadi a fasifasi 7/14/21/28/42, dadi 1d3/1d4
16Attribuzione delle ricompense & EMAEMA della perdita per fonte, scalatura 1000×
17Piani base delle fonti & penalità epoca1/(1+epoche) previene la memorizzazione
18Bonus di coperturatracciamento a livello doc, 1.3× freschezza
19Riscaldamento curricolare7 fonti chat/prosa prime 20K fasi
20Filtro per forma, non caratterihas_system_prompt_shape()
21Arresto anticipato con gate di coerenzabigram/trigram/word/char auto-halt
22Checkpoint, ripresa, segnaliformat, SIGTERM/SIGUSR1, continuità loss.json
23Audit di campione & valutazione esternalettura di una run, territorio 9.5/10
24Da microGPT ad ANDREA-120Mcollasso v1, fix v2, patch v2.5, lucidatura v3

Più un compagno: geometry_of_andrea visualizza ogni layer come geometria (spazio degli embedding, attention come proiezione, superficie di loss, bandit come una passeggiata su un simplesso discreto).


Ordine Suggerito

Le attività 2-13 costruiscono un transformer funzionante. Salta avanti alla metà 2 se hai già addestrato transformer; torna quando la curiosità ti colpisce.


Ogni attività è autonoma dove possibile. I riferimenti matematici citano attività precedenti per nome (vedi attività 5: scaled dot-product attention). I riferimenti al codice puntano a microgpt/microgpt_cuda.cu & microgpt/training_proxy.py in ~/git/uncloseai-cli/.

Da Dove Inizierai?

Guardando le 24 attività + il compagno di geometria, nomina un'attività con cui vuoi iniziare & un motivo: lacuna di conoscenza pregressa, rilevanza professionale, o pura curiosità. Non c'è risposta sbagliata; il percorso nel corso è tuo.