Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Intelligenza artificiale scalabile
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 | 9 | -- Nessun gestore -- |
Obiettivi
Il corso fornisce una trattazione sistematica dei principi, delle architetture e dei pattern necessari per progettare, implementare e gestire sistemi di intelligenza artificiale capaci di scalare su infrastrutture distribuite, cloud e ad alte prestazioni. L’enfasi è posta sull’integrazione tra modelli di machine learning, sistemi distribuiti, workflow complessi e piattaforme hardware moderne.
Nella prima parte, dedicata al machine learning distribuito e alla data ingestion, il corso introduce le problematiche fondamentali legate alla gestione di dataset di grandi dimensioni. Vengono analizzati i principali pattern di ingestion dei dati, tra cui batching, sharding e caching, mettendo in evidenza il loro impatto su throughput, latenza e utilizzo efficiente delle risorse computazionali durante l’addestramento di modelli su larga scala.
La seconda parte affronta i pattern per il training distribuito, concentrandosi sulle architetture software che permettono di addestrare modelli di machine learning su cluster eterogenei. Sono studiati il parameter server pattern e i pattern basati su comunicazione collettiva, insieme ai meccanismi di elasticità e fault tolerance necessari per garantire robustezza e adattabilità in ambienti dinamici e soggetti a guasti.
Segue una sezione dedicata ai model serving patterns, in cui vengono presentate le strategie per il deployment e la gestione di modelli in produzione. Il corso analizza servizi replicati, servizi shardizzati ed elaborazione event-driven, evidenziando come tali pattern consentano di soddisfare requisiti di scalabilità, disponibilità e bassa latenza nei sistemi di inferenza.
La parte centrale del corso, la più ampia, è dedicata ai workflow patterns per il machine learning. Qui si introducono i concetti di workflow complesso e di orchestrazione, con particolare attenzione ai pattern fan-in/fan-out, sincroni e asincroni, alla memoizzazione dei passi di calcolo e ai pattern operativi per scheduling e gestione dei metadati. Questi concetti vengono poi applicati alla progettazione di workflow di machine learning end-to-end, coprendo data ingestion, training, serving e integrazione complessiva del sistema. La sezione include anche una panoramica dei principali framework industriali e open-source per la gestione dei workflow e delle pipeline ML, con riferimento a TensorFlow, Kubernetes, Kubeflow e Argo Workflows.
La quinta parte introduce i fondamenti di High-Performance Computing (HPC), fornendo agli studenti le basi architetturali necessarie per comprendere le prestazioni dei sistemi di calcolo moderni. Sono trattati i concetti di memorie gerarchiche, parallelismo a livello di istruzioni, dati e thread, nonché il ruolo delle architetture specializzate per carichi di lavoro scientifici e di intelligenza artificiale.
Infine, il corso si conclude con una sezione dedicata al GPU accelerated deep learning. Vengono analizzate le architetture delle GPU, le caratteristiche dei workload di deep learning e le tecniche avanzate di programmazione per sfruttare il parallelismo massivo. Particolare attenzione è riservata alle strategie di training distribuito e multi-GPU, che rappresentano uno dei pilastri dell’addestramento di modelli deep learning su larga scala.
Nel complesso, il corso mira a fornire una visione unificata e rigorosa dell’AI scalabile, collegando pattern software, workflow di machine learning e architetture hardware, e preparando gli studenti a progettare sistemi di intelligenza artificiale efficienti, affidabili e pronti per l’uso in contesti industriali e di ricerca avanzata.
Risorse
Oltre alle dispense messe a disposizione dal docente, gli studenti potranno approfondire gli argomenti del corso sui seguenti testi:
1. Tang, Y. (2024). Distributed machine learning patterns. Shelter Island, NY: Manning Publications. ISBN 978-1-61729-902-5.
2. Hennessy, J. L., & Patterson, D. A. (2019). Computer architecture: A quantitative approach (6th ed.). Amsterdam: Morgan Kaufmann / Elsevier.
3. Ramchandra S Mangrulkar and Pallavi Vijay Chavan (2025). GPU-Accelerated Deep Learning: Essential GPU Ideas, Deep Learning Frameworks, and Optimization Approaches. Apress. ISBN 979-8-8688-2082-3
Descrizione
Nota: su libro Mining of Massive Datasets ci sono le implementazioni parallele di Perceptrons, SVM e decision trees clustering parallelo (da integrare?)
Machine learning distribuito: Data Ingestion (1 CFU)
1. Introduzione ai sistemi di machine learning distribuiti
2. Data ingestion pattern
3. Batching pattern
4. Sharding pattern
5. Caching pattern
Pattern per il training e serving di modelli in sistemi distribuiti (1.2 CFU)
1. Introduzione Pattern per il training distribuito: Parameter server pattern
2. Collective communication pattern
3. Elasticity e fault-tolerance pattern
4. Replicated services pattern
5. Sharded-service pattern
6. Event-driven processing pattern
Workflow patterns (2 CFU)
1. Workflow and patterns
2. Fan-in Fan-out pattern
3. Synchronous and asynchronous pattern
4. Step memoization pattern
5. Operation patterns:
Scheduling pattern
Metadata pattern
6. Machine learning workflow
Project overview
Data ingestion
Model training
7. Machine learning workflow (2)
Model serving
End-to-end workflow
8. Machine learning frameworks: Tensorflow
9. Machine learning frameworks: Kubernetes and kubeflow
10. Machine learning frameworks: Argo workflows
High-Performance Computing (HPC) (2 CFU)
1. Introduzione a High-Performance Computing (HPC)
2. Memorie gerarchiche
3. Instruction-level and data-level parallelism
4. Thread-level parallelism
5. Domain-Specific Architectures
GPU accelerated Deep learning (2.8 CFU)
1. GPU accelerated Deep learning
2. Architetture di GPU
3. GPU workloads
4. Advanced GPU programming for deep learning
5. Distributed and multi-gpu training strategies
Verifica
Al termine del corso è previsto lo svolgimento di un esame di profitto composto da una parte progettuale e da una prova teorica. La valutazione della prova teorica andrà a fare media ponderata con la valutazione del progetto pratico richiesto che avrà un peso del 60% del voto totale. Lo svolgimento del progetto è obbligatorio e il conseguimento di una votazione sufficiente per esso (18/30) costituisce prerequisito per l’accesso alla prova teorica. Il progetto pratico è volto a dimostrare la capacità da parte dello studente di implementare un sistema secondo le specifiche rilasciate dal docente. Successivamente, lo studente dovrà sostenere una prova teorica volta a dimostrare la conoscenza degli argomenti trattati durante le lezioni ed in particolare dovrà dimostrare di aver acquisito le conoscenze teoriche introdotte dal corso.