DEEP LEARNING FOR NATURAL LANGUAGE PROCESSING
- Anno accademico
- 2026/2027 Programmi anni precedenti
- Titolo corso in inglese
- DEEP LEARNING FOR NATURAL LANGUAGE PROCESSING
- Codice insegnamento
- CM0624 (AF:577098 AR:323992)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- INF/01
- Periodo
- I Semestre
- Anno corso
- 2
- Sede
- VENEZIA
- Spazio Moodle
- Link allo spazio del corso
Inquadramento dell'insegnamento nel percorso del corso di studio
Il programma è organizzato in cinque blocchi.
Blocco 1 — Fondamenti del NLP e modellazione statistica
Il primo blocco introduce i principali problemi del Natural Language Processing e gli strumenti matematici e computazionali necessari per affrontarli.
Argomenti:
- introduzione al NLP e ai Large Language Models;
- fondamenti matematici e dell’apprendimento automatico;
- elaborazione e tokenizzazione del testo;
- regressione logistica e classificazione testuale;
- modelli linguistici n-gram.
Blocco 2 — Rappresentazioni neurali e modelli sequenziali
Il secondo blocco introduce le rappresentazioni apprese e i modelli neurali per l’elaborazione di sequenze linguistiche.
Argomenti:
- modelli linguistici neurali feed-forward;
- rappresentazioni latenti delle parole;
- programmazione NLP con PyTorch;
- reti neurali ricorrenti;
- modelli sequence-to-sequence;
- attenzione classica e self-attention.
Blocco 3 — Transformer e modellazione generativa
Il terzo blocco presenta l’architettura Transformer e le principali famiglie di modelli pretrained.
Argomenti:
- architettura Transformer;
- configurazioni encoder-only, decoder-only ed encoder–decoder;
- modalità di pretraining;
- generazione del linguaggio;
- modelli text-to-text, incluso T5;
- fine-tuning di modelli Transformer per compiti strutturati e generativi.
Blocco 4 — Adattamento ed estensione dei modelli linguistici
Il quarto blocco esamina le metodologie utilizzate per trasformare un modello pretrained in un sistema NLP completo.
Argomenti:
- rappresentazioni di frase e retrieval semantico;
- Retrieval-Augmented Generation;
- post-training e alignment;
- ottimizzazione e modelli long-context;
- analisi dei parametri dei Transformer;
- Parameter-Efficient Fine-Tuning;
- implementazione di un Transformer decoder-only ispirato a Llama.
Blocco 5 — Reasoning, agenti, valutazione e sicurezza
Il blocco conclusivo affronta le capacità, le applicazioni e i rischi dei moderni sistemi basati su LLM.
Argomenti:
- reasoning models;
- agenti basati su LLM e uso di strumenti esterni;
- valutazione di sistemi NLP e LLM;
- sicurezza dei modelli linguistici;
- privacy e memorizzazione dei dati di addestramento.
Risultati di apprendimento attesi
- comprendere i fondamenti linguistici, matematici e computazionali dell’NLP;
- descrivere l’evoluzione dai modelli linguistici statistici ai modelli neurali e ai Transformer;
- elaborare e tokenizzare collezioni di testi;
- implementare e utilizzare algoritmi per la classificazione, la rappresentazione e la generazione del testo;
- comprendere e applicare reti neurali, modelli ricorrenti, modelli sequence-to-sequence e meccanismi di attenzione;
- comprendere l’architettura Transformer e le principali famiglie di modelli linguistici;
- utilizzare PyTorch e Transformers per sviluppare e addestrare modelli NLP;
- applicare tecniche di fine-tuning completo e parameter-efficient fine-tuning;
- costruire sistemi per la rappresentazione delle frasi, il recupero semantico e la RAG;
- selezionare metriche e protocolli adeguati per la valutazione di sistemi NLP e LLM;
- comprendere i principi del post-training, dell’allineamento, dello scaling e della gestione del contesto esteso;
- analizzare criticamente qualità, provenienza e rappresentatività dei dati, nonché i rischi, i limiti e gli impatti sociali dei sistemi NLP;
- scegliere modelli e metodologie appropriati in funzione dei requisiti di una specifica applicazione.
Prerequisiti
Per le attività pratiche è richiesta una conoscenza di base della programmazione in Python. Una precedente familiarità con PyTorch e con la libreria Transformers è utile, ma non obbligatoria.
Contenuti
2 Primer Mathematical and Learning Foundations + Neural Networks intro
3 Lecture Text Processing and Tokenization
4 Lecture Logistic Regression and Text Classification
5 Lecture N-gram Language Models
6 Lecture Neural Language Models (and RNN LM ?)
7 Lecture Distributed Word Representations
8 Lab PyTorch NLP Lab
9 Lecture RNNs, Seq2Seq and Classical Attention
10 Lecture Self-Attention
11 Lecture Transformer Architecture
12 Lecture Pretraining Objectives and Model Families
13 Lecture Language Generation + T5
14 Lab Transformers Coding Lab - Structured and Text-to-Text NLP (fine-tuning)
15 Lecture Sentence Representations and Retrieval
16 Lecture Retrieval-Augmented Generation
17 Lecture Post-Training and Alignment
18 Lecture Scaling and Long-Context Models
19 Lecture Transformer Parameters and Parameter Efficient Fine-Tuning
20 Lab Building a Decoder-Only Transformer Model Like Llama
21 Lecture Reasoning models
22 Lecture LLM agents and Tools
23 Lecture Evaluation of NLP Systems and LLMs
24 Lecture LLM security & memorization
Testi di riferimento
Daniel Jurafsky and James H. Martin, Speech and Language Processing, 3rd edition draft. https://web.stanford.edu/~jurafsky/slp3/
Slide, articoli scientifici, notebook, esempi di codice e altri materiali necessari saranno messi a disposizione attraverso Moodle. Eventuali risorse integrative saranno indicate durante il corso.
Modalità di verifica dell'apprendimento
Facoltativamente, lo studente potrà sviluppare un progetto individuale in Python, da concordare preventivamente con il docente. Il progetto sarà valutato sulla base della qualità metodologica e tecnica, dell’analisi dei risultati e della presentazione e potrà contribuire con un massimo di 3 punti alla valutazione finale. Il progetto non sostituisce la prova orale e i punti saranno attribuiti solo in caso di superamento dell’esame.
L’esame si svolge in forma orale e verte sull’intero programma del corso. Lo studente dovrà dimostrare la conoscenza dei concetti teorici, dei modelli, degli algoritmi e delle metodologie affrontate.
L’eventuale progetto individuale sarà presentato e discusso durante l’esame e potrà attribuire fino a 3 punti aggiuntivi, nel rispetto del voto massimo previsto.
Il docente vigila sull’autenticità e sull’originalità delle prove. In caso di sospette irregolarità, potrà richiedere un ulteriore approfondimento, anche con modalità differenti.
Modalità di esame
Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.
Graduazione dei voti
18–22: conoscenza sufficiente, capacità applicative essenziali e linguaggio tecnico adeguato.
23–26: discreta conoscenza, buona capacità di collegare e applicare i concetti e adeguata capacità critica.
27–30: conoscenza approfondita, autonomia nell’applicazione dei concetti, ottima capacità critica ed espositiva.
Lode: conoscenza eccellente, piena autonomia di giudizio e capacità di elaborazione originale.
Metodi didattici
- lezioni frontali dedicate ai fondamenti teorici e metodologici;
- discussione di esempi, casi di studio e articoli scientifici;
- esercitazioni guidate;
- laboratori di programmazione in Python;
- attività di progettazione, implementazione e valutazione di sistemi NLP.
Le attività pratiche permetteranno agli studenti di consolidare i concetti teorici attraverso l’utilizzo di PyTorch e Transformers e attraverso l’implementazione di componenti fondamentali dei moderni modelli linguistici.