Skip to content

Latest commit

 

History

History
205 lines (166 loc) · 14.9 KB

File metadata and controls

205 lines (166 loc) · 14.9 KB

Paithon Book

Paithon Book: Il Libro di Intelligenza Artificiale che spiega due volte.

Il Libro di Intelligenza Artificiale che spiega due volte. Machine Learning, Deep Learning e Reinforcement Learning con Python: in italiano, gratis, in aggiornamento continuo.

Leggi online DOI 10.5281/zenodo.21947219 Jupyter Book PyTorch Licenza testi CC BY-NC-ND 4.0 Licenza codice Apache 2.0

Questa è la versione online di Paithon Book, di Francesco Messina: un percorso completo (dall'algebra lineare ai Transformer) scritto con la tradizione della divulgazione italiana. Rigoroso nei contenuti, accessibile nel tono.

👉 Leggilo qui: book.paithon.it

Il libro cambia: le sezioni nuove e le correzioni sono registrate, versione per versione, in Aggiornamenti.

Due livelli di lettura

Ogni concetto chiave è spiegato due volte, con un sistema di schede affiancate:

  • Elementare, analogie concrete e quotidiane, zero prerequisiti: deve poterlo leggere uno studente di liceo (o chiunque, sotto l'ombrellone).
  • Superiore, la trattazione formale: definizioni, notazione, formule, riferimenti ai paper originali.

I due livelli si alternano nello stesso capitolo: si può leggere tutto all'Elementare, tutto al Superiore, o saltare dall'uno all'altro. Un interruttore nella barra in alto (icona a due barrette, accanto a ricerca e chiaro/scuro) imposta il livello di partenza di tutto il libro e lo ricorda; aprire una singola scheda al livello opposto resta un'eccezione locale, che non contagia i paragrafi successivi. Per questo ogni livello è scritto per reggersi da solo.

Indice

# Capitolo In breve
1 Introduzione Che cos'è l'AI, da ELIZA a oggi; il primo notebook eseguibile
2 Python Le basi del linguaggio, NumPy, pandas e matplotlib
3 Richiami di matematica Algebra lineare, ottimizzazione, probabilità, teoria dell'informazione, analisi numerica
4 Machine Learning Apprendimento supervisionato, overfitting, metriche, iperparametri, alberi e metodi ensemble (Random Forest, gradient boosting, XGBoost), SVM e kernel trick, riduzione della dimensionalità e clustering (PCA, t-SNE/UMAP, k-means, DBSCAN), distribution shift, processi gaussiani
5 Reti Neurali Percettrone, funzioni di attivazione, backpropagation
6 PyTorch Tensori, autograd, nn.Module, training loop, prestazioni e scala
7 GPU e calcolo parallelo Sotto il cofano: architettura ed esecuzione, gerarchia di memoria, kernel e Triton, GEMM e tensor core, Flash Attention, parallelismo dati/tensor/pipeline e FSDP
8 Deep Learning Reti convoluzionali, ottimizzazione e regolarizzazione, architetture storiche
9 Visione Artificiale Classificazione e transfer learning, data augmentation, apprendimento auto-supervisionato (SimCLR, MoCo, BYOL, DINO, MAE), detection e segmentazione, style transfer
10 Reinforcement Learning MDP, value/policy iteration, Q-learning
11 Deep Reinforcement Learning DQN e policy gradient, actor-critic (A2C/A3C/PPO), controllo continuo (DDPG/TD3/SAC), RL basato su modello (MuZero, Dreamer), offline RL (Decision Transformer), esplorazione e reward hacking
12 Natural Language Processing Strumenti classici, embedding, tokenizzatori a sotto-parole (BPE, WordPiece, SentencePiece), classificazione, n-gram, RNN/LSTM, seq2seq, POS/NER, parsing, dialogo
13 Transformers Self-attention, architettura, Mixture of Experts, GPT/BERT/ViT/CLIP, LLM e scaling, post-training (RLHF/DPO), RAG
14 Attenzione lineare Dall'attenzione quadratica alla ricorrenza lineare; delta rule e gate; DeltaNet, GLA, RetNet, RWKV, xLSTM
15 State Space Model Dai sistemi dinamici a S4; Mamba e il selective scan; dualità SSD, Mamba-2 e Mamba-3; ibridi e limiti
16 Visione e linguaggio Modelli che vedono e parlano: addestramento contrastivo (CLIP, SigLIP), connettori (Flamingo, Q-Former, proiettore), fusione precoce e vocabolario comune, il costo del dettaglio (tessere, documenti), allucinazione visiva e azioni come token
17 Agenti e applicazioni LLM Tool use e ReAct, RAG avanzato (HyDE, reranking, Self-RAG), context engineering, architetture multi-agente e valutazione
18 Prompt, contesto e loop Programmare gli LLM a parole su tre livelli concentrici: prompt engineering (ruoli, few-shot, chain-of-thought, self-consistency), context engineering (le quattro mosse, i guasti del contesto, il PRP), loop engineering (il ciclo con validation gate, split maker/checker, governance)
19 Sistemi multi-agente Quando gli agenti sono molti: il costo del coordinamento (Amdahl, composizione degli errori), topologie (supervisore, lavagna, mercato), protocolli e consenso (Condorcet, dibattito, bizantini), MARL e self-play, sciami (ACO, PSO) e società simulate
20 Audio oltre la voce Dal suono alle feature (spettrogramma, mel, MFCC), classificazione (AudioSet, AST), rappresentazioni auto-supervisionate (wav2vec 2.0, HuBERT), codec neurali (VQ-VAE, RVQ, EnCodec), generazione (WaveNet, AudioLM, MusicGen)
21 Speech Recognition Dalla voce al testo: allineamento e CTC, modelli con attenzione, Whisper, sintesi vocale (TTS)
22 Generative Adversarial Network Il gioco avversario, applicazioni ed evoluzioni
23 Modelli di Diffusione Da DDPM a Stable Diffusion e ai Diffusion Transformer (DiT, Sora)
24 Verosimiglianza esatta I modelli che sanno dire quanto è probabile un dato: autoregressivi sulle immagini (PixelCNN, maschere e punto cieco), flussi normalizzanti (cambio di variabile, RealNVP, GLOW), a che serve la verosimiglianza e dove sbaglia
25 Modelli a energia Il paesaggio invece della probabilità: memoria associativa di Hopfield, macchine di Boltzmann e contrastive divergence, i modi di aggirare la funzione di partizione (Langevin, score matching, NCE), la cornice di LeCun, EBM di oggi (IGEBM, JEM)
26 Auto-supervisione Il segnale fabbricato dai dati: la banda informativa e la torta di LeCun, le quattro famiglie (contrastiva, distillazione, riduzione di ridondanza con Barlow Twins e VICReg, mascheramento), collasso e misura, il dibattito sul rinforzo
27 World Model Simulatori interni: Ha & Schmidhuber, Dreamer, la via di LeCun (JEPA), simulatori video e dibattito
28 Graph Neural Network Dati relazionali e message passing: GCN, GraphSAGE, GAT; node embedding, applicazioni (molecole, raccomandazione, frodi, traffico) e limiti (oversmoothing)
29 Sistemi di Raccomandazione Dal Netflix Prize alla matrix factorization e alla raccomandazione neurale
30 Serie temporali Prevedere dal passato: decomposizione, ARIMA e Holt-Winters, validazione temporale e metriche (MASE, pinball loss), forecasting neurale (TCN, DeepAR, N-BEATS, Transformer, foundation model)
31 Physics-Informed Neural Networks Le equazioni differenziali dentro la loss; operatori neurali
32 MLOps Dal notebook alla produzione: versionamento, pipeline di dati, serving e quantizzazione, metriche di servizio (TTFT, TPOT, goodput), monitoraggio del drift, LLMOps e deploy
33 Interpretabilità e XAI Aprire la scatola nera: modelli trasparenti, importanza delle feature, LIME/SHAP/controfattuali, Grad-CAM e integrated gradients, interpretabilità meccanicistica
34 AI responsabile Equità e bias, privacy (differential privacy, federated learning) e robustezza agli attacchi avversari, sicurezza degli LLM (prompt injection, jailbreak, red teaming), allineamento (RLHF/DPO) e governance (l'AI Act europeo)
35 Conclusioni Bilancio e letture per proseguire

Il framework di riferimento per tutto il codice è PyTorch (con NumPy e scikit-learn dove appropriato). Due capitoli (Introduzione e Attenzione lineare) hanno un notebook eseguibile, con i pulsanti per Colab e per l'esecuzione nel browser (Thebe); negli altri il codice è da leggere e copiare.

Come è fatto

  • Sorgente: book/, Markdown MyST e notebook Jupyter, indice in book/_toc.yml.
  • Figure: SVG geometriche disegnate a mano in book/figures/, su palette fissa (terracotta #B5532C, teal #2D5A5C, ocra #C9A961, warm-black #1A1A1A, cream #F8F5EE). Niente immagini generate, niente stock. Sono numerate per capitolo (Fig. 3.2) e il numero non si scrive a mano: lo calcola book/_ext/pt_figure.py dall'indice. Toccandole si aprono a schermo intero, perché in una colonna da telefono le etichette dentro un diagramma diventano illeggibili.
  • Tema: la firma visiva arriva dal submodule paithon-it/brand (book/_static/brand), con light/dark mode automatica.
  • Bibliografia: book/references.bib, citata nel testo capitolo per capitolo.
  • Deploy: a ogni push su book/ GitHub Actions ricostruisce e pubblica il libro (.github/workflows/call-deploy-book.yml).

Costruire il libro in locale

# 1. Clona il repo (con il submodule del tema, o resti senza firma visiva)
git clone --recurse-submodules https://github.com/paithon-it/paithonbook.git
cd paithonbook

# 2. Installa le dipendenze
pip install -r requirements.txt

# 3. Costruisci
jb build book

# 4. Guarda il risultato
python -m http.server 8080 --directory book/_build/html
# poi apri http://localhost:8080/

Circa 190 pagine in un minuto. I notebook non vengono rieseguiti a ogni build (execute_notebooks: auto esegue solo quelli che non hanno gli output salvati), quindi il tempo è quasi tutto Sphinx.

Se una modifica non compare, la prima sospettata è la cache: jb clean book ricostruisce da zero, e jb build book --all rifà tutte le pagine senza buttare via l'ambiente.

Installate dal requirements.txt, non a mano. pip install jupyter-book oggi vi darebbe la 2, che non è la versione successiva di questo strumento ma un altro programma (si chiama mystmd, non usa Sphinx e con il _config.yml di questo libro non c'entra niente). Il requirements.txt installa teachbooks, che vincola la serie giusta.

Quando conviene buildare

Per correggere un refuso non serve: la CI costruisce a ogni push. Serve invece quando la domanda riguarda qualcosa che il sorgente non dice, e sono più cose di quante sembri:

  • che numero prende una figura. Sono numerate per capitolo (Fig. 3.2) da un'estensione che riscrive i contatori di Sphinx: nel sorgente il numero non c'è, e finché non si builda non esiste;
  • se un {numref} o un {cite} risolve. Un riferimento a un'ancora sbagliata non è un errore di sintassi: la pagina si costruisce lo stesso e il link esce morto. Per stanarli, jb build book -n --all segnala ogni riferimento che non trova destinazione (oggi non ne segnala nessuno);
  • come viene una pagina stampata, che è un rendering diverso da quello a schermo e con regole proprie.

Contribuire

  • ✍️ Seleziona la frase che non torna, direttamente nel libro: compare un pulsante Segnala che apre una issue già compilata con la citazione, la sezione e il file sorgente.
  • 🐛 Oppure apri una issue a mano. Le regole e la concessione di licenza necessaria sono in CONTRIBUTING.md.
  • ✉️ Feedback e proposte: info@paithon.it.
  • ⭐ Se il libro ti è utile, una stella al repo aiuta il progetto a farsi trovare.
  • ❤️ Puoi anche offrire una pizza all'autore.

Come citarlo

Il libro è depositato su Zenodo e ha un DOI: 10.5281/zenodo.21947219. Quello è il DOI di tutte le versioni: apre sempre l'ultima depositata, e da lì si legge il PDF nel browser senza scaricarlo. Ogni versione ne ha poi uno suo, scritto sulla sua scheda, e va usato quando si cita un passaggio che potrebbe cambiare, perché questo libro cambia davvero.

La citazione pronta la dà il pulsante «Cite this repository» nella colonna di destra, che GitHub costruisce da CITATION.cff: quel file non si scrive a mano, lo genera python3 scripts/genera-citazione.py dal registro delle versioni, così il numero non può divergere da quello del libro.

@book{paithonbook,
  author    = {Messina, Francesco},
  title     = {Paithon Book. Il Libro di Intelligenza Artificiale che spiega due volte},
  publisher = {paithon.it},
  year      = {2026},
  doi       = {10.5281/zenodo.21947219},
  url       = {https://book.paithon.it/main/}
}

Licenza

Il progetto adotta un doppio regime di licenza:

  • Testi e figure, CC BY-NC-ND 4.0 (file LICENSE): puoi condividerli citando la fonte, senza usi commerciali né opere derivate. Vale per i .md e i .ipynb sotto book/ e per le SVG in book/figures/.
  • Codice degli esempi, Apache 2.0 (file LICENSE-CODE): puoi usarlo, modificarlo e integrarlo nei tuoi progetti, anche commerciali, mantenendo le note di copyright e di licenza. Include una concessione esplicita di brevetto. Sono i frammenti di codice dentro i capitoli e i notebook.

Tutto il resto del repository, la meccanica del libro (book/_static/, book/_templates/), gli script e i generatori, è © Francesco Messina (paithon.it), tutti i diritti riservati.

Materiale di terzi, con le sue licenze: il tema sphinx-book-theme (BSD-3-Clause), i font Fraunces, Inter e JetBrains Mono (SIL OFL 1.1, il cui testo viaggia con i file nel submodule), e il submodule paithon-it/brand, che ha una licenza propria.

Per contribuire (e per la concessione che serve, dato che la licenza dei testi vieta le opere derivate), vedi CONTRIBUTING.md.

© 2019–2026 Francesco Messina · paithon.it