Ricerca delle informazioni per una generazione potenziata dalla ricerca

Informazioni per una generazione potenziata dalla ricerca

Tre consigli testati sul campo per migliorare drasticamente le prestazioni

Origine e diritti d'autore

Retrieval Augmented Generation (RAG) si riferisce a delle applicazioni basate su Large Language Model (LLM) che utilizzano un componente di Information Retrieval (IR) nel loro processo di generazione del contesto. Avere un componente di IR ad alte prestazioni che fornisce al LLM informazioni pertinenti è fondamentale per costruire un’applicazione RAG robusta. Questo post approfondisce tre (e mezzo) semplici consigli che possono migliorare drasticamente le prestazioni del tuo sistema di information retrieval. Quindi, senza ulteriori indugi, immergiamoci!

Consiglio 0.5 – Valutare le prestazioni del tuo IR

Il recupero delle informazioni si riferisce al processo di trovare informazioni da un vasto pool di dati che sono pertinenti per rispondere a una query di recupero. Nelle applicazioni RAG, i testi recuperati verranno collegati alla domanda fornita dall’utente per creare il prompt che verrà inviato al LLM.

Retrieval Augmented Generation. Immagine dell'autore. Icone da Flaticons.

Prima di iniziare a parlare dei consigli per migliorare le prestazioni, abbiamo bisogno di un modo affidabile per misurare le prestazioni del nostro sistema di information retrieval.

Costruzione del tuo set di valutazione

Il set di valutazione dovrebbe contenere un elenco di query rappresentative Q, un elenco di documenti D e una matrice binaria che indica quali documenti sono pertinenti per rispondere a quali query. Le query rappresentative sono indicative o tipiche dei diversi tipi di ricerche che gli utenti effettueranno comunemente nel sistema.

Suggerimento: Utilizza un LLM per costruire la matrice chiedendogli se un documento specifico contiene informazioni pertinenti per rispondere a una specifica query.

Una matrice binaria di rilevanza dei documenti. Creata dall'autore

Scegliere le giuste metriche di valutazione

Vogliamo verificare se il sistema di IR restituisce tutti i documenti pertinenti (alta recall), ma anche che restituisca solo documenti effettivamente pertinenti (alta precisione). A seconda del caso d’uso, uno può essere più importante dell’altro.

Un’altra decisione che dobbiamo prendere quando costruiamo il nostro sistema di IR è quale sarà il numero di documenti restituiti, K. Questo è un po’ un’arte. Vogliamo avere K il più piccolo possibile per ridurre il rumore (e potenzialmente i costi) pur rendendo il risultato contenere il maggior numero possibile di informazioni pertinenti. Pertanto, è importante misurare la qualità prevista per diversi valori di K.

Sulla base di queste due considerazioni, le metriche che consiglierei per la maggior parte dei casi d’uso sono la Precisione al rango k (P@k) e la Recall al rango k (R@k), che misurano la Precisione e la Recall per una varietà di possibili valori di K. È importante dedicare del tempo alla selezione della giusta metrica di valutazione per il caso d’uso. Per ulteriori dettagli, consiglio vivamente il seguente articolo di blog di Pinecone.

Conosci il tuo set di strumenti e seleziona il giusto strumento per il lavoro. Fonte.

Ora che abbiamo gli strumenti per stabilire una base di riferimento e per verificare se i miei consigli sono validi, passiamo all’azione.

Consiglio 1 – Integra TF/IDF per la distanza di similarità

Mi stai dicendo che c’è qualcosa di più nella distanza di similarità rispetto alla similarità del coseno nello spazio di embedding? Beh, sì.

Prima di tutti i sofisticati calcoli di distanza basati sull’embedding, i sistemi di IR si basavano su TF/IDF, l’approccio intuitivo per calcolare la similarità dei documenti basandosi sui termini che si verificano frequentemente in un particolare documento ma sono rari nell’intera collezione di documenti. Come si è scoperto, integrare una variante di TF/IDF (oltre alla ricerca basata sull’embedding) nei calcoli di similarità può fornire un significativo miglioramento delle prestazioni.

Questo può essere fatto rappresentando ogni documento come una combinazione di un vettore di embedding denso e un vettore sparso di parole. Questo metodo, altrimenti noto come ricerca ibrida o recupero ibrido, è supportato out-of-the-box da molti dei popolari fornitori di archivi vettoriali come Pinecone, Weaviate e molti altri.

La combinazione è più forte di ogni sua parte. Gilthor, una combinazione di Optimus Prime e Megatron.

Suggerimento 2 — Non incorporare il tuo testo così com’è

Indipendentemente dal metodo o modello di embedding che abbiamo scelto, il suo obiettivo è quello di creare una rappresentazione vettoriale in modo che i testi “simili” vengano mappati in vettori incorporati “simili”.

Il problema sorge quando le nostre informazioni archiviate hanno un formato completamente diverso rispetto alla nostra query di recupero. Ad esempio, nella domanda e risposta, le informazioni archiviate probabilmente saranno documenti informativi lunghi, mentre la query di recupero sarà probabilmente una breve domanda.

Per mitigare il problema, dobbiamo assicurarci che le informazioni archiviate e la query di recupero siano formattate in una struttura comune come primo passo del processo di embedding. Ciò può essere fatto sia nella procedura di embedding per le informazioni archiviate, nella query di recupero o in entrambe. Le operazioni di formattazione dovrebbero essere specifiche del caso d’uso e del dominio.

Suggerimento: In molti casi d’uso, l’operazione di formattazione può essere eseguita da un LLM.

Esempi:

  • Domanda e risposta — Per ogni documento archiviato, chiedere a un LLM: “A quale domanda fornisce una risposta questo documento?” Utilizzare gli embedding di questa risposta come rappresentazione del documento.
  • Formati non testuali come JSON possono essere convertiti in paragrafi testuali che descrivono le informazioni archiviate al loro interno.

Suggerimento 3 — Incorpora paragrafi, non documenti

Concentrarsi su oggetti testuali di dimensioni più piccole è probabilmente in grado di migliorare la qualità del contesto recuperato per le seguenti ragioni:

  1. Embedding più accurato: Il vettore incorporato avrà una migliore conservazione del contesto poiché i paragrafi di solito si concentrano su un singolo argomento, mentre i documenti potrebbero coprire argomenti multipli.
  2. Meno rumore: I risultati restituiti saranno più focalizzati e conterranno meno informazioni off-topic.
  3. In particolare per RAG — Capacità di adattare informazioni da più documenti nella finestra di contesto.

D’altra parte, ci sono alcuni svantaggi notevoli:

  1. Aumento significativo del numero di vettori incorporati che abbiamo bisogno di archiviare e sui quali calcolare i calcoli di distanza.
  2. Alcuni paragrafi potrebbero contenere informazioni che non possono essere comprese senza il contesto del documento.
Albero bonsai. A volte meno è meglio. Fonte.

Conclusioni

L’efficienza di Retrieval Augmented Generation dipende in gran parte dall’efficacia del componente di Information Retrieval. Pertanto, è importante valutare accuratamente il componente di recupero delle informazioni e lavorare per migliorarlo.

Modifiche minori nel modo in cui archiviamo le informazioni e nel modo in cui effettuiamo la ricerca di similarità possono migliorare notevolmente la qualità del nostro recupero delle informazioni. I tre suggerimenti discussi in questo post sono stati testati sul campo e hanno dimostrato di aumentare le prestazioni delle applicazioni in cui sono stati integrati.

Non vedo l’ora di sapere se l’integrazione dei suggerimenti ha fornito ciò che era promesso, così come di sentire altri suggerimenti che hanno funzionato per te.

Nadav Barak è un ricercatore pratico presso Deepchecks, una start-up che fornisce alle organizzazioni strumenti per convalidare e monitorare i loro sistemi basati su Machine Learning. Nadav ha una vasta esperienza in Data Science ed è un esperto di dominio nella costruzione e nel miglioramento delle applicazioni Generative NLP.