FocusLM
Tutti gli articoli

RAG contro contesto lungo: quale conviene davvero usare?

22 luglio 20267 min di lettura

Una volta che un modello può leggere un milione di token in un solo prompt, viene la tentazione di dichiarare morto il recupero: basta dargli tutto. Uno studio attento dice che la risposta è più interessante di così.

TL;DR

  • Date risorse sufficienti, fornire l’intero documento a un modello a contesto lungo tende a battere il recupero sulla qualità della risposta.
  • Il recupero (RAG) è drasticamente più economico perché invia molti meno token.
  • Un semplice router che invia le domande facili al RAG e quelle difficili al contesto lungo recupera gran parte della qualità a una frazione del costo.

Due modi per dare contesto a un modello

Esistono due grandi strategie per ancorare una risposta al tuo materiale. La generazione aumentata dal recupero (RAG) cerca nei tuoi dati, estrae i pochi frammenti più rilevanti e mette solo quelli nel prompt. Il contesto lungo salta il recupero e inserisce l’intero documento (o molti documenti) direttamente nella finestra. Man mano che le finestre superavano i centomila token, ci si è iniziati a chiedere se il RAG valesse ancora la complessità.

Cosa dimostra la ricerca

In Retrieval Augmented Generation or Long-Context LLMs? A Comprehensive Study and Hybrid Approach, i ricercatori di Google DeepMind hanno messo i due approcci a confronto diretto sui tre modelli a contesto lungo più potenti disponibili all’epoca — Gemini-1.5-Pro, GPT-4o e GPT-3.5-Turbo — su una serie di dataset di QA su documenti lunghi tratti da benchmark consolidati. Per ogni domanda hanno confrontato due configurazioni: fornire l’intero documento al modello (contesto lungo) rispetto al recuperare i primi k frammenti e fornire solo quelli (RAG).

Il loro risultato principale: quando il modello è potente e puoi permetterti di fornirgli tutto, il contesto lungo produce costantemente risposte migliori del RAG in media. Il recupero a volte scarta l’unico frammento che conteneva effettivamente la risposta; mettere l’intero documento nella finestra elimina questa modalità di fallimento. Ma i due approcci erano anche fortemente correlati — sulla grande maggioranza delle domande restituivano la stessa risposta, un fatto che gli autori avrebbero poi sfruttato.

Il rovescio della medaglia è il costo. Il contesto lungo significa pagare per elaborare decine o centinaia di migliaia di token a ogni singola query — anche quando la risposta stava in un solo paragrafo.

Il RAG, al contrario, invia solo una manciata di passaggi recuperati, quindi è molto più economico per query. Lo studio inquadra questo come un vero e proprio compromesso più che come un vincitore: il contesto lungo compra qualità, il RAG compra efficienza.

RAGContesto lungoRoutercosto per query →qualità della risposta →
Il compromesso qualitativo: il contesto lungo guida sulla qualità, il RAG sui costi, e un router punta all’angolo in alto a sinistra. Le posizioni sono illustrative.

L’ibrido: instrada, non scegliere

Quella correlazione è il varco. Gli autori propongono Self-Route, una pipeline in due passi che lascia decidere al modello stesso, per ogni query, quale strada prendere:

  1. Prima il RAG, con una via di fuga. Fornisci al modello i frammenti recuperati e chiedigli di rispondere oppure di dichiarare la domanda «senza risposta» a partire da ciò che gli è stato mostrato — niente tentativi a caso.
  2. Escala solo ciò che è senza risposta. Le domande che il modello segnala come senza risposta vengono rieseguite con l’intero documento nella finestra; tutto il resto mantiene l’economica risposta del RAG.

Poiché RAG e contesto lungo concordano già sulla maggior parte delle domande, solo una minoranza raggiunge mai il percorso costoso. Il risultato è una qualità delle risposte vicina a quella del contesto lungo sempre attivo a un costo vicino a quello del RAG sempre attivo.

La domanda giusta è raramente «RAG o contesto lungo?» — è «quale dei due serve a questa particolare query?».

Cosa significa per te

Due cose ne derivano per chiunque costruisca sopra un LLM. Primo, una finestra di contesto più ampia non rende inutile il recupero — cambia quando vi si ricorre. Secondo, l’impostazione predefinita intelligente non è «scarica sempre tutto» ma «tieni il materiale organizzato affinché il sistema possa estrarre la fetta giusta, e paga per l’intero solo quando una domanda ne ha davvero bisogno».

Dove si colloca FocusLM

FocusLM conserva il tuo materiale come una memoria strutturata anziché come un unico prompt in continua crescita. È quella struttura a rendere possibile il percorso economico: la maggior parte delle domande trova risposta nei pochi file rilevanti e citati, e il contesto più ampio è lì quando una domanda ne ha davvero bisogno — la stessa logica dell’instrada-non-scegliere, applicata a una memoria che cresce con te.

Letture correlate