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 è organizzato in modo progressivo. Dopo un’introduzione non tecnica all’NLP e agli LLM, il corso presenta i fondamenti matematici e dell’apprendimento automatico necessari per comprendere i principali modelli linguistici. Vengono quindi affrontati l’elaborazione e la tokenizzazione del testo, i modelli n-gram, la classificazione del testo, le reti neurali, le rappresentazioni distribuite delle parole e i modelli linguistici neurali.
La parte centrale del corso è dedicata ai modelli sequence-to-sequence, ai meccanismi di attenzione, all’architettura Transformer e ai principali obiettivi di pre-addestramento. La parte conclusiva approfondisce la generazione del linguaggio, il fine-tuning, la ricerca semantica, la Retrieval-Augmented Generation (RAG), la valutazione dei sistemi NLP e degli LLM, il parameter-efficient fine-tuning, i modelli a contesto esteso, il post-training, l’allineamento e gli aspetti data-centrici e responsabili dell’NLP.
Le lezioni teoriche sono integrate da attività pratiche in Python dedicate a PyTorch, alla libreria Transformers e all’implementazione di un modello Transformer decoder-only.
L’obiettivo formativo è fornire una conoscenza ampia e strutturata delle moderne tecniche di analisi e generazione automatica del linguaggio, sviluppando al contempo la capacità di selezionare, 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.