Che cos'è GraphRAG?

Che cos'è GraphRAG?

GraphRAG è una versione avanzata della retrieval-augmented generation (RAG) che incorpora dati strutturati a grafi, come i knowledge graphs (KG).1 A differenza dei sistemi RAG di base che si basano sulla ricerca vettoriale per recuperare testi semanticamente simili, la GraphRAG utilizza la struttura relazionale dei grafi per recuperare e elaborare informazioni basate su query specifiche di dominio. 

La GraphRAG è stata introdotta dalla ricerca Microsoft nel 2024 per affrontare i limiti dei modelli linguistici di grandi dimensioni (LLM).2 Gli LLM tradizionali spesso faticano con workflow complessi, specialmente nel ragionare su dati privati o strutturati, perché non hanno la capacità di comprendere le relazioni tra le entità. GraphRAG risolve questo problema utilizzando database a grafi per modellare queste relazioni, permettendogli di gestire query complesse, recuperare informazioni contestuali e migliorare la precisione nelle applicazioni di AI generativa (gen AI).

Le ultime tendenze in materia di AI, proposte da esperti

Ricevi insight selezionati sulle notizie più importanti e interessanti sull'AI. Iscriviti alla nostra newsletter settimanale Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Come funziona GraphRAG?

La retrieval-augmented generation (RAG) è una tecnica che recupera informazioni rilevanti utilizzando la ricerca di similarità da database vettoriale, fonti di conoscenza esterne e knowledge base interne. Quindi combina queste informazioni recuperate con gli LLM per generare output accurati e contestualizzati. Sebbene le applicazioni RAG tradizionali migliorino la funzionalità degli LLM nelle applicazioni di AI generativa, non hanno la capacità di acquisire le relazioni complesse nei dati. Faticano a svolgere compiti come il ragionamento multihop (combinando informazioni da più fonti per derivare risposte tramite connessioni logiche e inferenze indirette), il contesto relazionale e la comprensione dei dati gerarchici. Ad esempio, un approccio RAG tradizionale potrebbe avere difficoltà con una domanda come "Chi ha sviluppato la teoria della relatività?" perché richiede un ragionamento sulle relazioni tra entità. 

GraphRAG supera questo problema incorporando dati strutturati a grafo, che organizzano le informazioni come una rete di nodi (entità come persone o luoghi), edge (relazioni tra queste entità) ed etichette (attributi che definiscono la categoria di un nodo e di un edge). Ad esempio, un knowledge graph potrebbe rappresentare "Albert Einstein - ha sviluppato - la teoria della relatività." come pezzi di informazione strutturati a grafo, rendendo più facile per GraphRAG recuperare e elaborare queste informazioni. In questo esempio, i nodi sono "Albert Einstein" e "teoria della relatività", mentre l'edge è "sviluppato".

Architettura GraphRag

Componenti di GraphRAG

GraphRAG funziona attraverso quattro componenti principali:

  1. Processore di query

  2. Retriever

  3. Organizzatore

  4. Generatore

Processore di query

La query dell'utente viene pre-elaborata per identificare entità chiave e relazioni rilevanti per la struttura del grafo. Tecniche come ila named entity recognition (NER) e l'estrazione relazionale dal machine learning vengono utilizzate per mappare la query a nodi e edge all'interno del grafo. Ad esempio, una query come "Chi ha sviluppato la teoria della relatività?" identifica "Albert Einstein" come un nodo e "sviluppato" come la relazione da cercare nel grafo. Strumenti come Cypher, un linguaggio di query per grafi, vengono utilizzati per recuperare dati specifici di dominio dai knowledge graphs. 

Retriever

Il retriever individua ed estrae contenuti rilevanti da fonti di dati in grafi esterni in base alla query elaborata. A differenza dei sistemi RAG tradizionali che si basano su embedding vettoriali per testo o immagini, i retriever GraphRAG gestiscono dati a grafo strutturati sfruttando sia segnali semantici che strutturali. Utilizzano tecniche come algoritmi di attraversamento dei grafi (metodi come la ricerca breadth-first (BFS) o la ricerca depth-first (DFS) che esplorano il grafo per individuare nodi e edge rilevanti). Tecniche aggiuntive includono reti neurali a grafi (GNN) (modelli AI avanzati che apprendono la struttura dei grafi per recuperare dati in modo efficace), il recupero adattivo (che regola dinamicamente quanto del grafo è ricercato, riducendo informazioni o rumori irrilevanti) e modelli di embedding. Per la query "Chi ha sviluppato la teoria della relatività?", il retriever individua il nodo "teoria della relatività" nel grafo e segue la relazione "sviluppato da" per trovare "Albert Einstein".

Organizzatore

I dati dei grafi recuperati vengono raffinati per rimuovere le informazioni irrilevanti o rumorose attraverso tecniche come pruning dei grafi, reranking e augmentation. L'organizzatore aiuta a garantire che il grafo recuperato sia pulito, compatto e pronto per l'elaborazione, preservando al contempo le informazioni contestuali critiche. Per la domanda "Chi ha sviluppato la teoria della relatività?" l'organizzatore affina i dati del grafo recuperati rimuovendo nodi e archi irrilevanti, aiutando a garantire che venga mantenuta solo la relazione rilevante, "Albert Einstein - ha sviluppato - teoria della relatività". 

Generatore

I dati del grafo puliti vengono poi utilizzati per produrre l'output finale. Questo può comportare la generazione di risposte testuali tramite LLM o la creazione di nuove strutture di grafi per compiti scientifici, come la progettazione di molecole o l'espansione di grafi della conoscenza. Per la query "Chi ha sviluppato la teoria della relatività?", GraphRAG recupera "Albert Einstein" dal grafico e genera la risposta: "Albert Einstein ha sviluppato la teoria della relatività." Le tecniche di AI generativa vengono utilizzate per sintetizzare la risposta finale. 

Esempio di GraphRAG

Applicazioni di GraphRAG

GraphRAG è una tecnologia trasformativa per diversi settori, poiché combina ragionamento basato su grafi, ricerca vettoriale e AI generativa per gestire compiti specifici di dominio che richiedono informazioni contestuali profonde. Di seguito, esploriamo alcune delle applicazioni chiave di GraphRAG:

  1. Riepilogo testuale focalizzato sulle query (QFS)

  2. Raccomandazioni personalizzate

  3. Supporto decisionale

  4. Rilevamento delle frodi e prevenzione

  5. Gestione e recupero delle conoscenze

Riassunto testuale focalizzato sulle query (QFS)

GraphRAG può essere utilizzato per la sintesi di testo incentrata sulle query. Si concentra sulla risposta a specifiche domande degli utenti recuperando e sintetizzando informazioni da una rappresentazione grafica del testo. Uno studio ha dimostrato l'efficacia di GraphRAG nel rispondere a domande globali ed esplorative su grandi set di dati, come trascrizioni di podcast e articoli di notizie3 Ha superato i tradizionali sistemi RAG basati su vettori in compiti che richiedevano insight completi e diversificati. Ad esempio, GraphRAG è stato testato su un set di dati di podcast (~1 mln di token) con conversazioni con leader tecnologici e un set di dati di notizie (~1,7 mln di token) che coprono argomenti relativi a salute, economia e tecnologia. Tra le domande c'erano: "Come vedono i leader tecnologici le leggi sulla privacy?" e "Quali sono le principali priorità in materia di salute pubblica?" 

GraphRag elabora questi set di dati creando un knowledge graph con entità (ad esempio "leggi sulla privacy") e relazioni (ad esempio "impatto sulla tecnologia"), organizzandole in comunità gerarchiche (gruppo di nodi connessi che organizzano argomenti di alto livello in argomenti secondari specifici). I riepiloghi precostituiti della community consentono al sistema di recuperare e combinare in modo efficiente gli insight rilevanti. Rispetto alla RAG tradizionale, GraphRAG ha raggiunto una maggiore completezza (72-83%) e diversità (62-82%) nelle risposte generate, richiedendo fino al 97% di token in meno per i riepiloghi a livello di radice. Questa capacità rende GraphRAG uno strumento ideale per attività di interpretazione del significato in ambiti quali giornalismo, formazione e ricerca.

Consigli personalizzati

In ambiti come l'e-commerce e l'intrattenimento, la GraphRAG permette ai chatbot e ai motori di raccomandazione di offrire esperienze personalizzate. Ad esempio, nell'e-commerce, le interazioni passate tra utenti e prodotti possono formare un grafico. GraphRAG aiuta a gestire il crescente volume di dati di interazione degli utenti estraendo grafi secondari chiave che rivelano preferenze e comportamenti dell'utente. La ricerca ha dimostrato che l'utilizzo di più retriever per estrarre i grafi secondari pertinenti migliora la previsione delle azioni degli utenti, mentre il recupero di grafi secondari di problemi passati simili migliora la qualità dei sistemi di risposta alle domande e risposte del servizio clienti.4

Supporto decisionale

Nel settore sanitario, GraphRAG aiuta i medici a diagnosticare pazienti con sintomi complessi analizzando le relazioni tra malattie, sintomi e trattamenti all'interno di un database grafico. Recupera studi rilevanti, referti e informazioni sui farmaci per suggerire possibili diagnosi, evidenziare opzioni di trattamento efficaci e persino avvertire di possibili interazioni farmacologiche. Questa funzionalità consente ai professionisti sanitari di prendere decisioni più informate, ridurre gli errori diagnostici e fornire cure personalizzate ai pazienti.  

Ad esempio, uno studio recente ha introdotto MedGraphRAG, un framework progettato per applicazioni mediche.5 Organizza i dati medici in tre livelli: dati privati degli utenti (ad esempio, referti medici), letteratura medica recente sottoposta a peer-review e dizionari medici fondamentali, aiutando a garantire accuratezza, tracciabilità e rilevanza. Utilizzando una struttura gerarchica a grafo e una strategia "U-retrieve", recupera e sintetizza in modo efficiente le informazioni per le query degli utenti, migliorando le prestazioni degli LLM generando risposte affidabili e basate su evidenze con citazioni delle fonti. Questo framework dimostra il potenziale per workflow sicuri, trasparenti ed efficienti, aiutando i professionisti sanitari con insight fruibili.

Rilevamento e prevenzione delle frodi

GraphRag identifica pattern insoliti che si discostano dal comportamento previsto. Ad esempio, nei servizi finanziari, può rilevare schemi di transazione sospetti per prevenire frodi o scoprire opportunità di cross-selling analizzando il comportamento dei clienti. Collegando più transazioni piccole tra conti, GraphRAG può rivelare schemi fraudolenti più ampi, aiutando le banche a migliorare la gestione del rischio e a fornire servizi più personalizzati. 

Gestione della conoscenza e recupero

GraphRAG può migliorare la gestione della conoscenza organizzando e recuperando i documenti in modo da rendere la conoscenza più accessibile e adattata a query specifiche. Analizza il contesto e le relazioni tra i vari documenti e aiuta a estrarre le informazioni più rilevanti in modo rapido ed efficace. Ad esempio, un caso d'uso importante di GraphRAG è quello degli studi legali, dove eccelle nella gestione di vaste raccolte di documenti legali. Analizzando le relazioni e il contesto all'interno di migliaia di documenti legali, GraphRAG può recuperare in modo efficiente casi precedenti o riferimenti legali pertinenti, semplificando i workflow di ricerca e migliorando significativamente l'accuratezza.

AI Academy

Ascesa dell'AI generativa nel mondo del business

Scopri di più sull'ascesa dell'AI generativa e cosa comporta per le aziende.

Le sfide di GraphRAG

I sistemi GraphRAG presentano sfide come la gestione di relazioni dati complesse, l'aiuto a garantire un recupero efficiente e l'integrazione con i modelli linguistici. Queste sfide possono essere affrontate attraverso una progettazione attenta dello schema dei grafi, strategie di query ottimizzate e l'utilizzo di strumenti robusti. Le principali sfide associate a GraphRAG sono:

  1. Scalabilità

  2. Ottimizzazione dell'integrazione dei componenti

  3. Affidabilità

  4. Privacy e sicurezza

  5. Attendibilità

Scalabilità

Con l'aumento del volume di dati, è difficile scalare i sistemi GraphRAG. Le sfide includono la gestione dei dati non strutturati, lo storage efficiente dei grafi, l'ottimizzazione delle query dei grafi, il campionamento dei grafi secondari, la generazione reattiva, l'organizzazione dei componenti recuperati, l'addestramento e la messa a punto. L'implementazione di soluzioni hardware avanzate, come l'accelerazione GPU, la compressione e la manutenzione dei modelli, aggiunge ulteriore complessità.

Ottimizzazione dell'integrazione dei componenti

La progettazione di un sistema GraphRAG coeso richiede un'interazione fluida tra i componenti del processore di query, del retriever, dell'organizzzatore e del generatore. Garantire che questi componenti funzionino in sinergia mantenendo efficienza e precisione è una sfida complessa.

Affidabilità

Assicurare tassi di errore bassi nel ragionamento multistep è una sfida a causa dell'accumulo di errori nel recupero e nella generazione del multihop.

Privacy e sicurezza

La struttura relazionale dei grafi introduce rischi significativi di fuga di informazioni sensibili, poiché connessioni e schemi all'interno del grafo possono rivelare dati privati. Proteggere tali informazioni su tutta la pipeline GraphRAG richiede tecniche di preservazione della privacy robuste. I sistemi GraphRAG sono vulnerabili ad attacchi, tra cui lo sfruttamento delle strutture e la manipolazione dei prompt, il che sottolinea ulteriormente la necessità di misure di sicurezza avanzate.

Attendibilità

Sebbene GraphRAG offra una maggiore spiegabilità attraverso relazioni esplicite tra i nodi, generare percorsi di ragionamento o spiegazioni chiari e interpretabili rimane una sfida. Garantire che queste spiegazioni siano sia complete che fedeli alla logica del sistema è fondamentale per la fiducia in ambiti ad alto rischio come sanità, diritto e finanza.

Framework per costruire un sistema GraphRAG

I sistemi GraphRAG possono essere implementati utilizzando vari strumenti e framework, tra cui opzioni open source, per supportare l'elaborazione di documenti, la creazione di knowledge graph, la ricerca semantica e l'integrazione con gli LLM. Tra gli strumenti più diffusi figurano LangChain, LlamaIndex, Neo4j e OpenAI, con risorse e tutorial aggiuntivi disponibili su piattaforme come GitHub. 

LlamaIndex è utilizzato per indicizzare documenti, estrarre entità e relazioni per creare grafi di conoscenza, generare embedding e integrarsi con LLM come GPT. Neo4j funge da database per memorizzare e gestire le strutture dei grafi, consentendo un recupero efficiente attraverso l'attraversamento dei grafi e relazioni semantiche. 

Questi strumenti collaborano per consentire la ricerca semantica utilizzando embedding, gestione dei metadati per la trasparenza e generazione di risposte sensibili al contesto. Gli LLM, inclusi i modelli OpenAI GPT, integrati tramite API, aiutano a produrre risposte accurate e rilevanti basate sui dati dei grafi recuperati. 

GraphRAG rappresenta un grande passo avanti rispetto ai tradizionali sistemi RAG, limitati dai metodi di recupero lineare. Combina la potenza dei knowledge graphs, della ricerca semantica e dei modelli linguistici avanzati. Poiché idfiversi settori richiedono una comprensione più approfondita e insight interconnessi, GraphRAG è destinato a diventare una tecnologia chiave. In futuro consentirà sistemi informativi più intelligenti, più dinamici e altamente adattabili.

AI Academy

Ascesa dell'AI generativa nel mondo del business

Scopri di più sull'ascesa dell'AI generativa e cosa comporta per le aziende.

Soluzioni correlate
IBM watsonx.ai

Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.

Scopri watsonx.ai
Soluzioni di intelligenza artificiale

Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.

Esplora le soluzioni AI
Servizi AI

Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.

Esplora i servizi AI
Fai il passo successivo

Ottieni l'accesso completo a funzionalità che coprono l'intero ciclo di vita dello sviluppo dell'AI. Crea soluzioni AI all'avanguardia con interfacce intuitive, workflow e accesso alle API e agli SDK standard di settore.

Esplora watsonx.ai Prenota una demo live
Note a piè di pagina

1 Han, H., Wang, Y., Shomer, H., Guo, K., Ding, J., Lei, Y., ..., Tang, J. (2024). Retrieval-augmented generation with graphs (graphrag). arXiv preprint arXiv:2501.00309.

2 Larson, J., Truitt, S. (2024). GraphRAG: Unlocking LLM discovery on narrative private data. Microsoft Research Blog. https://www.microsoft.com/it-it/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/

3 Edge, D., Trinh, H., Cheng, N., Bradley, J., Chao, A., Mody, A., ..., Larson, J. (2024). From local to global: A graph rag approach to query-focused summarization. arXiv preprint arXiv:2404.16130.

4 Peng, B., Zhu, Y., Liu, Y., Bo, X., Shi, H., Hong, C., ..., Tang, S. (2024). Graph retrieval-augmented generation: A survey. arXiv preprint arXiv:2408.08921.

5 Wu, J., Zhu, J., Qi, Y., Chen, J., Xu, M., Menolascina, F., & Grau, V. (2024). Medical graph rag: Towards safe medical large language model via graph retrieval-augmented generation. arXiv preprint arXiv:2408.04187.