Ricerca vettoriale e RAG - Bilanciare accuratezza e contesto
Introduzione
I modelli linguistici di grandi dimensioni (LLM) hanno compiuto progressi significativi, soprattutto nel machine learning e nell'elaborazione del linguaggio naturale, facendo sì che le macchine gestiscano con facilità compiti complessi. Tuttavia, con la crescita della tecnologia LLM, è emerso un problema peculiare: le allucinazioni dell'AI. Si verifica quando l'AI genera informazioni errate o false, portandoci a mettere in discussione quanto siano affidabili questi sistemi. Christy Bergman, Developer Advocate presso Zilliz con una vasta esperienza in AI/ML, ha recentemente parlato dell'impatto di queste allucinazioni e di come influenzino l'implementazione dei sistemi di AI all'Unstructured Data Meetup.
Durante la sua presentazione, Christy ha discusso le cause delle allucinazioni dell'AI e i loro effetti. Ha anche menzionato il concetto principale chiamato Retrieval Augmented Generation (RAG), un metodo utilizzato per rendere i modelli linguistici più affidabili fornendo informazioni pertinenti e aggiornate relative alla domanda di un utente. Questa tecnica aiuta a garantire che i modelli possano accedere ai dati più recenti, come notizie o ricerche recenti, per fornire risposte migliori e ridurre gli errori.
Comprendere le allucinazioni dell'AI
Le allucinazioni dell'AI si riferiscono al fenomeno in cui i sistemi di intelligenza artificiale, in particolare quelli basati su modelli linguistici di grandi dimensioni, generano output fattualmente errati, fuorvianti o completamente inventati.
Questo problema può verificarsi per diversi motivi:
Mancanza di contesto: I modelli di AI potrebbero non avere abbastanza contesto per generare risposte accurate, soprattutto quando trattano query complesse o sfumate.
Problemi nei dati di addestramento: I dati utilizzati per addestrare i modelli di AI possono contenere errori, bias o informazioni obsolete, che i modelli possono replicare involontariamente.
Generalizzazione eccessiva: I modelli di AI potrebbero generalizzare eccessivamente a partire dai loro dati di addestramento, portando a estrapolazioni errate quando si trovano di fronte a input nuovi.
Limitazioni di progettazione: Alcune architetture di AI non sono progettate per verificare la veridicità dei loro output, concentrandosi invece sulla generazione di risposte statisticamente probabili basate sui loro dati di addestramento.
Christy ha fornito un ottimo esempio di questo all'Unstructured Data Meetup. Ha chiesto al sistema di AI "Gemini" di elencare tre politici nati a New York, e questo ha incluso Hillary Clinton, il che è sbagliato perché è nata a Chicago.
Questo esempio dimostra come l'AI possa commettere errori, anche su domande semplici e dirette.
Come ha menzionato Christy, “Nota che gli LLM possono essere addestrati su fonti non convenzionali, come Reddit, il che può portare a risultati insoliti.”
Come RAG allevia le allucinazioni
Retrieval Augmented Generation (RAG) è un approccio avanzato nell'elaborazione del linguaggio naturale che mira a migliorare l'accuratezza e l'affidabilità dei modelli di AI, in particolare riducendo le allucinazioni.
Christy ha spiegato che RAG è un nuovo metodo per integrare i propri dati nel processo di AI generativa. Ecco come funziona in termini semplici:
Si inizia inserendo i propri dati in un modello di embedding. Questo modello trasforma le informazioni in una serie di numeri chiamati vettori, che vengono poi archiviati in un database vettoriale.
Quando fai una domanda, lo stesso modello di embedding trasforma anche la tua query in un vettore, quindi cerca i vettori vicini più prossimi in questo database o spazio vettoriale. Una volta trovata la corrispondenza più vicina, la utilizza come contesto, insieme alla tua domanda, per inviare un prompt al modello linguistico di grandi dimensioni. In questo modo, ottieni una risposta che ha maggiori probabilità di essere accurata.
Ora, ecco come RAG affronta le allucinazioni dell'AI:
1. Rimanere aggiornati: I modelli RAG possono incorporare i dati più recenti, assicurando che le loro risposte siano basate sulle informazioni più aggiornate.
2. Accuratezza e dettaglio: Questi modelli sono progettati per fornire risposte accurate recuperando informazioni specifiche e pertinenti. Questo processo riduce la probabilità di generare contenuti falsi o inventati e garantisce che le risposte siano dettagliate e adattate con precisione alla domanda, evitando affermazioni eccessivamente generiche.
Sfide nella creazione di un sistema RAG
Costruire un sistema Retrieval Augmented Generation (RAG) comporta diversi passaggi e decisioni complessi. Ecco alcune sfide chiave:
Scelta di un modello di embedding
Quando scegli una modalità di embedding, puoi concentrarti su alcuni fattori chiave:
Dimensione del vettore: Scegli modelli che producano vettori di una dimensione facile da gestire.
Prestazioni di recupero: Guarda come si comportano modelli noti di realtà come Cohere e Voyager.
Dimensione del modello: Considera la dimensione del modello per assicurarti che sia compatibile con le tue capacità computazionali.
Accuratezza: Assicurati che il modello riesca a cogliere i dettagli fini importanti per il tuo settore o prodotto.
Scalabilità: Assicurati che il modello possa gestire più dati man mano che le tue esigenze crescono.
E per quanto riguarda le opzioni, puoi scegliere tra:
Modelli open source: Sono disponibili gratuitamente e possono essere confrontati e selezionati da piattaforme come l'hub dei modelli di embedding di Hugging Face.
Modelli proprietari: Aziende come Cohere o OpenAI offrono modelli che potrebbero avere funzionalità uniche o prestazioni migliori per attività specifiche, ma a pagamento.
Scelta di un indice
Selezionare una struttura di indice appropriata è fondamentale per le prestazioni del sistema. Ciò implica considerare:
Scalabilità: L'indice deve essere in grado di scalare a milioni o miliardi di documenti senza diventare proibitivamente lento.
Impronta di memoria: Un uso efficiente della memoria è importante, soprattutto quando si lavora con grandi dataset.
Velocità di recupero vs. accuratezza: Spesso c'è un compromesso tra la rapidità con cui i documenti possono essere recuperati e la precisione con cui corrispondono alla query.
Chunking
Il chunking consiste nel suddividere i documenti in parti più piccole e semanticamente coerenti per facilitare un recupero più preciso.
Determinare la dimensione dei chunk: Troppo grandi, e i chunk potrebbero essere meno focalizzati; troppo piccoli, e il contesto importante potrebbe andare perso.
Mantenere la coerenza: Garantire che ogni chunk rimanga significativo e coerente da solo.
Gestire le sovrapposizioni: Decidere come gestire le informazioni che potrebbero rientrare in più chunk.
Parole chiave o ricerca semantica
La scelta tra ricerca basata su parole chiave e ricerca semantica può influire sulla capacità del sistema di comprendere e rispondere alle query.
Sebbene la ricerca per parole chiave possa sembrare semplice e veloce, perdere documenti che non contengono le parole chiave esatte, anche se sono semanticamente pertinenti, può influire notevolmente sulla nostra accuratezza. Al contrario, la ricerca semantica offre una comprensione più profonda dell'intento della query, ma richiede più risorse computazionali e modelli sofisticati.
Reranker
I reranker sono modelli o algoritmi aggiuntivi che perfezionano i risultati iniziali del recupero, con l'obiettivo di migliorare la rilevanza e l'accuratezza dei documenti selezionati per generare la risposta finale. La domanda diventa: vale la pena usarli e di cosa abbiamo bisogno per integrarli con successo?
Integrazione: I reranker devono essere integrati nel sistema senza soluzione di continuità, senza introdurre latenza significativa.
Dati di addestramento: Come altri modelli, i reranker hanno bisogno di dati di addestramento di alta qualità e rappresentativi per essere efficaci.
Ottimizzazione: Trovare il giusto equilibrio tra il recupero iniziale e la fase di reranking può essere impegnativo.
RAG è morto?
Una domanda del talk di Christy che ultimamente mi assilla è se RAG sia ancora il protagonista ora che gli LLM a contesto lungo stanno migliorando le loro prestazioni.
I recenti progressi nei Long Context LLMs hanno sollevato domande sul futuro delle tecniche di Retrieval-Augmented Generation (RAG). Con modelli come Claude o Gemini 1.5 Pro, che possono elaborare fino a 10 milioni di token, alcuni sostengono che l’approccio di recupero dinamico di RAG non sia più necessario.
Il confronto: il contesto lungo può fare a meno di RAG?
Questa è la domanda di cui parlano tutti. Analizziamola.
Costi ed efficienza:
La natura parsimoniosa di RAG, che prende solo ciò di cui ha bisogno, consente di risparmiare sui costi di calcolo. Ma man mano che i prezzi della tecnologia AI diminuiscono, gli LLM a contesto lungo diventano più convenienti. Qui è una decisione difficile.
Dinamiche di recupero e ragionamento:
Gli LLM a contesto lungo combinano il loro ragionamento con il recupero delle informazioni, creando un tocco più personalizzato nelle risposte. La raccolta anticipata di informazioni di RAG può sembrare un po’ robotica al confronto.
Scalabilità e complessità dei dati:
La capacità di RAG di gestire trilioni di token è la sua carta vincente, rendendolo il re nella gestione di dataset enormi e in continua evoluzione. Gli LLM a contesto lungo restano indietro qui.
Collaborazione invece di competizione:
Perché non usarli entrambi? Combinare la precisione di RAG con l’adattabilità dei modelli a contesto lungo potrebbe portare a una potente sinergia.
OpenAI RAG vs. il tuo RAG personalizzato
Bene, hai visto cos’è RAG e le sfide che presenta. Ora è il momento di approfondire gli aspetti tecnici della creazione di un RAG. In particolare, parleremo del RAG di OpenAI e di come si confronta con la creazione di un RAG personalizzato usando database vettoriali come Milvus.
Una bella domanda posta da un membro del pubblico è stata “Quali sono le ragioni per fare un RAG personalizzato invece di un RAG Open AI”
Come ha menzionato Christy, la parte più importante è “Così puoi avere più visibilità sul sistema RAG, cosa che non hai usando Open AI; come sviluppatore sai cosa modificare”
Il ruolo dell’OpenAI Assistant API nella creazione di RAG
L’OpenAI Assistant API è uno strumento potente che ti permette di creare assistenti AI all’interno delle tue app. Un Assistant ha istruzioni e può usare modelli, strumenti e file per rispondere alle query degli utenti. Questa API è ottima per app che richiedono conversazioni coinvolgenti e a lungo termine, come l’assistenza clienti o gli assistenti personali virtuali.
Confronto tra OpenAI RAG e RAG personalizzato
Christy ha mostrato due approcci per creare un RAG: uno usando l’OpenAI API e un altro personalizzandolo con un database vettoriale chiamato Milvus. Questo confronto ci aiuterà a comprendere le differenze e i vantaggi di ciascun approccio..
Ecco le differenze chiave tra OpenAI RAG e RAG personalizzato.
| Criteri | OpenAI RAG | RAG personalizzato |
| Idoneità dell'applicazione | Buono per assistenza clienti, assistenti personali virtuali e conversazioni a lungo termine | Ottimo per assistenza alla ricerca accademica, query complesse e dati basati sui fatti |
| Prestazioni e scalabilità | Tempi di risposta rapidi ed elevata efficienza | Può sperimentare tempi di risposta più lenti a causa del recupero dal database |
| Complessità di implementazione | Facile da configurare e usare | Richiede competenze nell'integrazione di modelli di IA e nella gestione di database |
| Considerazioni sui costi | Prezzi basati sull'utilizzo | I costi includono risorse computazionali e manutenzione del database |
Un approccio RAG personalizzato che utilizza database vettoriali come Milvus offre maggiore flessibilità e controllo, ma richiede più competenze e risorse
Vuoi vedere il codice in azione? Dai un'occhiata a questo notebook per un esempio pratico!
Metodi di valutazione RAG
Per valutare una pipeline RAG, è necessario esaminare entrambe le parti separatamente e insieme. È inoltre necessario verificare se le prestazioni stanno migliorando. Per farlo, servono due cose: una metrica di valutazione e un dataset.
Poiché Christy ha affrontato questa parte nel suo intervento, il focus principale che ha menzionato era “La tua risposta è fondata e risponde fedelmente alla domanda”
Uno degli strumenti menzionati da Christy è Truera, una piattaforma che aiuta a valutare e ottimizzare le applicazioni basate su Large Language Model (LLM).
Con Truera, puoi:
Valutare le tue app LLM
Ottimizzare la scelta delle tue app LLM utilizzando funzioni di feedback e tracciamento delle app
Minimizzare le allucinazioni sfruttando funzionalità come la triade RAG e altre funzioni di feedback pronte all'uso
Monitorare e tracciare app LLM in produzione su larga scala, creando dashboard reattive e impostando avvisi azionabili
Christy ha parlato anche di RAGAs, è un framework creato appositamente per valutare le pipeline RAG. Offre tutte le necessità tecniche per valutare ogni componente della pipeline in isolamento.
RAGAs necessita delle seguenti informazioni:
· Domanda: la query dell'utente
· Risposta: la risposta generata
· Contesti: le informazioni recuperate dalla fonte di conoscenza esterna
· Verità di riferimento: la risposta corretta alla domanda (necessaria solo per una metrica)
RAGAs fornisce diverse metriche per valutare la pipeline, tra cui:
· Precisione del contesto: quanto sono rilevanti le informazioni recuperate
· Richiamo del contesto: se tutte le informazioni rilevanti sono state recuperate
· Fedeltà: quanto è accurata la risposta generata
· Rilevanza della risposta: quanto è rilevante la risposta generata rispetto alla domanda
Valutare gli LLM usando altri LLM come giudice
Valutare i large language models (LLM) può essere impegnativo. Una soluzione è fare in modo che gli LLM si valutino a vicenda. Questo processo prevede la generazione di casi di test e la misurazione delle prestazioni del modello.
Ecco come funziona:
Generazione automatica di test: un LLM crea una gamma di casi di test, inclusi diversi input, contesti e livelli di difficoltà.
Metriche di valutazione: l’LLM valutato risolve i casi di test e le sue prestazioni vengono misurate utilizzando metriche come accuratezza, fluidità e coerenza.
Confronto e classificazione: i risultati vengono confrontati con una baseline o con altri LLM, mostrando i punti di forza e di debolezza di ciascun modello.
Un punto interessante menzionato da Christy che è davvero intrigante è “GPT che si classifica più in alto quando è il giudice”, il che mostra un altro aspetto che dobbiamo considerare quando valutiamo gli LLM per garantire l’accuratezza.
potresti voler dare un’occhiata a questo articolo per approfondire l’argomento.
Conclusione
E questo è tutto! Abbiamo trattato le allucinazioni dell’AI e come RAG può aiutare a risolvere il problema. Christy ha fornito un’ottima spiegazione di come la costruzione di RAG richieda scelte attente di modelli di embedding, indici e approcci di ricerca semantica. Affrontando il problema delle allucinazioni dell’AI e sfruttando il recupero dinamico di informazioni aggiornate, RAG offre uno strumento potente per creare sistemi di AI più affidabili e consapevoli del contesto.
Il percorso di costruzione di un sistema RAG implica decisioni ponderate sui modelli di embedding, sull’indicizzazione e sulla gestione di vasti dataset. Sebbene impegnativo, i benefici in termini di prestazioni e accuratezza sono sostanziali.
Che tu sia incuriosito dalle sfumature tecniche o ispirato dalle applicazioni pratiche, questo è il momento perfetto per immergerti in RAG. Sperimenta con database vettoriali come Milvus, integra tecniche di ricerca avanzate e osserva in prima persona come RAG può trasformare il recupero dei dati e le interazioni con l’AI.
Continua a leggere

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Cosmos World Foundation Model Platform for Physical AI
NVIDIA's Cosmos platform enables safe, digital twin training of GenAI models for physical applications, overcoming data scarcity and safety challenges.


