Dettaglio insegnamento

PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI

MF0781

Insegnamento
PROGRAMMAZIONE DI APPLICAZIONI INTELLIGENTI
Codice
MF0781
Anno Accademico
2024/2025
Anno regolamento
2022/2023
Corso di studio
INFORMATICA
Curriculum
000 - CORSO GENERICO
Responsabile didattico
CFU
6
Ore di lezione
48
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Tipo di insegnamento
Attività formativa monodisciplinare
Fruizione insegnamento
OPZ - Opzionale
Anno
3
Periodo
Secondo Semestre
Sede
VERCELLI
Lingua insegnamento
Italiano
Contenuti
Il contenuto traccia l'evoluzione dell'intelligenza artificiale, con un forte focus sugli LLM e le loro applicazioni pratiche. Copre brevemente i tipi di apprendimento automatico e le reti neurali, per poi approfondire tecniche avanzate degli LLM, come tokenization, embeddings e transformers, prompt engineering. Si pone particolare enfasi sulle applicazioni pratiche degli LLM, in particolare in due ambiti:
- utilizzo come assistenti alla scrittura di applicazioni
- infusione di intelligenza in applicazioni.
Testi di riferimento
"Understanding Deep Learning" by Simon J.D. Prince - MIT Press 2024
"Hands-On Large Language Models" by Jay Alammar, Maarten Grootendorst - O’Reilly Media, 2024
"Natural Language Processing with Transformers, Revised Edition" by Lewis Tunstall, Leandro von Werra, Thomas Wolf - O’Reilly Media, 2022
"Build a Large Language Model (From Scratch)" by Sebastian Raschka - Manning, 2024
Obiettivi formativi
Sviluppare competenze nella progettazione e implementazione di applicazioni basate su AI, con particolare focus sui LLMs e le loro architetture.

Acquisire la capacità di valutare criticamente le prestazioni e i limiti dei modelli AI, distinguendo tra diverse soluzioni di deployment.

Approfondire strumenti e tecniche avanzate per l’ottimizzazione e l’integrazione degli LLMs nelle applicazioni, come Prompt Engineering, Retrieval Augmented Generation, Workflow e Agenti.
Prerequisiti
Conoscenze base del linguaggio di programmazione Python.
Conoscenze base di algebra lineare.
Metodi didattici
Il corso è articolato in circa 36h di didattica erogativa e 12h di didattica interattiva da svolgere in laboratorio.
Altre informazioni
Le studentesse e gli studenti con disabilità o con Disturbi Specifici dell’Apprendimento (DSA) o con Bisogni Educativi Speciali (BES) possono richiedere servizi e strumenti specifici a loro dedicati, rivolgendosi allo "Staff Sviluppo e Coordinamento Carriere e Servizi alle Studentesse e agli Studenti" e consultando la pagina dedicata del sito di Ateneo: https://uniupo.it/it/servizi/servizi-studenti-disabili-e-dsa. Le studentesse e gli studenti con disabilità, DSA, BES, una volta preso contatto con lo Staff di Ateneo, possono contattare la/il docente titolare dell'insegnamento in relazione alla declinazione delle modalità di esame, in merito agli aspetti didattici.
Modalità di verifica dell'apprendimento
L'esame del corso sugli LLM si articola in due parti:
- Progetto pratico (2/3 del voto finale) che può essere svolto in gruppo
- Esame orale (1/3 del voto finale) che deve essere sostenuto singolarmente.

L’assegnazione del voto finale avviene sulla base dei seguenti indicatori.

Conoscenza e comprensione
- L’orale verifica la comprensione teorica e metodologica dei LLM, inclusi funzionamento, addestramento e applicazione.
- Il docente verifica la conoscenza dei principi sottostanti al progetto.
- La relazione del progetto deve documentare chiaramente le scelte architetturali.

Capacità di applicare conoscenza e comprensione
- Il progetto valuta l’applicazione delle conoscenze, garantendo funzionalità e assenza di bug nei casi d’uso comuni.
- Gli studenti possono proporre un proprio progetto, incentivando così la creatività.
- La demo orale dimostra l’effettivo utilizzo del sistema sviluppato.

Abilità comunicative
- La relazione e la presentazione orale richiedono una chiara esposizione di obiettivi, scelte e risultati.
- L'orale prevede almeno tre domande, con soglia minima di risposta al 60%.
- Durante la demo, gli studenti devono illustrare il lavoro con linguaggio tecnico adeguato.

Autonomia di giudizio
- Gli studenti prendono decisioni autonome sulle scelte progettuali, giustificandole nella relazione.
- La proposta di un proprio progetto stimola il pensiero critico.
- Il docente può approfondire le scelte progettuali durante l’orale.

Capacità di apprendimento
- L’orale accerta la capacità di apprendere e rielaborare autonomamente i contenuti del corso.
- Il progetto consolida e amplia le competenze tramite la risoluzione di problemi concreti.
- La lode richiede il massimo punteggio in entrambe le parti e una risposta corretta a una domanda aggiuntiva.
Programma esteso
- Breve storia dell’intelligenza artificiale dall’origine ai giorni nostri

- Machine Learning
* Apprendimento supervisionato
* Apprendimento non supervisionato
* Apprendimento per rinforzo

- Reti Neurali
* Introduzione a Jupyter Notebooks / Google Colab
* Introduzione alle Reti Neurali (MLP) e Backpropagation
* Generalizzazione / Overfitting
* Teorema di Approssimazione Universale
*Trasformazione di testo in input per una rete neurale
^Tokenizing
^Embeddings

- LLMs
* Introduzione ai Transformers
* Introduzione ai LLMs e campi di applicazione
^ Generazione di testo / immagini / suoni / codice
^ Classificazione
^ Sentiment Analysis
^ Summarization
^ Language Translation
^ Comprensione e ragionamento

* Overview, attraverso esempi, delle capacità dei principali modelli: ChatGPT / Claude / Llama3 / Google Gemini
* Caratteristiche principali di LLMs
^ Numero di parametri (Small Models vs Large Models)
^ Dimensione della Context Window
^ Tipo di licenza
^ Varianti architetturali: Mixture of Experts
^ Confronto tra LLM

* Ciclo di vita di un LLM
^ Training
^ Instruction tuning
^ Fine tuning
^ Reinforcement Learning with Human Feedback
^ Inference

* Programmazione assistita da AI
^ Sottoscrizione di GitHub Copilot
^ Casi d’uso ed esempi con VS Code / GitHub Workspaces

* Non determinismo dell’output / Temperatura

* Prompt Engineering
^ Zero-Shot / Few-Shots
^ Chain of Thoughts
^ Esempi con diversi LLM: ChatGPT, Claude, Llama3

* Limiti
^ Allucinazioni
^ Qualità del training set

* Valutazione dei costi (OpenAI)
* Modelli multi-modal (GPT-4o / Claude / Gemini / .)

- Hardware per LLMs Inference
* Quantization
* CPU / GPU / NPU / LPU (Groq)
* Cloud (HuggingFace / OpenAI / Claude) vs Local Inference (Ollama)

- Programmazione con LLM
* API native (es. OpenAI) vs LangChain
* Utilizzo della memoria
* Retrieval Augmented Generation (RAG)
* Introduzione e uso dei Vector Databases
* Tool
* Multi-Agent Architecture

- Ecosistema HuggingFace per altre tipologie di task che richiedono modelli differenti (es. elaborazione di immagini / suoni / .)
- OpenAI GPT Store
- Cenni alle questioni legate alla sicurezza
- Short Term Inference vs Long Term Reasoning
- Capacità (latenti) emergenti
- Intelligenza Artificiale Generativa (esempi) - Stable Diffusion, Generazione di Musica, ...
Risultati di apprendimento attesi
Conoscenza e comprensione: gli studenti acquisiranno una solida conoscenza delle metodologie e delle architetture alla base delle applicazioni basate su AI, con particolare attenzione ai LLMs e alle loro implicazioni pratiche.

Capacità di applicare conoscenza e comprensione: gli studenti saranno in grado di sviluppare e implementare soluzioni AI di media complessità, integrando modelli pre-addestrati in applicazioni reali. Saranno capaci di applicare tecniche di ottimizzazione, come il Prompt Engineering e la Retrieval Augmented Generation, per migliorare l’efficacia dei modelli.

Abilità comunicative: gli studenti svilupperanno la capacità di documentare e presentare il proprio lavoro in modo chiaro e strutturato, utilizzando un lessico tecnico appropriato.

Autonomia di giudizio: gli studenti acquisiranno la capacità di valutare in maniera critica l’efficacia di diversi modelli AI, individuandone i punti di forza e di debolezza. Saranno in grado di scegliere il modello più adatto a un determinato contesto applicativo, considerando aspetti tecnici, etici ed economici.

Capacità di apprendimento: gli studenti svilupperanno un approccio autonomo nell’aggiornamento delle proprie competenze, sapendo identificare le risorse più appropriate per approfondire tematiche emergenti nell’ambito dell’AI e dei LLMs.
Ultimo aggiornamento:09-09-2026 00:14:31