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.
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.
Ricostruisce articoli, paragrafi e lettere: 113 articoli e 13 allegati diventano 856 passaggi, ciascuno con la sua citazione.
BM25 con stemming italiano ed embedding multilingue e5, fusi con Reciprocal Rank Fusion e riordinati da un cross-encoder.
Llama 3, Mistral o Qwen (via Ollama o Hugging Face) rispondono solo dal contesto, citano [Art. N] o si astengono.
Retrieval su 55 domande con risposta nel regolamento, rilevanza valutata a livello di articolo.
recall a parità di contesto: passaggi per paragrafo contro articoli interi
MRR rispetto alle finestre di testo di lunghezza fissa
MRR grazie allo stemming italiano in BM25
| Retriever / chunking | Hit@1 | Recall@5 | MRR@10 | Recall a 6k caratteri |
|---|---|---|---|---|
| BM25 + stemming / per paragrafi | 0,71 | 0,84 | 0,78 | 0,86 |
| BM25 senza stemming / per paragrafi | 0,58 | 0,75 | 0,69 | 0,85 |
| BM25 + stemming / articoli interi | 0,62 | 0,88 | 0,72 | 0,66 |
| BM25 + stemming / finestre da 1000 caratteri | 0,64 | 0,82 | 0,59 | 0,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.
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.
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).
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).
Report di audit generato con RAG su database vettoriale: classificazione del rischio, profili GDPR e piano d'azione per la conformità.