È difficile dire se le persone odiano amare il RAG o amano odiare il RAG.
Secondo recenti discussioni su X e HN, il RAG dovrebbe essere morto, di nuovo. Questa volta, le critiche si concentrano sull'eccessiva ingegnerizzazione della maggior parte dei framework RAG che, come hanno dimostrato @jeremyphoward @HamelHusain @Yampeleg, potrebbero essere realizzati con 20 righe di codice Python.
L'ultima volta che abbiamo avuto questa sensazione è stato poco dopo il rilascio di Claude/Gemini con una finestra di contesto molto ampia. Ciò che rende questa volta peggiore è che persino il RAG di Google genera risultati divertenti come hanno mostrato @icreatelife @mark_riedl, il che è ironico perché ad aprile, al Google Next di Las Vegas, Google aveva presentato il RAG come la soluzione di grounding.
tagDue problemi del RAG
Vedo due problemi con i framework e le soluzioni RAG che abbiamo oggi.
tagSolo feed-forward
Primo, quasi tutti i framework RAG implementano solo un percorso "feed-forward" e mancano di un percorso di "back-propagation". È un sistema incompleto. Ricordo che @swyx, in uno degli episodi di @latentspacepod, sosteneva che il RAG non sarà ucciso dalla lunga finestra di contesto degli LLM poiché:
- il contesto lungo è costoso per gli sviluppatori e
- il contesto lungo è difficile da debuggare e manca di decomponibilità.
Ma se tutti i framework RAG si concentrano solo sul percorso in avanti, come può essere più facile da debuggare rispetto a un LLM? È anche interessante vedere quante persone si entusiasmano eccessivamente per i risultati auto-magici del RAG da alcune POC casuali e dimenticano completamente che aggiungere più livelli forward senza tuning backward è un'idea terribile. Sappiamo tutti che aggiungere un altro livello alle reti neurali espande il loro spazio parametrico e quindi la capacità di rappresentazione, permettendogli di fare più cose potenziali, ma senza training, questo non significa nulla. Ci sono diverse startup nella Bay Area che lavorano sulla valutazione—essenzialmente cercando di valutare la perdita di un sistema feed-forward. È utile? Sì. Ma aiuta a chiudere il ciclo del RAG? No.
Quindi chi sta lavorando sulla back-propagation del RAG? Per quanto ne so, non molti. Conosco principalmente DSPy, una libreria di @stanfordnlp @lateinteraction che ha questa missione.
Ma anche per DSPy, il focus principale è sull'ottimizzazione delle dimostrazioni few-shot, non sull'intero sistema (o almeno dall'uso della community). Ma perché questo problema è difficile? Perché il segnale è molto sparso, e ottimizzare un sistema pipeline non differenziabile è essenzialmente un problema combinatorio—in altre parole, estremamente difficile. Durante il mio dottorato ho studiato un po' di ottimizzazione submodulare, e ho la sensazione che questa tecnica sarà molto utile nell'ottimizzazione del RAG.
tagIl grounding nel mondo reale è difficile
Sono d'accordo che il RAG serve per il grounding, nonostante i risultati divertenti di Google. Ci sono due tipi di grounding: search grounding, che usa i motori di ricerca per estendere la conoscenza del mondo degli LLM, e check grounding, che usa conoscenze private (ad esempio dati proprietari) per fare fact-checking.
In entrambi i casi, cita conoscenze esterne per migliorare la fattualità del risultato, a condizione che queste risorse esterne siano affidabili. Nei risultati divertenti di Google, si può facilmente vedere che non tutto sul web è affidabile (sì, grande sorpresa, chi l'avrebbe mai detto!), il che fa sembrare il search grounding cattivo. Ma credo che si possa riderne solo per ora. Ci sono alcuni meccanismi di feedback impliciti dietro l'interfaccia utente di Google Search che raccolgono le reazioni degli utenti a quei risultati e pesano la credibilità del sito web per un migliore grounding. In generale, dovrebbe essere abbastanza temporaneo, poiché questo RAG deve solo superare la fase iniziale, e i risultati miglioreranno nel tempo.



RAG è stato presentato come soluzione di grounding alla conferenza Google Next.
tagIl Mio Parere
RAG non è né morto né vivo; quindi smettiamola di discuterne. RAG è solo uno dei pattern algoritmici che si possono utilizzare. Ma se lo rendi l' algoritmo e lo idolatri, allora stai vivendo in una bolla che hai creato tu stesso, e questa bolla scoppierà.







