L’approccio RAG (Retrieval Augmented Generation system) è ormai pervasivo nei sistemi basati su AI generativa: la possibilità di arricchire la conoscenza appresa da un modello generativa con informazione svolge un ruolo essenziale per aggiornare agevolmente la conoscenza del sistema integrandola con informazioni esterne.
Lo schema del RAG Open Souce Oraculum
Nel caso di modelli LLM che generano testo, le informazioni testuali vengono recuperate da un database (tipicamente vettoriale come, ad esempio, Weaviate) e iniettate nel prompt affinché le informazioni siano considerate per rispondere. Questo è lo schema di Oraculum, un sistema RAG Open Source che nasce per realizzare sistemi basati su AI generativa che rispondano in modo preciso e specifico minimizzando il rischio di allucinazioni da parte del modello.
Il modello LLM è quindi solo un componente di un sistema più complesso che ha il compito di sintetizzare le risposte “assemblando” le informazioni che un’altra parte del sistema ha recuperato a partire dalla richiesta ricevuta. Ma come è possibile verificare che il modello abbia accesso alle informazioni necessarie per rispondere in modo preciso? Come è possibile gestire la conoscenza che sarà poi usata per rispondere?
La gestione della conoscenza per alimentare l’AI è un tema centrale per ogni organizzazione, e il modo con cui questa conoscenza viene prodotta e mantenuta rende la sua codifica radicalmente differente dalle tipiche rappresentazioni utilizzate nei sistemi informativi tradizionali. Cerchiamo di capire cosa cambia e quali processi debbano essere rivisti all’interno di un’organizzazione per la sua gestione.
Atomi di conoscenza per l’AI
I creatori di modelli LLM stanno lavorando per eliminare il vincolo sulla dimensione del contesto del modello. Esistono modelli che promettono anche finestre di contesto illimitate, ma a prescindere dalla dimensione del contesto non bisogna dimenticare che gli LLM sono modelli statistici: la capacità di estrarre conoscenza e seguire le istruzioni presenti nel contesto tende a diluirsi al suo crescere.
Inoltre, se per la sintesi un contesto ampio svolge egregiamente il suo compito, l’analisi di informazioni richiede che più fatti coesistano all’interno del contesto, e pertanto si tratta di una sorta di “atomi” di conoscenza che devono stare in un numero sufficiente affinché tutte le informazioni rilevanti a una questione siano a disposizione del modello per generare la risposta.
In sostanza il motore RAG deve essere il più possibile preciso (ovverosia richiamare fatti rilevanti alla richiesta) ma anche in grado di richiamare la maggior parte di fatti rilevanti affinché il modello abbia a disposizione tutte le informazioni necessarie per non dover ricorrere alla propria conoscenza riducendo quindi di fatto anche il rischio di allucinazione.
Gestire la conoscenza: come funziona il processo
Proviamo a vedere in pratica come funzioni questo processo grazie all’interfaccia di explanation recentemente aggiunta al progetto Oraculum e che consente di vedere il contenuto della memoria di un assistente SIbylla al momento della generazione della risposta.
Come si può osservare nello screenshot seguente di 287 fatti curiosi a proposito di film solo 3 sono stati selezionati per la risposta.
In questo caso la ricerca si è rivelata sia precisa che completa, ma non sempre le cose vanno così bene:
In questo caso il database dei fatti non contiene alcuna informazione su Wall-E, la ricerca recupera fatti relativi a Pixar, casa che ha prodotto il film, e quindi il modello non ha informazioni specifiche. In questo esempio siamo stati fortunati: GPT ha deciso di dire che non conosce la risposta, ma può capitare che ne inventi una plausibile utilizzando la propria conoscenza.
Osservando il comportamento della memoria dal vivo rende evidente come limitarsi a considerare le allucinazioni del modello nella valutazione della qualità di una risposta è riduttivo: le informazioni rese disponibili al modello e il modo con cui vengono poste risultano determinanti per la qualità della risposta.
Osserviamo poi come i fatti siano relativamente concisi e autocontenuti: si tratta di elementi essenziali affinché nel contesto vi siano informazioni sufficienti per poter rispondere.
La sfida di un’organizzazione: gestire la conoscenza
In molti mi chiedono perché ho nominato Oraculum e non Sibylla il progetto open source, il motivo è legato al fatto che ritengo che il contributo che il progetto porta è nel concentrarsi sulla gestione della conoscenza che viene fornita al modello LLM.
Ma cosa possiamo dire a proposito dei frammenti di conoscenza che abbiamo visto? Cerchiamo di elencarne i tratti essenziali:
- La conoscenza è espressa testualmente e con dei campi generici come: titolo, contenuto, categoria, citazione
- La dimensione è più vicina a quella di un record di un database rispetto ad un documento, ma i dati sono decisamente meno strutturati
- È necessario considerare che un fatto possa essere vero solo in un certo momento dello spazio e del tempo
- I fatti possono divenire obsoleti nel tempo è quindi necessario monitorare ed aggiornare la base di conoscenza
I dati vengono quindi memorizzati in unità senza una particolare struttura in termini di campi e tipologia di dati: l’uso che si farà di questi frammenti di conoscenza è quello di generare un prompt testuale, non ha quindi senso strutturare il dato, ci si affida alla capacità del modello di estrarre la struttura dello stesso dal testo inserito nel contesto.
Quando paragoniamo un documento a un fatto potremmo affermare che il paragrafo di un documento equivale più o meno a un fatto. Ecco, quindi, che anche con pochi documenti il numero di fatti che ne rappresenta il contenuto è destinato a esplodere. Si pensi che i soli regolamenti dell’Università di Pisa hanno originato oltre 4.000 fatti per rappresentarli, ed è bastata una legge a invalidarne alcuni a fine anno.
Il processo di gestione della conoscenza per popolare un sistema RAG con i fatti necessari affinché un modello generativo possa rispondere in modo accurato alle richieste degli utenti richiede uno sforzo anche organizzativo e non solo tecnico: i documenti e i dati dell’organizzazione devono essere riscritti in termini di fatti affinché possano essere usati per la generazione dei prompt.
L’importanza del ciclo di retroazione nell’organizzazione
Eventuali errori richiedono un’analisi per verificare come mai il modello non abbia prodotto la risposta giusta. È quindi necessario un ciclo di retroazione nell’organizzazione con risorse umane dedicate ad analizzare la qualità delle risposte e a rettificare la conoscenza se necessario con l’ausilio di interfacce grafiche come quella che Oraculum mette a disposizione per analizzare graficamente il contenuto della memoria al momento della risposta.
A titolo di esempio, mentre sviluppavo la SIbylla che risponde alle domande sulla procedura missioni del mio Ateneo mi sono reso conto che, se chiedevo “Domani dovevo partire per una missione ma sono malato, cosa devo fare? Perdo le spese già sostenute?”, l’assistente rispondeva di non preoccuparmi che avrei ricevuto il rimborso. Il regolamento che regola le missioni in realtà raccomanda prima di provare a recuperare le spese già effettuate e solo dopo si può avere il rimborso di quelle che non sono state recuperabili. Analizzando il contenuto della memoria si è ritenuto opportuno aggiungere un nuovo fatto che sottolineasse l’importanza di tentare il recupero delle spese, e dopo l’aggiunta l’assistente non ha più risposto in modo inesatto o incompleto in materia.
Conclusioni
È importante che la conoscenza di un’organizzazione si adatti ai formati più consoni per essere utilizzati dall’intelligenza artificiale. È quindi importante non pensare che l’AI generativa sia solo una questione per tecnici: si tratta anche di un processo organizzativo con cui un’organizzazione scrive e mantiene la conoscenza assicurando che le informazioni messe a disposizione del modello LLM siano sempre valide e senza troppe sovrapposizioni (altrimenti si rischia di sprecare spazio nel contesto del modello replicando più volte le stesse informazioni).
I sistemi si evolvono e muoiono, ma la conoscenza rimane, e le informazioni acquisite per alimentare un sistema come Oraculum possono contribuire a molti altri scenari di intelligenza artificiale. Si tratta quindi di un investimento importante da avviare in ciascuna organizzazione, con la definizione di processi opportuni che assicurino che la conoscenza sia tenuta aggiornata e ampliata. Non bisogna quindi limitarsi ad aspettare un nuovo sistema nell’illusione che risolva tutti i problemi, si può cominciare subito a rivedere come i dati vengono gestiti nell’industria del futuro.