Learn
Learn: come funziona un LLM, un meccanismo alla volta
Un percorso ordinato che porta dalla frase scritta al token generato, con un solo esempio trasportato dall'inizio alla fine, i calcoli eseguiti a mano e ogni affermazione verificata.
Il percorso parte da una funzione che riceve un input e restituisce un output, e arriva a ricostruire cosa accade dentro un LLM. Serve saper programmare, non serve avere studiato machine learning: l'algebra lineare entra dove serve, nel punto in cui serve.
Fuori perimetro, per scelta: il machine learning classico, le modalità generative diverse dal testo, i tutorial di prodotto e i confronti fra fornitori.
0Orientamento
- 0.1Che cosa calcola davvero un LLMbozza
- 0.2La frase che seguiremo per tutta la sezionepianificato
1Dal testo ai numeri
- 1.1Perché un modello non può leggere caratteripianificato
- 1.2Tokenizzazione: dividere il testo in unità riutilizzabilipianificato
- 1.3Il vocabolario: dal token all'ID interopianificato
- ramoByte-pair encoding, passo per passopianificato
- 1.4Vettori e matrici: contenitori di numeri con una formapianificato
- 1.5La moltiplicazione tra matrici, calcolata a manopianificato
- 1.6Il layer lineare è una moltiplicazione più un biaspianificato
- ramoBroadcasting e regole di formapianificato
- 1.7La tabella di embedding: un ID seleziona un vettorepianificato
- 1.8La posizione va codificata separatamentepianificato
- ramoVarianti di codifica posizionale: sinusoidale, appresa, RoPEpianificato
2Attention
- 2.1Il gap: un vettore, un significato, in ogni frasepianificato
- 2.2Confrontare due vettori: il prodotto scalarepianificato
- 2.3Q, K, V: tre matrici di pesi applicate allo stesso inputpianificato
- 2.4La matrice dei punteggi: Q per K trasposta in un solo prodottopianificato
- 2.5Scaling per la radice di d e softmax riga per rigapianificato
- 2.6Il risultato: pesi per V, ancora una moltiplicazionepianificato
- 2.7Il mascheramento causale: meno infinito sulla metà superiorepianificato
- 2.8Tutta l'attention in tre moltiplicazioni: le forme completepianificato
- 2.9Multi-head: le stesse operazioni ripetute in parallelopianificato
- ramoAttention efficiente: MQA, GQA, finestra scorrevole, FlashAttentionpianificato
3Il blocco Transformer
- 3.1Il feed-forward: due moltiplicazioni con una non linearità in mezzopianificato
- 3.2Le connessioni residue: perché l'input viene risommatopianificato
- 3.3La normalizzazione: tenere la scala utilizzabilepianificato
- 3.4Impilare i blocchi: cosa aggiunge la profonditàpianificato
- 3.5La testa di output: una moltiplicazione contro la matrice del vocabolariopianificato
- 3.6Softmax: dai logit alle probabilitàpianificato
- ramoVarianti architetturali: encoder-only, encoder-decoder, mixture of expertspianificato
4Generazione
- 4.1Il ciclo autoregressivo: un token alla voltapianificato
- 4.2Il campionamento: greedy, temperatura, top-k, top-ppianificato
- 4.3La finestra di contesto: cosa il modello può vederepianificato
- 4.4La KV cache: perché il secondo token costa menopianificato
- 4.5Condizioni di arresto e token di fine sequenzapianificato
- ramoDecodifica speculativa, batching, latenza e throughputpianificato
5Addestramento
- 5.1Il gap: finora ogni peso era arbitrariopianificato
- 5.2L'obiettivo: predire il token successivopianificato
- 5.3Cross-entropy: da una predizione a un numero solopianificato
- 5.4Il gradiente: quale direzione abbassa la losspianificato
- 5.5Il gradiente di una matrice di pesi ha la stessa forma della matricepianificato
- 5.6Backpropagation: riportare il segnale attraverso i layerpianificato
- 5.7Il passo dell'optimizer: SGD e Adampianificato
- 5.8Il ciclo di addestramento: batch, step, checkpointpianificato
- 5.9Il pretraining su larga scala: dati, calcolo, scaling lawpianificato
- ramoLearning rate e inizializzazionepianificato
- ramoRegolarizzazione: weight decay e dropoutpianificato
- ramoLeggere un addestramento: curve di loss e unità mortepianificato
6Adattamento
- 6.1Che cosa è un modello base, e che cosa non èpianificato
- 6.2Fine-tuning supervisionato: insegnare un formato di rispostapianificato
- 6.3Template di chat e token specialipianificato
- 6.4Allineamento alle preferenze: RLHF e DPOpianificato
- 6.5LoRA e PEFT: adattare senza muovere ogni pesopianificato
- ramoFine-tuning quantizzato e distillazionepianificato
7I sistemi intorno al modello
- 7.1Il prompt è condizionamento, non istruzionepianificato
- 7.2System prompt e separazione dei ruolipianificato
- 7.3Output strutturato e decodifica vincolatapianificato
- 7.4Recupero: mettere fatti dentro la finestra di contestopianificato
- ramoEmbedding per il recupero, chunking, ricerca vettoriale, rerankingpianificato
- 7.5Tool use: il modello emette una chiamata, il sistema la eseguepianificato
- 7.6Agenti: ciclo, stato e terminazionepianificato
- 7.7Valutazione: definire e misurare "migliore"pianificato
- 7.8Costo, latenza, quantizzazione: i compromessi ingegneristicipianificato
- ramoPrompt injection e il confine di fiduciapianificato
8Ricostruzione
- 8.1Il percorso completo, dalla frase inizialepianificato
- 8.2Cosa un LLM non fa: l'allucinazione come meccanismopianificato
- 8.3Dove andare adesso: LearnGPT e gli approfondimentipianificato
- ramoTutte le forme di un forward pass, dalla stringa ai logitpianificato