Un modo semplice per comprendere come funziona GraphRAG |  di Rendy Dalimunthe |  Giugno 2024

 | Intelligenza-Artificiale

Esempi per aiutarti a comprendere il meccanismo di GraphRAG

Sviluppare un chatbot in grado di affrontare domande reali e dare risposte adeguate e precise è davvero un lavoro duro. Sebbene ci siano stati notevoli progressi nei modelli linguistici di grandi dimensioni, una sfida aperta è quella di accoppiare questi modelli con basi di conoscenza per fornire risposte affidabili e ricche di contesto.

fotografato da Google DeepMind SU Unsplash

Le questioni chiave si riducono quasi sempre all’allucinazione (il modello crea informazioni errate o inesistenti) e alla comprensione contestuale, in cui il modello non è in grado di comprendere le relazioni sfumate tra diverse informazioni. Altri hanno provato a costruire robusti sistemi di domande e risposte senza molto successo, poiché i modelli spesso restituiscono risposte mediocri, sebbene siano collegati a basi di conoscenza complete.

Mentre RAG può ridurre le allucinazioni collegando la risposta generata ai dati del mondo reale, rispondere accuratamente a domande complesse è una cosa diversa. Gli utenti vengono spesso accolti con risposte del tipo: “L'argomento xx non è trattato esplicitamente nel testo recuperato” anche quando la base di conoscenza contiene chiaramente le informazioni, anche se in modo meno ovvio. È qui che GraphRAG (Graph Retrieval-Augmented Generation) torna utile, migliorando la capacità del modello di fornire risposte precise e contestualmente ricche sfruttando i grafici della conoscenza strutturata.

RAG: collegamento tra recupero e generazione

RAG ha rappresentato un passo importante nella combinazione del meglio dei metodi basati sul recupero e sulla generazione. Data una query, RAG recupera documenti o passaggi rilevanti da un ampio corpus e quindi genera la risposta con queste informazioni. Si può, quindi, essere sicuri che il testo generato possa essere informativo e pertinente al contesto poiché è basato su dati concreti.

Ad esempio, in una domanda come “Qual è la capitale della Francia?” il sistema RAG cercherà nel suo corpus i documenti relativi allo stato della Francia e la menzione della sua capitale, Parigi. Recupererà i passaggi rilevanti e risponderà generando una risposta come “La capitale della Francia è Parigi.” Questo stile si adatta molto bene a una domanda semplice e a risposte chiaramente documentate.

Tuttavia, RAG vacilla su query più complesse, in particolare quelle in cui è necessario comprendere le relazioni tra entità, quando queste relazioni non sono esplicite nei documenti recuperati. Il sistema sta arrivando al fallimento e alla caduta con domande come “In che modo i contributi scientifici del XVII secolo hanno influenzato la fisica dell’inizio del XX secolo?” (parleremo più avanti di questo esempio).

GraphRAG: sfruttare la potenza dei grafici della conoscenza

GraphRAG, come descritto per la prima volta nel blog di Microsoft Research Quimira a aggirare queste limitazioni infondendo meccanismi di recupero basati su grafici nel modello. Fondamentalmente, riorganizza il testo non strutturato della base di conoscenza in un grafo di conoscenza strutturato, in cui i nodi rappresentano entità (ad esempio, persone, luoghi, concetti) e gli spigoli rappresentano le relazioni tra entità. Questo formato strutturato consente al modello di comprendere e utilizzare meglio le interrelazioni tra diverse informazioni.

fotografato da Alina Grubnjak SU Unsplash

Entriamo ora un po' nel dettaglio per comprendere il concetto di GraphRAG, confrontandolo con RAG, in modo semplice.

Per cominciare, prendiamo un'ipotetica base di conoscenza comprendente frasi tratte da vari testi scientifici e storici come segue:

1. “Albert Einstein sviluppò la teoria della relatività, che rivoluzionò la fisica teorica e l’astronomia”.

2. “La teoria della relatività è stata formulata all’inizio del XX secolo e ha avuto un profondo impatto sulla nostra comprensione dello spazio e del tempo”.

3. “Isaac Newton, noto per le sue leggi del movimento e della gravitazione universale, gettò le basi per la meccanica classica”.

4. “Nel 1915, Einstein presentò la teoria della relatività generale, ampliando il suo precedente lavoro sulla relatività speciale”.

5. “Il lavoro di Newton nel XVII secolo ha fornito le basi per gran parte della fisica moderna.”

In un sistema RAG, queste frasi verrebbero archiviate come testo non strutturato. E chiedere “In che modo i contributi scientifici del XVII secolo hanno influenzato la fisica dell’inizio del XX secolo?”ad esempio, avrebbe potuto mettere il sistema in una posizione difficile se l'esatta formulazione e la qualità del recupero dei documenti non erano collegate l'influenza del XVII secolo direttamente con la fisica dell’inizio del XX secolo. RAG potrebbe dare risposte come “Il lavoro di Isaac Newton nel XVII secolo ha fornito le basi per gran parte della fisica moderna. Albert Einstein sviluppò la teoria della relatività all’inizio del XX secolo”, poiché il meccanismo è stato in grado di recuperare informazioni rilevanti ma non può spiegare chiaramente l'influenza della fisica del XVII secolo sugli sviluppi dell'inizio del XX secolo.

Al contrario, GraphRAG trasforma questo testo in un grafico della conoscenza strutturato. Un grafico della conoscenza rappresenta il modo in cui cose diverse sono correlate tra loro. Utilizza una serie di ontologie, che sono un insieme di regole per aiutare a organizzare le informazioni. In questo modo può trovare connessioni nascoste, non solo quelle evidenti.

Utilizzando il sistema GraphRAG, la base di conoscenza precedente verrà trasformata in nodi e bordi come i seguenti.

Nodes: Albert Einstein, theory of relativity, theoretical physics, astronomy, early 20th century, space, time, Isaac Newton, laws of motion, universal gravitation, classical mechanics, 1915, general theory of relativity, special relativity, 17th century, modern physics.
Edges:
- (Albert Einstein) - (developed) → (theory of relativity)
- (theory of relativity) - (revolutionized) → (theoretical physics)
- (theory of relativity) - (revolutionized) → (astronomy)
- (theory of relativity) - (formulated in) → (early 20th century)
- (theory of relativity) - (impacted) → (understanding of space and time)
- (Isaac Newton) - (known for) → (laws of motion)
- (Isaac Newton) - (known for) → (universal gravitation)
- (Isaac Newton) - (laid the groundwork for) → (classical mechanics)
- (general theory of relativity) - (presented by) → (Albert Einstein)
- (general theory of relativity) - (expanded on) → (special relativity)
- (Newton's work) - (provided foundation for) → (modern physics)

Quando richiesto con il domanda “In che modo i contributi scientifici del XVII secolo hanno influenzato la fisica dell’inizio del XX secolo?” Il retriever basato su GraphRAG è in grado di riconoscere la progressione dal lavoro di Newton ai progressi di Einstein, evidenziando l'influenza della fisica del XVII secolo sullo sviluppo dell'inizio del XX secolo. Questo recupero strutturato consente alla risposta di essere contestualmente ricca e accurata: “Le leggi del movimento e della gravitazione universale di Isaac Newton, formulate nel XVII secolo, fornirono le basi per la meccanica classica. Questi principi hanno influenzato lo sviluppo della teoria della relatività da parte di Albert Einstein all’inizio del XX secolo, che ha ampliato la nostra comprensione dello spazio e del tempo”.

Fonte: towardsdatascience.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *