Nel panorama in rapida evoluzione dell'intelligenza artificiale generativa, la Generazione Aumentata da Recupero (RAG) si è affermata come il caso d'uso più ampiamente adottato e di successo tra i clienti. Questa tecnica rivoluzionaria migliora significativamente la precisione e l'affidabilità dei modelli linguistici di grandi dimensioni (LLM) permettendo loro di attingere a informazioni provenienti da fonti esterne, siano esse documenti non strutturati o dati strutturati. L'abilità di RAG di contestualizzare le risposte con dati precisi e aggiornati è diventata indispensabile per un'ampia gamma di applicazioni, dalla risposta a domande aziendali alla sintesi di documenti complessi.

Parallelamente all'ascesa di RAG, stiamo assistendo a una progressione notevole nelle capacità degli LLM stessi, in particolare per quanto riguarda la lunghezza del contesto che possono gestire. Modelli all'avanguardia come Anthropic Claude, con una sorprendente lunghezza di contesto di 200.000 token, GPT-4-turbo, che offre 128.000 token, e Google Gemini 1.5 Pro, che vanta un'impressionante capacità di 2 milioni di token, stanno ridefinendo i limiti di ciò che è possibile. Questa espansione delle finestre di contesto apre nuove possibilità per gli sviluppatori di applicazioni LLM, consentendo loro di incorporare un volume significativamente maggiore di documenti direttamente nelle loro applicazioni RAG.

L'avanzamento verso contesti estremamente lunghi ha persino scatenato un dibattito tra gli esperti: i modelli a linguaggio a lungo contesto finiranno per soppiantare completamente i flussi di lavoro RAG? La logica dietro questa domanda è intrigante: perché preoccuparsi di recuperare documenti individuali da un database se è possibile inserire l'intero corpus di informazioni direttamente nella finestra di contesto del modello? Questo interrogativo fondamentale è al centro dell'indagine condotta da Databricks, che ha esplorato l'impatto dell'aumento della lunghezza del contesto sulla qualità delle applicazioni RAG.

L'ascesa di RAG e dei modelli a linguaggio a contesto lungo

Il team di Databricks ha intrapreso un'ampia ricerca, conducendo oltre 2.000 esperimenti su 13 popolari LLM, sia open source che commerciali, per analizzare le loro prestazioni su diversi set di dati specifici del dominio. I risultati di questo studio approfondito offrono intuizioni cruciali sulla sinergia tra RAG e i modelli a lungo contesto.

Un flusso di lavoro RAG tipico implica almeno due fasi principali: una fase di recupero, in cui vengono identificate e recuperate informazioni pertinenti da un corpus esterno, e una fase di generazione, in cui l'LLM utilizza queste informazioni per formulare una risposta. La capacità di RAG di migliorare la qualità dei sistemi di domande e risposte è stata ampiamente dimostrata in numerosi domini e compiti, come evidenziato da studi significativi (Lewis et al. 2020).

La tendenza dei modelli a linguaggio a lungo contesto è inequivocabile. Mentre il GPT-3.5 originale aveva una lunghezza di contesto limitata a soli 4.000 token, le versioni più recenti come GPT-4-turbo e GPT-4o hanno portato questa capacità a 128.000 token. Similmente, Claude 2 offre una lunghezza di contesto di 200.000 token, e il già citato Gemini 1.5 Pro spicca con un impressionante contesto di 2 milioni di token. Anche nel panorama open source, la progressione è stata rapida: la prima generazione di modelli Llama era limitata a 2.000 token, ma modelli più recenti come Mixtral e DBRX hanno raggiunto i 32.000 token. Il recentemente rilasciato Llama 3.1 spinge ulteriormente questo limite a 128.000 token.

Il vantaggio intrinseco di utilizzare un contesto lungo per RAG è evidente: il sistema può arricchire la fase di recupero includendo un maggior numero di documenti recuperati nel contesto del modello di generazione. Questo, a sua volta, aumenta significativamente la probabilità che un documento altamente pertinente per rispondere alla domanda sia disponibile per il modello, migliorando così la qualità e l'accuratezza delle risposte generate.

Le sfide dei modelli a contesto lungo

Nonostante i chiari vantaggi, recenti valutazioni dei modelli a lungo contesto hanno evidenziato due limitazioni generalizzate che meritano attenzione:

  • Il problema "Lost in the middle": Studi di Raghavan et al. (2023) e Liu et al. (2023) hanno dimostrato che le prestazioni dei modelli possono diminuire quando le informazioni più rilevanti non sono collocate all'inizio o alla fine della finestra di contesto, ma piuttosto "perse nel mezzo". Questo suggerisce che l'aumento della lunghezza del contesto non garantisce automaticamente una migliore integrazione delle informazioni se il modello ha difficoltà a identificarle all'interno di un vasto corpus.
  • Leggi di scaling poco comprese: Le leggi di scaling che governano le prestazioni dei modelli a lungo contesto non sono ancora completamente comprese (Press et al. 2021). Ciò significa che l'aumento della lunghezza del contesto potrebbe non portare a un miglioramento lineare o proporzionale delle prestazioni, e potrebbero esserci punti di rendimento decrescente o complessità inattese.

Con queste osservazioni in mente, Databricks ha progettato una serie di esperimenti mirati a sondare il valore potenziale dei modelli a lungo contesto, la loro lunghezza di contesto effettiva nei flussi di lavoro RAG e a valutare quando e come questi modelli possono fallire.

La metodologia di ricerca di Databricks

Per esaminare l'effetto del contesto lungo sul recupero e sulla generazione, sia individualmente che sull'intera pipeline RAG, sono state esplorate le seguenti domande di ricerca:

  • In che modo la lunghezza del contesto influisce sulla qualità del recupero (richiamo)?
  • In che modo la lunghezza del contesto influisce sulla qualità della pipeline RAG?
  • In che modo la lunghezza del contesto influisce sulla qualità della generazione LLM (da sola)?

Impostazioni per il recupero dei dati

Per gli esperimenti 1 e 2 sono state utilizzate le seguenti impostazioni di recupero:

  • Modello di embedding: OpenAI text-embedding-3-large
  • Dimensione del chunk: 512 token
  • Numero di documenti (Top k): 20
  • Strategia di suddivisione del testo: Suddivisore di testo ricorsivo per caratteri con separatori \n\n, \n, , .

Impostazioni per la generazione LLM

Per l'esperimento 2 sono state utilizzate le seguenti impostazioni di generazione LLM:

  • Temperatura: 0
  • Top p: 0.95
  • Max nuovi token: 512

Calcolo dei token di prompt

Quando si confrontavano le prestazioni a una lunghezza di contesto X, è stato utilizzato il seguente metodo per calcolare quanti token utilizzare per il prompt:

lunghezza_massima_contesto - (numero_chunk_restituiti * dimensione_chunk + buffer_prompt + buffer_risposta)

Il resto rappresenta la capacità massima per la lunghezza del prompt (questo è il motivo per cui è stata utilizzata una lunghezza di contesto di 125.000 anziché 128.000, poiché si voleva lasciare un buffer sufficiente per evitare errori di "out-of-context").

I set di dati utilizzati

In questo studio, tutti gli LLM sono stati testati su 4 set di dati RAG curati, formattati sia per il recupero che per la generazione. Questi includevano Databricks DocsQA e FinanceBench, che rappresentano casi d'uso specifici del settore, e Natural Questions (NQ) e HotPotQA, che rappresentano contesti più accademici.

Esperimento 1: prestazioni di richiamo e lunghezza del contesto

In questo esperimento, i ricercatori hanno valutato come il recupero di un maggior numero di risultati avrebbe influenzato la quantità di informazioni pertinenti posizionate nel contesto del modello di generazione. Specificamente, è stato ipotizzato che il recuperatore restituisse X numero di token, quindi è stato calcolato il punteggio di richiamo a tale soglia. Da un altro punto di vista, la prestazione del richiamo rappresenta il limite superiore della prestazione del modello di generazione quando il modello è tenuto a utilizzare solo i documenti recuperati per generare risposte.

I risultati di richiamo per il modello di embedding OpenAI text-embedding-3-large sui 4 set di dati e diverse lunghezze di contesto hanno mostrato dinamiche interessanti. È stata utilizzata una dimensione del chunk di 512 token e un margine di 1,5k per il prompt e la generazione.

Punto di saturazione del richiamo

Come si può osservare dai risultati, il punteggio di richiamo di recupero per ogni set di dati raggiunge la sua saturazione a una lunghezza di contesto diversa. Per il set di dati Natural Questions (NQ), la saturazione si verifica precocemente a una lunghezza di contesto di 8.000 token. Al contrario, i set di dati DocsQA, HotpotQA e FinanceBench raggiungono la loro saturazione rispettivamente a 96.000 e 128.000 token di lunghezza di contesto. Questi risultati dimostrano che, con un semplice approccio di recupero, ulteriori informazioni pertinenti sono disponibili per il modello di generazione fino a 96.000 o 128.000 token. Di conseguenza, la dimensione di contesto aumentata dei modelli moderni offre la promessa di catturare queste informazioni aggiuntive per migliorare la qualità complessiva del sistema.

Esperimento 2: prestazioni del pipeline RAG end-to-end

Nel secondo esperimento, l'attenzione si è spostata sulla combinazione delle fasi di recupero e generazione in un semplice pipeline RAG. Per misurare le prestazioni di RAG a una determinata lunghezza di contesto, è stato aumentato il numero di chunk restituiti dal recuperatore per riempire il contesto del modello di generazione fino a una data lunghezza di contesto. Successivamente, è stato richiesto al modello di rispondere alle domande di un dato benchmark. Di seguito sono riportate le osservazioni sui risultati di questi modelli a diverse lunghezze di contesto.

Analisi per set di dati

  • Natural Questions (NQ): Essendo un set di dati generale di domande e risposte pubblicamente disponibile, si presume che la maggior parte dei modelli linguistici sia stata addestrata o affinata su compiti simili a Natural Questions. Di conseguenza, si sono osservate differenze di punteggio relativamente basse tra i diversi modelli a lunghezze di contesto brevi. Tuttavia, all'aumentare della lunghezza del contesto, alcuni modelli hanno iniziato a mostrare prestazioni ridotte, suggerendo che un contesto eccessivo o una gestione inefficiente dello stesso possano diventare un ostacolo.
  • Databricks DocsQA: A differenza di Natural Questions, il set di dati Databricks DocsQA non è pubblicamente disponibile (sebbene sia stato curato da documenti pubblicamente disponibili). I compiti sono più specifici per un caso d'uso e si concentrano sulla risposta a domande aziendali basate sulla documentazione Databricks. Si presume che, poiché i modelli sono meno propensi ad essere stati addestrati su compiti simili, le prestazioni di RAG varino maggiormente tra i diversi modelli rispetto a quelle di Natural Questions. Inoltre, poiché la lunghezza media dei documenti per il set di dati è di 3.000 token, significativamente più corta rispetto a quella di FinanceBench, la saturazione delle prestazioni si verifica prima rispetto a FinanceBench.
  • FinanceBench: Questo è un altro benchmark specifico per un caso d'uso, composto da documenti più lunghi, in particolare i depositi SEC 10k. Per rispondere correttamente alle domande del benchmark, il modello necessita di una maggiore lunghezza di contesto per catturare le informazioni pertinenti dal corpus. Questo è probabilmente il motivo per cui, rispetto ad altri benchmark, il richiamo per FinanceBench è basso per dimensioni di contesto ridotte. Di conseguenza, le prestazioni della maggior parte dei modelli si saturano a una lunghezza di contesto più lunga rispetto a quella degli altri set di dati.

Conclusioni

Facendo una media di questi risultati provenienti dai vari compiti RAG, è stato possibile delineare un quadro complessivo delle prestazioni. Lo studio di Databricks evidenzia che l'aumento della lunghezza del contesto negli LLM offre opportunità significative per migliorare le applicazioni RAG, fornendo ai modelli un accesso più ampio a informazioni pertinenti. Tuttavia, la performance non è lineare e dipende fortemente dal tipo di dati e dal compito specifico. L'esistenza di punti di saturazione variabili e il potenziale "lost in the middle" suggeriscono che l'ottimizzazione della lunghezza del contesto e delle strategie di recupero rimangono cruciali per massimizzare l'efficacia delle soluzioni RAG. Questo studio sottolinea l'importanza di un'attenta valutazione e calibrazione dei sistemi RAG in relazione alle capacità dei modelli a lungo contesto per garantire prestazioni ottimali in scenari del mondo reale.