Artificial Intelligence and Language Processing

Anno accademico 2026/2027 - Docente: MISAEL MONGIOVI'

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione (knowledge and understanding): Lo studente acquisirà una solida conoscenza teorica dei principali modelli e metodi avanzati per l'elaborazione del linguaggio naturale, con particolare attenzione alle architetture neurali moderne (Transformer, Mixture-of-Experts), alle tecniche di addestramento supervisionato e per preferenze umane (es. RLHF, DPO), e agli approcci per migliorare l'efficienza computazionale nei LLM.

Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): Lo studente sarà in grado di applicare le conoscenze teoriche acquisite per progettare, sviluppare e valutare sistemi di NLP avanzati utilizzando ambienti di programmazione moderni (es. PyTorch, Hugging Face). Sarà capace di costruire pipeline complete per il fine-tuning di modelli linguistici, di progettare architetture RAG per il recupero e la generazione di informazioni, e di mettere in pratica tecniche di efficienza e allineamento per l'utilizzo responsabile e ottimizzato di modelli linguistici.

Autonomia di giudizio (making judgements): Durante il corso, lo studente svilupperà la capacità di valutare criticamente le scelte architetturali e metodologiche legate alla costruzione di modelli NLP complessi. Sarà in grado di interpretare metriche di valutazione, di analizzare trade-off computazionali ed etici (come bias e trasparenza) e di selezionare in modo autonomo gli strumenti e i modelli più appropriati in base al contesto applicativo e ai vincoli progettuali.

Abilità comunicative (communication skills): Lo studente acquisirà competenze nella comunicazione tecnica, sia in forma scritta che orale. Saprà esporre con chiarezza i processi di progettazione, addestramento e validazione di modelli linguistici, motivando le scelte effettuate con un linguaggio tecnico adeguato e rigoroso.

Capacità di apprendimento (learning skills): Lo studente sarà messo nelle condizioni di apprendere in modo autonomo nuove tecnologie, modelli e strumenti di NLP avanzato. Al termine del corso, disporrà degli strumenti concettuali e operativi per proseguire nello studio individuale, nell'aggiornamento continuo e per affrontare attività di ricerca o sviluppo in ambito accademico e industriale.

Modalità di svolgimento dell'insegnamento

L'insegnamento si svolge attraverso lezioni frontali ed esercitazioni guidate. Le lezioni introdurranno i concetti teorici, mentre le esercitazioni ne permetteranno l'applicazione pratica. Le lezioni si svolgeranno in presenza, con modalità frontale. È prevista l'esposizione dei contenuti teorici da parte del docente, con il supporto di slide e lavagna. La partecipazione attiva degli studenti sarà incoraggiata attraverso domande e momenti di discussione in aula.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Il corso richiede la conoscenza della programmazione, delle strutture dati e degli algoritmi, nonché del machine learning e delle tecniche di base di elaborazione del linguaggio naturale. È necessaria una buona comprensione dei concetti fondamentali di Natural Language Processing e Machine Learning.

Frequenza lezioni

Per una comprensione approfondita degli argomenti trattati e delle metodologie presentate, si raccomanda vivamente la regolare partecipazione alle lezioni.

Contenuti del corso

Il corso si apre con una sezione dedicata all'implementazione pratica delle architetture transformer, in cui gli studenti apprenderanno a costruire e addestrare modelli linguistici. Partendo da versioni compatte dei modelli più noti, si affronteranno le fasi di pre-processing, training supervisionato e validazione su corpus testuali. Si introdurranno quindi le principali strategie per aumentare l'efficienza dei modelli di grandi dimensioni: la quantizzazione a 8-bit e 4-bit e le tecniche di fine-tuning parametrico efficiente come LoRA e QLoRA. A seguire, verranno introdotti i principali meccanismi che governano l'addestramento e l'allineamento dei Large Language Model (LLM), con particolare attenzione ad InstructGPT: il fine-tuning supervisionato (SFT), il Direct Preference Optimization (DPO) e le tecniche di Reinforcement Learning from Human Feedback (RLHF) e Reinforcement Learning from Verifiable Reward (RLVR), inclusa la Proximal Policy Optimization (PPO) e la Group Relative Policy Optimization (GRPO). Saranno inoltre discussi i limiti dell'allineamento: over-optimization, sicurezza e considerazioni etiche, inclusi bias e trasparenza. Una parte del corso sarà dedicata alla progettazione di sistemi di Retrieval-Augmented Generation (RAG), dal dense passage retrieval alla generazione, e alla loro valutazione insieme a quella degli LLM. Si affronteranno poi il prompt engineering e l'in-context learning. Successivamente verranno esplorate le architetture e le tecniche di decoding moderne, tra cui i modelli Mixture-of-Experts (MoE), le varianti di attenzione e il constrained decoding. Infine, sarà approfondita la realizzazione di sistemi agentici basati su LLM.

Testi di riferimento

  1. Jurafsky & Martin, Speech and Language Processing (https://web.stanford.edu/~jurafsky/slp3/ed3book_jan26.pdf)
  2. Reinforcement Learning from Human Feedback - A short introduction to RLHF and post-training focused on language models. Nathan Lambert (https://arxiv.org/pdf/2504.12501)
  3. Materiale fornito dal docente (disponibile attraverso la piattaforma del corso)

Programmazione del corso

 ArgomentiRiferimenti testi
1Introduzione e setup ambienti di lavoro
2Implementazione e addestramento di transformer in PyTorch
3Introduzione alla quantizzazione
4Parameter-Efficient Fine Tuning (LoRA, QLoRA)
5Fine-tuning supervisionato (SFT)
6La pipeline InstructGPT: SFT, RM, RLHF mediante PPO
7Direct Preference Optimization (DPO), Group Relative Policy Optimization (GRPO) e RLVR
8Limiti dell'allineamento: over-optimization, sicurezza e considerazioni etiche
9Dense Passage Retrieval e Retrieval-Augmented Generation (RAG)
10Valutazione di sistemi RAG e LLM
11Prompt engineering e In-Context Learning
12Architetture e decoding moderni: Mixture-of-Experts, constrained decoding
13Dagli LLM agli agenti: progettare e costruire sistemi autonomi

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Le conoscenze saranno valutate mediante una prova scritta, seguita da una prova orale che valuterà il progetto e la capacità di applicare le conoscenze acquisite. La prova scritta verterà sui concetti teorici fondamentali, mentre la prova orale includerà la discussione di un progetto pratico sviluppato durante il corso e domande di approfondimento sui contenuti trattati.

Tali prove potranno avere luogo per via telematica, qualora le condizioni lo dovessero richiedere. La prova orale potrà svolgersi il giorno stesso in cui è stata svolta la prova scritta o a distanza di pochi giorni da esso.

La prova d'esame è finalizzata a valutare in modo approfondito la preparazione dello studente, la capacità di analisi e di ragionamento sugli argomenti trattati durante il corso, nonché l'adeguatezza del linguaggio tecnico utilizzato.

La prova orale ha valore integrativo rispetto alla prova scritta e concorre alla determinazione del voto finale in modo inscindibile. Essa non rappresenta un'opportunità di incremento del punteggio, ma un completamento necessario per la valutazione complessiva della preparazione dello studente.

Per l'attribuzione del voto finale si seguiranno di norma i seguenti criteri:

  • non approvato: lo studente non ha acquisito i concetti di base e non è in grado di implementare soluzioni NLP basilari.
  • 18-23: lo studente dimostra una padronanza minima dei concetti di base del corso, le sue capacità di esposizione e di collegamento dei contenuti sono modeste, riesce a implementare semplici pipeline di elaborazione.
  • 24-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di esposizione e di collegamento dei contenuti sono buone, implementa soluzioni con pochi errori e comprende le architetture moderne.
  • 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di esporli compiutamente e di collegarli con spirito critico; implementa soluzioni complete e innovative, dimostra piena comprensione delle implicazioni etiche e tecniche.

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI (prof.ssa Daniele) e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative.

Esempi di domande e/o esercizi frequenti

  • Descrivere l'architettura Transformer e il meccanismo di self-attention
  • Spiegare la differenza tra DPO e PPO nell'allineamento dei modelli linguistici
  • Illustrare le tecniche di quantizzazione e i loro vantaggi/svantaggi
  • Confrontare LoRA e QLoRA come tecniche di fine-tuning efficiente
  • Descrivere l'architettura Mixture-of-Experts e i suoi benefici computazionali

Si precisa che tali domande hanno carattere puramente indicativo: le domande effettivamente proposte in sede d'esame potranno divergere, anche in modo significativo, da quelle riportate in questa lista.