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:762609 AR:323992)
- Lingua di insegnamento
- Inglese
- Modalità
- In presenza
- Crediti formativi universitari
- 6
- Livello laurea
- Laurea magistrale (DM270)
- Settore scientifico disciplinare
- INFO-01/A
- 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 percorso didattico si sviluppa in maniera graduale. Dopo un’introduzione generale all’NLP e agli LLM, vengono presentati i fondamenti matematici e di apprendimento automatico necessari per comprendere il funzionamento dei principali modelli linguistici. Il corso affronta quindi la rappresentazione e la tokenizzazione del testo, i modelli a n-grammi, la classificazione testuale, le reti neurali, le rappresentazioni latenti delle parole e i modelli linguistici neurali.
La parte centrale dell’insegnamento è dedicata ai modelli sequence-to-sequence, ai meccanismi di attenzione, all’architettura Transformer e ai principali metodi di pretraining dei LLM. La parte conclusiva approfondisce la generazione automatica del linguaggio, l’adattamento dei modelli (fine-tuning, instruction-training, alignment), l'embedding di testi e la ricerca semantica. Sono inoltre trattati l’adattamento efficiente dei parametri e l'elaborazione di contesti estesi. Particolare attenzione sarà dedicata alla valutazione dei sistemi di NLP e degli LLM e gli aspetti relativi alla qualità dei dati, all’affidabilità e all’uso responsabile delle tecnologie linguistiche.
Le lezioni teoriche sono affiancate da esercitazioni pratiche in Python, dedicate all’impiego di PyTorch e della libreria Transformers, nonché all’implementazione di un modello Transformer basato esclusivamente sul decodificatore.
L’insegnamento si propone di fornire una conoscenza ampia e strutturata delle principali tecniche per l’analisi e la generazione automatica del linguaggio, sviluppando al contempo la capacità di individuare, implementare, addestrare e valutare modelli adeguati a specifici problemi applicativi.
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
Intro Introduction to NLP and LLMs
Primer Mathematical and Learning Foundations
Lecture Text Processing and Tokenization
Lecture N-gram Language Models
Lecture Logistic Regression and Text Classification
Primer Neural Networks and Backpropagation
Lecture Distributed Word Representations
Lab PyTorch NLP Lab
Lecture Neural Language Models and RNNs
Lecture Seq2Seq and Classical Attention
Lecture Self-Attention
Lecture Transformer Architecture
Lecture Pretraining Objectives and Model Families
Lecture Language Generation
Lecture Structured and Text-to-Text NLP (fine-tuning)
Lab Transformers Coding Lab
Lecture Sentence Representations and Retrieval
Lecture Retrieval-Augmented Generation
Lecture Evaluation of NLP Systems and LLMs
Lecture Transformer Parameters and Parameter Efficient Fine-Tuning
Lecture Scaling and Long-Context Models
Lab Building a Decoder-Only Transformer Model Like Llama
Lecture Post-Training and Alignment
Lecture Data-Centric and Responsible NLP
Testi di riferimento
Le slide, gli articoli scientifici, i notebook, gli esempi di codice e gli altri materiali necessari per lo studio saranno messi a disposizione attraverso Moodle.
Eventuali testi o risorse integrative saranno indicati 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.