how-to-train-your-gpt
Build a modern LLM from scratch. Every line commented. Explained like we are five.
Analisi AI · Italiano
openai · gpt-4o-miniSintesi
How to Train Your GPT è una guida interattiva e approfondita che insegna come costruire, addestrare ed eseguire un modello di linguaggio moderno da zero, similmente all'architettura di ChatGPT e LLaMA. La guida, suddivisa in 12 capitoli e oltre 7.500 righe di codice completamente commentato, spiega i concetti fondamentali dell'attention mechanism e altri componenti chiave in modo semplice e accessibile. Include anche 18 approfondimenti dedicati a tecniche specifiche come RoPE, RMSNorm, SwiGLU, AdamW e molto altro, offrendo esempi pratici e spiegazioni dettagliate per sviluppatori Python senza esperienza preliminare di machine learning. Questo progetto rappresenta un percorso educativo completo per chi vuole comprendere internamente i moderni modelli linguistici e sperimentarne la realizzazione pratica.
Casi d'uso
- →Sviluppo didattico per studenti e sviluppatori che vogliono comprendere internamente i modelli di linguaggio come GPT.
- →Formazione di ingegneri software sui moderni meccanismi di attenzione e tecniche di addestramento di LLM senza richiedere conoscenze avanzate di matematica o ML.
- →Prototipazione e testing di architetture Transformer personalizzate e ottimizzate con funzioni aggiornate come RoPE, RMSNorm e SwiGLU.
- →Sperimentazione di tecniche avanzate di training e inferenza per modelli di linguaggio, inclusi warmup cosine, mixed precision e cache KV.
- →Supporto alla ricerca educativa per migliorare la didattica e la trasparenza nella formazione di modelli di linguaggio all'avanguardia.
Idee SaaS / Business
Una piattaforma SaaS che offre corsi interattivi e personalizzati per imparare a costruire modelli di linguaggio da zero, con codice commentato, esercizi live e spiegazioni approfondite basate sulla guida How to Train Your GPT.
Un servizio cloud che consente agli sviluppatori di modificare, testare e addestrare modelli Transformer personalizzati con configurazioni flessibili, supporto GPU e monitoraggio avanzato dell'addestramento in tempo reale.
Una suite di strumenti online che fornisce analisi, visualizzazioni e walkthrough dettagliati per componenti di modelli LLM, facilitando l'insegnamento, la ricerca e la comprensione tecnica tramite interfacce intuitive e esempi concreti.
README · tradotto in italiano
Introduzione
🧠 Come Addestrare il Tuo GPT
Una guida per costruire un modello di linguaggio all'avanguardia partendo da zero. Spiegato come se avessi cinque anni. Costruito come un ingegnere.
Questa guida è stata creata con l'obiettivo di imparare ciò che non era completamente chiaro, specificamente la parte dell'attenzione. Uso l'AI frequentemente per comprendere concetti chiave e verificarli.
📖 Cos'è Questo?
Si tratta di un libro interattivo di oltre 12 capitoli e 7.500 righe che insegna come costruire, addestrare e far funzionare un moderno modello di linguaggio da zero. La medesima famiglia di architetture dietro ChatGPT, Claude, LLaMA e Mistral.
Sono inclusi 18 approfondimenti standalone che spiegano ogni tecnica in dettaglio: RoPE, attention, RMSNorm, SwiGLU, KV cache, AdamW, mixed precision e altro ancora. Inoltre, ci sono due racconti narrativi che seguono passo passo una singola frase attraverso l'intero modello. Ogni file segue uno stile semplice, senza gergo, con esempi di codice eseguibili.
Non leggerai solo dei Transformers, ma scriverai ogni singola riga: tokenizer, embeddings, attenzione, ciclo di training, motore di inferenza. Ogni riga commentata per spiegare cosa fa e perché.
🤔 Perché Esiste
Molti tutorial ML cadono in due errori:
| ❌ Tutorial Troppo Superficiali | ❌ Troppo Accademici | ✅ Questa Guida |
|---|---|---|
model = GPT().fit(data) | Articoli di 40 pagine con notazioni dense | Analogie semplici → codice funzionante |
| Solo chiamate a API | Assume un PhD in ML | Nessuna esperienza ML richiesta |
| Nessuna comprensione interna | Nessun esempio pratico | Ogni linea commentata con COSA e PERCHÉ |
Obiettivo: dopo averla completata conoscerai ed comprenderai perché l'attenzione funziona, come RoPE codifica posizioni relative, perché pre-norm è meglio di post-norm, e il flusso completo dei gradienti.
👥 A Chi È Rivolta
| 🧑💻 Sei... | 📚 Ti Serve... |
|---|---|
| Sviluppatore Python curioso di come funziona ChatGPT | Nozioni base di Python (funzioni, classi, liste). Nessuna esperienza ML |
| Studente che vuole capire profondamente i Transformers | Disponibilità a leggere ~3.500 righe di codice commentato |
| Ingegnere che valuta architetture LLM | Comprendere i compromessi tecnici |
| Chi si è perso nella "attenzione" in altri tutorial | Analogie semplici + esempi numerici concreti |
Prerequisiti: basi di Python (variabili, funzioni, classi, pip). No calcolo, no algebra lineare, no PyTorch richiesti (si impara passo passo).
🗺️ Capitoli
| Capitolo | Cosa Imparerai |
|---|---|
| 0: Panoramica | Cos'è GPT, visione generale |
| 1: Setup | Installare strumenti, GPU vs CPU, basi PyTorch |
| 2: Tokenizzazione | Walkthrough BPE: "unbelievably" diventa token |
| 3: Embeddings | Come i numeri diventano significato |
| 4: Codifica Posizionale | RoPE: rotazione vettori LLaMA |
| 5: Attenzione | Cuore del modello, calcolo Q,K,V, maschera causale |
| 6: Blocco Transformer | RMSNorm, SwiGLU, residui, pre-norm e post-norm |
| 7: Modello GPT Completo | Modello 151M parametri con SwiGLU, weight tying, logits |
| 8: Pipeline Training | Cross-entropy, backprop, AdamW, warmup coseno, precisione mista |
| 9: Inferenza | KV cache, temperatura, top-k/p, beam search |
| 10: Script Completo | File main.py eseguibile unico |
| 11: Glossario | Tavola architettura, parametri |
Inizia sempre da Capitolo 0 e procedi in ordine.
🏗️ Cosa Costruirai
| Componente | Righe | Cosa Comprenderai |
|---|---|---|
| BPE Tokenizer | ~60 | Come GPT-4 segmenta "unbelievably" |
| Embeddings | ~30 | Come "cat" e "dog" hanno vicinanza spaziale |
| RoPE | ~70 | Perché LLaMA ruota i vettori |
| Attenzione Multi-Testa | ~120 | Calcolo completo passo passo |
| Blocco Transformer | ~50 | Perché i residui sono "autostrada del gradiente" |
| GPT Completo | ~200 | Modello di 151M parametri con modi avanzati |
| Pipeline Training | ~250 | AdamW, warmup, precisione mista, accumulo gradiente |
| Inferenza | ~80 | KV cache, temperatura, top-k/p, beam search |
Il cuore del modello è ~860 righe, spiegazioni e diagrammi circa 2.600 righe.
🏛️ Architettura
Questa guida implementa il decoder-only Transformer più recente e noto pubblicamente:
| Tecnica | Modello Origine | Perché è Importante |
|---|---|---|
| RoPE | LLaMA, Mistral, Qwen | Posizione relativa senza parametri appresi |
| RMSNorm | LLaMA, Mistral, Gemma | 15% più veloce di LayerNorm, altrettanto efficace |
| SwiGLU | PaLM, LLaMA, Gemini | Attivazione che filtra informazioni |
| Pre-Norm | GPT-3 e moderni | Training stabile oltre 100 layer |
| AdamW | GPT-3+ | Generalizzazione migliore di Adam base |
| BPE | GPT2/3/4 | Gestione testo qualsiasi, token inesistenti, emoji |
| Weight Tying | GPT2/3 | Risparmio 30% parametri, segnale training migliorato |
| Mixed Precision | Tutti i LLM di produzione | 2× velocità, metà memoria, qualità invariata |
GPT-4 e Claude sono proprietari; qui si insegna l'architettura pubblica migliore di LLaMA 3, Mistral e Qwen 2.5.
🚀 Avvio Veloce
# 1. Clona
git clone https://github.com/raiyanyahya/how-to-train-your-gpt.git
cd how-to-train-your-gpt
# 2. Crea ambiente
python -m venv gpt_env
source gpt_env/bin/activate # Mac/Linux
# gpt_env\Scripts\activate # Windows
# 3. Installa dipendenze (CPU)
pip install torch tiktoken datasets numpy matplotlib --index-url https://download.pytorch.org/whl/cpu
# 4. Verifica GPU (opzionale ma consigliato)
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}')"
# 5. Inizia a leggere!
open chapters/00_overview.md
Per avviare il training:
python main.py
La configurazione di default è un modello piccolo (d_model=256, 4 layer). L'addestramento richiede pochi minuti su CPU. Per un modello grande stile GPT-2 (151M parametri, 12 layer), modificare il config in main.py e abilitare la configurazione grande. Serve GPU.
📓 Notebook Jupyter
Ogni capitolo ha un notebook con codice eseguibile senza spiegazioni, per vedere in tempo reale cosa succede.
pip install jupyter tiktoken torch numpy datasets matplotlib --index-url https://download.pytorch.org/whl/cpu
jupyter notebook notebooks/02_tokenization.ipynb
I notebook risiedono nella cartella notebooks/. Apri uno e usa Cell → Run All.
📚 Approfondimenti Tematici
Ogni concetto ha un approfondimento nel folder explanations and examples WIP/, scritto con linguaggio semplice e esempi eseguibili.
| Argomento | File | Contenuto |
|---|---|---|
| RoPE | rope.md | Codifica posizioni tramite rotazioni |
| Attenzione | attention.md | Esempio passo passo con 3 token |
| BPE Tokenization | bpe_tokenization.md | Da testo a token |
| Embeddings | embeddings.md | Numeri che rappresentano significato |
| RMSNorm | rmsnorm.md | Normalizzazione più semplice e veloce |
| SwiGLU | swiglu.md | Attivazione con gating migliore di ReLU |
| Maschera Causale | causal_masking.md | Nessuna visione del futuro |
| Residui | residual_connections.md | Percorso dei gradienti |
| KV Cache | kv_cache.md | Accelerare la generazione |
| Sampling | sampling.md | Parametri di campionamento |
| Precisione Mista | mixed_precision.md | Velocità senza perdita di qualità |
| AdamW | adamw.md | Ottimizzatore per LLM |
| Weight Tying | weight_tying.md | Matrice condivisa per più scopi |
| Clipping Gradiente | gradient_clipping.md | Prevenire esplosioni durante training |
| Cosine Warmup | cosine_warmup.md | Programma di learning rate |
| Pre-Norm | pre_norm.md | Dove normalizzare |
| Un Token in Viaggio | a_tokens_journey.md | Una frase segue i layer |
| La Storia Completa | the_complete_story.md | Narrazione completa in 22 parti |
📖 Come Leggere
Ogni capitolo segue 4 passi:
| Passo | Formato | Scopo |
|---|---|---|
| 1️⃣ Analogia | Linguaggio semplice | Costruire intuizione prima della matematica |
| 2️⃣ Esempio | Numeri reali | Vedere cosa succede esattamente |
| 3️⃣ Codice Annotato | Commenti WHAT e WHY | Capire ogni scelta |
| 4️⃣ Diagramma | Diagrammi Mermaid o ASCII | Visualizzare flusso dati |
Se ti perdi nel codice, torna all’analogia. Se la matematica confonde, vai all'esempio.
✨ Cosa Rende Questa Diversa
| Aspetto | Tutorial Tipico | Questa Guida |
|---|---|---|
| Profondità Spiegazioni | "l'attenzione aiuta" | Esempio 8 step + matematica e visualizzazioni |
| Commento Codice | Pochi o nessuno | Ogni riga WHAT e WHY |
| Tecniche Moderne | Stile GPT-2 (2019) | Stile LLaMA 3 (2024): RoPE, RMSNorm, SwiGLU |
| Training | Usa Trainer di HuggingFace | Loop personalizzato completo |
| Inferenza | model.generate() | Parametri di sampling e KV cache spiegati |
| Pubblico | Ingegneri ML | Sviluppatori Python senza esperienza ML |
| Diagrammi | Nessuno | Diagrammi Mermaid + matrici ASCII |
🎯 Competenze Acquisite
- Spiegherai come GPT-4 tokenizza con BPE
- Capirai perché RoPE, RMSNorm e SwiGLU sono innovativi
- Calcolerai l’attenzione per una frase con 3 token
- Debuggerai loop di training Transformer
- Sceglierai parametri di sampling adattivi
- Capirai l’importanza della cache KV per inferenza
- Leggerai paper ML moderni con confidenza
🔮 Passi Successivi Dopo Aver Finito
| Esperimento | Modifica | Cosa Imparerai |
|---|---|---|
| Modello più grande | num_layers 12 → 24 | Profondità migliora il ragionamento |
| Più dati | Aggiungi BookCorpus, C4, The Pile | Effetto qualità e varietà dati |
| Flash Attention | Installa flash-attn, cambia attenzione | Addestramento 2-5× più veloce |
| Grouped Query Attention | num_kv_heads < num_heads | Efficienza inferenza Mistral |
| Fine-tuning LoRA | Aggiungi adapter low-rank | Personalizzare senza ri-addestrare tutto |
| RLHF / DPO | Aggiungi modello premio | Come ChatGPT impara istruzioni |
| KV Cache | Implementa memoria persistente |
Attività commit · ultime 26 settimane
stimaApprofondimenti AI
Chiedi al repo
AI · contesto README + issueFai una domanda sul progetto. L'AI legge README e issue recenti.
Hai bisogno di un server per far girare raiyanyahya/how-to-train-your-gpt?
Abbiamo testato decine di provider e Hostinger VPS è il miglior rapporto qualità/prezzo per self-hostare le repo che trovi qui. Setup in 1 click, pannello semplice e supporto 24/7.
Questo progetto esiste grazie a voi
RepoRadar AI è gratis e senza pubblicità. Le donazioni coprono server, API e modelli AI.
Ogni analisi tradotta che leggi costa qualche centesimo di chiamate al modello. Se RepoRadar ti ha fatto risparmiare tempo, considera una piccola donazione cripto — anche pochi euro aiutano a mantenere il servizio libero per tutti.
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8rEtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3ajGrazie di cuore — ogni contributo conta.