Costruire Attest, un'AI di adaptive learning per la formazione di conformità, mi ha insegnato che il moat non è il modello ma il gate deterministico che certifica solo la padronanza dimostrata.
Knowledge TracingMachine LearningCorporate Training

La mia AI di knowledge tracing voleva certificare un apprendente che aveva barato sul corso. Il codice che ho scritto ha rifiutato.

Ashutosh SinghalAshutosh Singhal4 luglio 202613 min

Due dipendenti, due spunte verdi identiche, e una delle due è una menzogna

La prima volta che ho messo i due record uno accanto all'altro, le spunte sembravano identiche, ed era proprio quello il problema. Un'analista BSA senior con otto anni nel ruolo e un branch manager sei mesi dopo un trasferimento avevano entrambi appena "completato" la stessa ricertificazione antiriciclaggio di quattro ore. Il loro LMS riportava la stessa cosa per ciascuno: una spunta verde, "SCORM Completed," fatto. Una di loro poteva condurre un'indagine su attività sospette anche nel sonno. L'altro aveva lacune reali proprio nei concetti a cui un regolatore tiene. Il sistema che doveva certificarli per il lavoro di conformità non riusciva a distinguerli, perché non misurava mai ciò che sapevano. Misurava se il video era arrivato in fondo.

Quel divario non è accademico, e costruire questa demo mi ha costretto a tenere la posta in gioco davanti a me. Le aziende USA spendono circa 102,8 miliardi di dollari all'anno in formazione aziendale, circa 874 dollari per apprendente (Training Magazine, 2025), e un quarto intero dei responsabili L&D dice di non riuscire a misurare se qualcosa abbia funzionato. Nel lavoro regolamentato il divario ha un prezzo agli atti pubblici. TD Bank ha assorbito una sanzione AML da 3,1 miliardi di dollari legata in parte a un programma formativo inadeguato. A partire dal 2 agosto 2026, l'Articolo 4 dell'AI Act UE inizia a far rispettare l'alfabetizzazione AI basata sul ruolo, con sanzioni fino a 35 milioni di euro o al 7% del fatturato globale. In ognuno di quei casi il record "Completed" è inutile come prova, perché il completamento non è mai stato competenza.

Il sistema non misurava se avevano imparato. Misurava se il video era arrivato in fondo.

Ho costruito una demo chiamata Attest per vedere se riuscivo a colmare quel divario in modo onesto. Puoi provarla su veriprajna.com/it/demos/attest-adaptive-learning-ai-che-certifica-la-competenza-non-il-completamento. Questo saggio riguarda la parte della costruzione che mi ha davvero sorpreso, e non era il modello.

Dashboard di Attest che mostra un'analista BSA senior e un branch manager che hanno entrambi terminato lo stesso corso AML con la stessa spunta SCORM Completed, sopra la riga "stesso corso, stessa spunta, ma la stessa competenza?"
Due apprendenti, lo stesso corso, la stessa spunta verde. L'LMS li legge come identici. Attest legge la padronanza a livello di concetto sotto la superficie e ottiene una risposta diversa.

Ciò che volevo davvero costruire era un modello che sapesse cosa sapeva ciascuna persona

Sono partito da dove parte ogni pitch di "adaptive learning", e poi ho buttato via quasi tutto. La maggior parte dei prodotti che si dicono adattivi sotto sotto eseguono collaborative filtering: "persone come te hanno preso il Corso X dopo." È un motore di raccomandazione vestito da toga da diploma. Sa cosa hanno fatto apprendenti simili. Non ha idea di cosa tu, nello specifico, comprendi. Cornerstone ha rilasciato un "Adaptive Learning Agent" a marzo 2026 che funziona ancora così. Non volevo un raccomandatore migliore. Volevo un modello che legga il flusso grezzo di interazioni di una sola persona e inferisca, concetto per concetto, ciò che ha davvero padroneggiato.

È un problema di ricerca reale e antico chiamato knowledge tracing, e la versione onesta è un transformer, non una media dei quiz. Ho addestrato un modello self-attentive di knowledge tracing, SAKT, circa 119.809 parametri, abbastanza piccolo da addestrarsi su una CPU in novanta secondi e poi mettere in cache. Riproduce la sequenza di interazioni di ciascun apprendente e produce una probabilità di padronanza per ciascuno dei diciotto concetti del corso. Sul nostro benchmark sintetico seeded di knowledge tracing ha raggiunto un AUC held-out di 0.8315, con accuratezza next-step di 0.771. I dati del benchmark sono generati da una famiglia di modelli completamente diversa (Performance Factors Analysis, un modello logistico classico), quindi il transformer non sta valutando le proprie ipotesi. Per contesto esterno, i risultati SAKT pubblicati sul dataset pubblico ASSISTments si attestano intorno a 0.80 (Pandey e Karypis, 2019). Il mio era nella stessa fascia.

Ero orgoglioso di quel numero. Pensavo che il numero fosse il prodotto. Bastò esattamente un apprendente a mostrarmi che non lo era.

Poi gli ho dato in pasto qualcuno che aveva barato sull'intero corso

L'apprendente che ha fatto crollare la mia fiducia era il terzo della coorte, un operations associate che aveva usato un assistente AI per rispondere in automatico a tutto il modulo. Guarda cosa ha fatto il mio modello con lui. Concetto dopo concetto, l'inferenza SAKT tornava alta: 0.927 sull'identificazione dei red-flag SAR, 0.95 sul trade-based money laundering, 0.992 sul rischio di correspondent banking, 0.994 sui trigger di enhanced due diligence. Quasi perfetto ovunque. Se mi fossi fidato del modello, avrei certificato tutti e diciotto i concetti e consegnato a questa persona un record di conformità pulito e firmato.

Il problema è che la padronanza era finta. Le risposte erano rapide e perfette su diciotto non correlati concetti, una distribuzione dei tempi di risposta incompatibile con un richiamo genuino. Un vero esperto è veloce su alcune cose e lento su altre. Questo pattern era piatto e impossibilmente veloce ovunque, la firma di una chiave delle risposte, non di una memoria. Il mio accurato modello con AUC 0.83 ha guardato una chiave delle risposte e ha visto uno studente modello.

Il mio modello non ha semplicemente mancato il gaming. Era più sicuro proprio dove sbagliava di più.
Pipeline live di Attest per l'Operations Associate che mostra alti punteggi di padronanza SAKT, poi il Competence Gate che segnala l'evidenza e la credenziale WITHHELD a zero di diciotto certificati
L'esecuzione live. SAKT inferisce alta padronanza (0.927, 0.95, 0.992), poi il gate di competenza segnala "accuratezza quasi perfetta a tempi di risposta implausibilmente rapidi su 18 concetti non correlati," e la credenziale è trattenuta: 0 di 18 certificati.

Quello è stato il momento in cui questo saggio è diventato vero per me. Un modello migliore non mi avrebbe salvato qui. Un transformer più accurato addestrato su dati più puliti avrebbe guardato le stesse risposte rapide e perfette e sarebbe stato ancora più certo che questa persona avesse padroneggiato tutto. Il fallimento non era una carenza di accuratezza. Era che avevo lasciato a un modello probabilistico una decisione che un modello non dovrebbe mai poter prendere da solo.

Perché non addestrare semplicemente il modello a coglierlo?

Il mio primo istinto era quello sbagliato, e voglio essere onesto sul giorno che ci ho perso. Ho cercato di rendere il modello stesso robusto al gaming. Aggiungere feature di tempo di risposta, addestrarlo a diffidare di sequenze implausibilmente rapide, insegnare al transformer a essere sospettoso. È un piano seducente perché tiene tutto dentro un sistema elegante, e mi piacciono i sistemi eleganti. Inoltre non funziona, per una ragione che ho impiegato più tempo del dovuto ad accettare. Qualunque cosa insegni a un modello a rilevare, gli hai anche insegnato a sbagliarsi con sicurezza nei casi che non hai anticipato. Il lavoro di un modello è generalizzare e smussare. Una decisione di governance ha bisogno del contrario: deve essere fragile esattamente nel punto giusto, e rifiutare.

Così mi sono fermato, e ho spostato del tutto la decisione fuori dal modello. Il modello consiglia. Codice deterministico semplice decide. Dopo che gira l'inferenza SAKT, un pezzo di logica pure-Python che chiamo competence gate fa la chiamata certifica-o-no, e il modello non può sovrascriverla. Il gate certifica un concetto solo se tre cose sono tutte vere insieme: la padronanza è pari o superiore a 0.747, ci sono almeno tre interazioni reali di evidenza dietro, e il pattern di risposta non è anomalo. Fallisci anche solo una delle tre e il concetto non è certificato. È segnato "needs proof," e l'apprendente riceve una challenge di verifica invece di una spunta.

Quando il gate ha guardato l'operations associate, ha fatto la cosa che il mio modello non poteva. Ha segnalato l'evidenza come anomala, ha rifiutato ogni concetto e ha certificato zero di diciotto. Tempo di frequenza trattenuto, in attesa di verifica.

Tabella di dettaglio del competence gate per l'apprendente che ha usato l'AI per barare, ciascuno dei diciotto concetti segnato NEEDS PROOF nonostante probabilità di padronanza vicine a 0.98 e 0.99, con la base che nota evidenza segnalata come incompatibile con un richiamo genuino
Il verdetto del gate, concetto per concetto. Ogni riga mostra un'alta padronanza P (0.98, 0.99) e ogni riga legge ancora NEEDS PROOF, perché l'evidenza era segnalata. Il modello consigliava di certificare; il codice ha rifiutato.

Voglio fare attenzione a come lo inquadro, perché il brief che mi sono scritto è attento su questo. Non è un rilevatore di imbroglioni con un hit rate, e non lo presento mai come tale. È un esito di governance su un apprendente illustrativo: concetti trattenuti perché l'evidenza non era abbastanza buona da certificare. Il punto non è "ti ho beccato, hai barato." Il punto è che Attest certifica solo ciò che può dimostrare, e resta onesto sul resto.

Gli agenti consigliano, il codice decide, e quella linea si è rivelata portante

Continuo a tornare a quella divisione del lavoro perché, quando ho finito, era l'intera architettura piuttosto che uno slogan. Ci sono esattamente due posti in Attest in cui gira qualcosa di intelligente e probabilistico, e in entrambi solo consiglia. Un agente LLM (costruito su Pydantic AI, con default claude-opus-4-8) fa il tagging dei concetti, decomponendo un corso piatto "AML Training" in una tassonomia di diciotto concetti: CDD, SAR narrative, structured-transaction detection, OFAC screening, e il resto. Quella fase di tagging è ciò che il settore ti dirà essere la singola ragione più grande per cui i progetti di adaptive learning muoiono, ed è genuinamente difficile, ma è consultiva. Il modello SAKT inferisce la padronanza, anch'esso consultivo. Ogni decisione che conta davvero, quale percorso percorre un apprendente e cosa viene certificato, è presa da codice deterministico che nessun modello può convincere a cedere.

Il sequencer è l'altra metà di quel codice, ed è dove si nasconde il valore. Per concetto: se la padronanza è pari o superiore a 0.67 l'apprendente salta o semplicemente verifica; tra 0.38 e 0.67 resta nella flow zone; sotto 0.38 riceve scaffolding. Quelle soglie non sono numeri scelti a sensazione. Sono state sottoposte a cross-validation contro la coorte etichettata, e il repo spedisce un A/B test a cinque fold che mostra che battono il fallback impostato a mano lasciando invariato il significato della decisione. Esegui quella logica sull'analista senior e lei salta quasi tutto ciò che già sa: sedici di diciotto concetti certificati, tempo di frequenza da 240 minuti a 47.3, una riduzione dell'80.3%. Esegui lo stesso codice identico sul branch manager che ha lacune reali, e rifiuta di concedergli lo stesso sconto: dieci di diciotto certificati, solo il 38.9% risparmiato, perché ha davvero bisogno della formazione.

Lo stesso codice consegna all'esperto un corso di 47 minuti e al novizio uno vero. Nessuno dei due può discutere.

Quella asimmetria è l'intero punto. Un sistema che fa risparmiare a tutti lo stesso tempo è solo un corso più corto con un branding migliore. Un sistema che fa risparmiare tempo in stretta proporzione a ciò che ciascuna persona può dimostrare di sapere sta facendo knowledge tracing, e lo fa in codice che posso leggere riga per riga.

Cosa consegni a un regolatore al posto di una spunta

L'artefatto di cui sono più orgoglioso è quello che una spunta verde non può mai produrre. Quando il gate finisce, Attest esporta un Competence Certificate firmato, e ne tengo due campioni reali su disco. Per l'analista senior elenca tutti e diciotto i concetti, ciascuno con la sua probabilità di padronanza, il conteggio di interazioni dietro quella stima, lo stato certifica-o-needs-proof, e la specifica regolamentazione a cui si mappa (31 CFR 1020.220, FATF Rec. 12, 31 USC 5318, e il resto). Registra il nome del modello, la sua versione e l'AUC del benchmark. Porta un footer onesto sui limiti che nota che l'AUC misura la predizione del next-item piuttosto che la retention a lungo termine, perché una probabilità di padronanza è evidenza, non una garanzia. E l'intero documento è firmato con una firma HMAC-SHA256 così non può essere modificato silenziosamente dopo il fatto.

Il Competence Certificate firmato per la Senior BSA Analyst: 16 di 18 concetti certificati, riduzione del tempo di frequenza dell'80.3%, AUC held-out del modello 0.8315, padronanza per concetto e mappatura regolamentare, con due concetti onestamente segnati NEEDS PROOF
Il certificato per l'analista: 16 di 18 certificati, 80.3% di tempo di frequenza risparmiato, AUC 0.8315 dichiarato in facciata, e due concetti (SAR red-flag a 0.73 e TBML a 0.59) onestamente tenuti sotto la soglia 0.747 e segnati NEEDS PROOF.

Questa è la risposta duratura alla vera domanda dell'auditor, che non è mai "hanno finito?" È "dimostra quali interazioni sostenevano quale affermazione di padronanza." Una spunta non può rispondere a quello. Né può un modello base migliore, per quanto buono diventi, perché l'accuratezza non è provenance. Un modello più accurato non può comunque mostrare a un auditor la pista di evidenza dietro a una decisione che ha preso. Quella pista deve essere costruita come artefatto, di proposito, fuori dal modello. È questo il certificato, ed è la cosa che mi ha fatto smettere di pensare al modello come al prodotto.

L'accuratezza non è provenance. Un modello migliore non può comunque dimostrare quali interazioni sostenevano quale affermazione.

Puoi ispezionare tutto questo nella demo in esecuzione su veriprajna.com/it/demos/attest-adaptive-learning-ai-che-certifica-la-competenza-non-il-completamento, inclusi i due concetti che il certificato rifiuta di certificare per l'analista, dove la sua padronanza siede onestamente sotto la soglia 0.747.

La parte che sopravvive a un modello migliore

Ho costruito questo aspettandomi che il modello fosse la parte difficile, e sbagliarmi su quello ha cambiato come penso all'intera categoria. Il modello era la parte trattabile: novanta secondi su una CPU e un AUC rispettabile. La parte difficile, quella che rende davvero affidabile l'output, era tutto ciò che ho messo intorno al modello per impedirgli di prendere decisioni che non doveva prendere: il gate deterministico, la regola di sufficienza dell'evidenza, il rifiuto per anomalia, la pista firmata.

È anche la parte che non invecchia. Quando mostro i numeri della coorte (circa 51.9% di riduzione del tempo di frequenza su una coorte simulata di ricertificazione di 500 persone, circa 77.872 dollari recuperati su questo solo modulo, una cifra annualizzata vicino a 389.362 dollari che l'app etichetta a schermo come proiezione), il titolo non è deliberatamente l'AUC. L'AUC prova soltanto che è un vero modello di knowledge tracing e non un registro voti. Il titolo è la percentuale di tempo di frequenza risparmiato e la percentuale di concetti auto-certificati rispetto a quelli avviati a prova, e entrambe reggono indipendentemente da quanto buono diventi il modello sottostante. Un transformer più intelligente l'anno prossimo non cambia il fatto che la decisione, e la ricevuta, vivono in codice che puoi auditare.

E se preferisci vederlo piuttosto che leggermi descriverlo, ecco l'intera cosa in esecuzione da capo a fine.

Ecco dunque la domanda con cui sto convivendo, e quella che porrei a chiunque costruisca in questo spazio. Se l'output più importante del tuo sistema è una decisione su cui un regolatore farà affidamento, vuoi che quella decisione sia presa dal modello, o da qualcosa a cui il modello è solo autorizzato a dare consiglio? Io l'avevo al contrario per un giorno. Poi un falso studente modello, rapido e perfetto su diciotto cose che non sapeva, è entrato e mi ha rimesso in riga.

Ricerca correlata

Pubblicato anche su

Costruisci la tua IA con fiducia.

Collabora con un team che vanta una profonda esperienza nella creazione della prossima generazione di IA aziendale. Lascia che ti aiutiamo a progettare, sviluppare e implementare una strategia di IA di cui ti puoi fidare.

Veriprajna società di consulenza Deep Tech è specializzata nella creazione di sistemi di IA safety-critical per i settori sanitario, finanziario e regolamentato. Le nostre architetture sono validate rispetto a protocolli consolidati con una documentazione di conformità completa.