Progetto personale — 2026

AI Act RAG Lab

Un assistente che risponde a domande sull'AI Act citando gli articoli, costruito con LLM open-source e valutato con metriche e intervalli di confidenza.

Perché questo progetto

Nei miei primi prototipi sull'AI Act le risposte sembravano buone, ma non avevo modo di sapere quanto lo fossero. Nel dominio legale non basta rispondere: bisogna citare la disposizione giusta e dire «non presente nel testo» invece di inventare una norma.

AI Act RAG Lab ricostruisce la pipeline da capo e misura ogni scelta su un gold set di 63 domande che si auto-verifica contro il testo del regolamento.

Come funziona

1

Parser strutturale

Ricostruisce articoli, paragrafi e lettere: 113 articoli e 13 allegati diventano 856 passaggi, ciascuno con la sua citazione.

→
2

Retrieval ibrido

BM25 con stemming italiano ed embedding multilingue e5, fusi con Reciprocal Rank Fusion e riordinati da un cross-encoder.

→
3

Risposta verificabile

Llama 3, Mistral o Qwen (via Ollama o Hugging Face) rispondono solo dal contesto, citano [Art. N] o si astengono.

Cosa ho misurato

Retrieval su 55 domande con risposta nel regolamento, rilevanza valutata a livello di articolo.

+0,21

recall a parità di contesto: passaggi per paragrafo contro articoli interi

+0,19

MRR rispetto alle finestre di testo di lunghezza fissa

+0,09

MRR grazie allo stemming italiano in BM25

Retriever / chunkingHit@1Recall@5MRR@10Recall a 6k caratteri
BM25 + stemming / per paragrafi0,710,840,780,86
BM25 senza stemming / per paragrafi0,580,750,690,85
BM25 + stemming / articoli interi0,620,880,720,66
BM25 + stemming / finestre da 1000 caratteri0,640,820,590,82

Le differenze nei riquadri sono calcolate con bootstrap appaiato sulle stesse domande (intervallo di confidenza al 95% sopra lo zero). Con 55 domande gli intervalli sono larghi: il codice li riporta per ogni metrica.

La scoperta più utile

Guardando solo la Recall@5, gli articoli interi sembrano la scelta migliore (0,88). Ma cinque articoli possono occupare 40.000 caratteri: a parità di prompt ne entrano molti meno, e la recall scende a 0,66 contro 0,86. Una metrica scelta male avrebbe portato alla scelta di progetto sbagliata.

Scelte tecniche

Fine-tuning RAFT con LoRA

Ogni esempio di addestramento contiene il passaggio giusto e tre distrattori scelti da BM25; nel 20% dei casi il passaggio giusto manca e la risposta attesa è l'astensione. Il modello impara un comportamento (leggere, citare, astenersi) e non dei fatti, per questo le disposizioni usate nella valutazione restano fuori dal training.

L'addestramento usa LoRA e QLoRA con PEFT e TRL, con la loss calcolata solo sulla risposta. È pensato per una GPU T4 gratuita su Colab: i modelli da 7B, come Mistral, si addestrano quantizzati a 4 bit (QLoRA).

Prototipi precedenti

Flask · BM25 · spaCy · Llama 3

AI Act HR Auditor

Analisi di conformità in più passaggi per i sistemi di selezione del personale, che l'AI Act classifica ad alto rischio (Allegato III, punto 4).

Reflex · ChromaDB · Llama 3

AI Auditor

Report di audit generato con RAG su database vettoriale: classificazione del rischio, profili GDPR e piano d'azione per la conformità.