De kracht van kennisgrafieken ontgrendelen: Verkenning van Graph RAG voor verbeterde ophaal-ondersteunde generatie

Ontgrendel de kracht van kennisgrafieken met Graph RAG, een baanbrekend systeem dat kennisgrafieken en Retrieval Augmented Generation (RAG) combineert voor verbeterde ophaling en generatie. Verken de technische details, stel het lokaal in en beoordeel de kostenimplicaties. Ontdek hoe Graph RAG de beperkingen van traditionele RAG-benaderingen aanpakt.

16 februari 2025

party-gif

Ontgrendel de kracht van kennisgrafieken met Graph RAG, een baanbrekend systeem dat de voordelen van Retrieval Augmented Generation (RAG) combineert met het contextuele begrip van kennisgrafieken. Ontdek hoe deze innovatieve aanpak uw content-generatie kan verbeteren en de nauwkeurigheid en relevantie van uw antwoorden kan vergroten, terwijl u inzicht krijgt in de kostenimplicaties van het uitvoeren van Graph RAG.

Ontdek de kracht van Graph RAG: Retrieval Augmented Generation verbeteren met kennisgrafieken

Graph RAG is een baanbrekend systeem dat kennisgrafieken combineert met Retrieval Augmented Generation (RAG) om de beperkingen van traditionele RAG-benaderingen aan te pakken. Door gebruik te maken van kennisgrafieken biedt Graph RAG een meer holistische begrip van het onderliggende corpus, waardoor nauwkeurigere en contextueel relevantere antwoorden mogelijk zijn.

De belangrijkste aspecten van Graph RAG zijn:

  1. Indexeringsfase: In deze fase worden de brondocumenten verwerkt en worden entiteiten geëxtraheerd en gebruikt om een kennisgraaf op te bouwen. De kennisgraaf vertegenwoordigt de relaties tussen verschillende entiteiten, die vervolgens worden gebruikt om samenvattingen op verschillende granulariteitsniveaus te maken.

  2. Vraagfase: Wanneer een gebruikersquery wordt gegeven, selecteert Graph RAG het juiste niveau van de gemeenschap (samenvatting) op basis van de query en haalt de relevante informatie op. De antwoorden van meerdere gemeenschappen worden vervolgens gecombineerd om het uiteindelijke antwoord te genereren.

Deze aanpak pakt de beperkingen van de traditionele RAG aan, zoals beperkt contextueel begrip en schaalbaarheidsproble men. Door gebruik te maken van kennisgrafieken kan Graph RAG een uitgebreider begrip van de onderliggende gegevens bieden, wat leidt tot nauwkeurigere en coherentere antwoorden.

Eén van de belangrijkste voordelen van Graph RAG is de mogelijkheid om complexe queries te verwerken die een dieper begrip van de relaties tussen entiteiten vereisen. Dit maakt het bijzonder nuttig voor toepassingen die betrekking hebben op vraag-antwoordsystemen, samenvatting of kennisintensieve taken.

Het is echter belangrijk op te merken dat de kosten van het uitvoeren van Graph RAG hoger kunnen zijn in vergelijking met traditionele RAG-systemen, aangezien er extra verwerkingsstappen zijn, zoals entiteitextractie en kennisgraafcreatie. Deze kostenfactor moet zorgvuldig worden overwogen bij het beslissen om Graph RAG in uw toepassingen te implementeren.

Overall vertegenwoordigt Graph RAG een belangrijke vooruitgang op het gebied van Retrieval Augmented Generation, en het potentieel om de prestaties van taalmodellen in verschillende toepassingen te verbeteren, is de moeite waard om te onderzoeken.

Traditionele RAG begrijpen: Beperkingen en motivaties

Traditional Retrieval Augmented Generation (RAG) is een methode waarbij het taalmodel relevante documenten uit een groot corpus ophaalt om nauwkeurigere en contextueel relevantere antwoorden te genereren. Deze aanpak omvat drie hoofdstappen:

  1. Documentverwerking en inbedding: De oorspronkelijke documenten worden opgedeeld in kleinere chunks met behulp van een chunking-strategie. Vervolgens worden embeddings berekend voor elke chunk en opgeslagen in een vectoropslag, die de kennisbasis wordt.

  2. Vraagfase: Wanneer een gebruiker een vraag stelt, worden embeddings berekend voor de query en wordt een similariteitszoekactie uitgevoerd op de vectoropslag om de meest relevante chunks of subdocumenten op te halen.

  3. Antwoordgeneratie: De opgehaalde context wordt gecombineerd met de oorspronkelijke query en ingevoerd in een groot taalmodel om het uiteindelijke antwoord te genereren.

Deze traditionele RAG-aanpak heeft echter verschillende beperkingen:

  1. Beperkt contextueel begrip: RAG kan soms de nuances in de gegevens missen vanwege de afhankelijkheid van alleen de opgehaalde documenten. Het heeft geen holistische overzicht van het document, dus het begrijpt het algehele beeld niet volledig.

  2. Schaalbaarheidsproble men: Naarmate het corpus groeit, kan het ophaalproces minder efficiënt worden.

  3. Complexiteit bij het integreren van externe kennisbronnen: Het integreren van externe kennisbronnen op een zinvolle manier kan complex en omslachtig zijn.

Om deze beperkingen aan te pakken, heeft Microsoft GraphRAG geïntroduceerd, een systeem dat kennisgrafieken combineert met Retrieval Augmented Generation. In het volgende gedeelte gaan we dieper in op de technische details van hoe GraphRAG werkt.

De technische details van Graph RAG verkennen

Graph RAG is een nieuwe aanpak die kennisgrafieken combineert met Retrieval Augmented Generation (RAG) om de beperkingen van traditionele RAG-systemen aan te pakken. De belangrijkste stappen in het Graph RAG-proces zijn als volgt:

  1. Indexeringsfase:

    • De brondocumenten worden opgedeeld in kleinere subdocumenten.
    • Binnen elke chunk worden entiteiten (zoals personen, plaatsen, bedrijven) geïdentificeerd en de relaties tussen deze entiteiten geëxtraheerd.
    • Deze informatie wordt gebruikt om een kennisgraaf op te bouwen, waarbij de entiteiten worden weergegeven als knooppunten en de relaties tussen hen als verbindingen.
    • De kennisgraaf wordt vervolgens gebruikt om gemeenschappen te detecteren, die groepen nauw verwante entiteiten zijn.
    • Er worden samenvattingen gemaakt voor elke gemeenschap op verschillende detailniveaus, variërend van globaal (hoog niveau) tot lokaal (meer gedetailleerd).
  2. Vraagfase:

    • Wanneer een gebruikersquery wordt ontvangen, wordt het juiste gemeenschapsniveau (globaal, intermediair of lokaal) geselecteerd op basis van het vereiste detailniveau.
    • De samenvattingen voor de relevante gemeenschappen worden opgehaald en deze gedeeltelijke antwoorden worden gecombineerd om het uiteindelijke antwoord te genereren.

Deze aanpak biedt verschillende voordelen ten opzichte van traditionele RAG-systemen:

  • Verbeterd contextueel begrip: Door gebruik te maken van de kennisgraaf en gemeenschapssamenvattingen kan Graph RAG de algehele context en nuances van de brondocumenten beter vastleggen, in plaats van alleen te vertrouwen op de opgehaalde documenten.
  • Verbeterde schaalbaarheid: Naarmate het corpus groeit, kunnen de gemeenschapssamenvattingen helpen om efficiënt ophalen en antwoordgenereren te behouden, waardoor de schaalbaarheidsproble men van traditionele RAG worden verminderd.
  • Vereenvoudigde integratie: De op kennisgrafen gebaseerde aanpak biedt een meer gestructureerde en zinvolle manier om externe kennisbronnen te integreren, waardoor het proces minder complex en omslachtig wordt.

De Graph RAG-aanpak heeft echter ook een potentieel nadeel: de kosten die gepaard gaan met het uitvoeren van het systeem. De indexeringsfase, die entiteitextractie, relatie-identificatie en gemeenschapssamenvatte ring omvat, kan computationeel intensief zijn en aanzienlijke kosten met zich meebrengen, vooral bij het gebruik van grote taalmodellen zoals GPT-4.

In het gegeven voorbeeld bedroegen de kosten voor het uitvoeren van Graph RAG op één boek (A Christmas Carol) ongeveer $7, wat voor grotere corpora prohibitief duur kan zijn. Deze kostenfactor is iets om rekening mee te houden bij het beslissen of u Graph RAG of een traditioneel RAG-systeem in uw toepassing wilt gebruiken.

Overall vertegenwoordigt Graph RAG een innovatieve aanpak om de beperkingen van traditionele RAG-systemen aan te pakken, maar de kostenimplicaties moeten zorgvuldig worden geëvalueerd op basis van de specifieke vereisten en schaal van uw project.

Graph RAG instellen op uw lokale machine

Om Graph RAG op uw lokale machine in te stellen, volgt u deze stappen:

  1. Maak een Conda virtuele omgeving:

    conda create -n graphrag python=3.9
    conda activate graphrag
    
  2. Installeer het Graph RAG-pakket:

    pip install graphrag
    
  3. Maak een map voor uw testgegevens:

    mkdir -p rag_test/input
    
  4. Download een voorbeelddataset, zoals de tekst van "A Christmas Carol" door Charles Dickens:

    python -m graphrag.index --root_dir rag_test/input --download_sample_data
    
  5. Stel uw werkruimtevariabelen en configuraties in:

    python -m graphrag.index --root_dir rag_test/input --init_config
    

    Dit zal een settings.yml-bestand maken waar u uw API-sleutel, model en andere instellingen kunt configureren.

  6. Voer het indexeringsproces uit om de kennisgraaf te maken:

    python -m graphrag.index --root_dir rag_test/input
    

    Deze stap kan enige tijd in beslag nemen, aangezien deze entiteitextractie, relatie-identificatie en gemeenschapssamenvatte ring omvat.

  7. Voer voorbeeldvragen uit:

    python -m graphrag.query --root_dir rag_test --method global --prompt "Wat zijn de belangrijkste thema's in dit verhaal?"
    python -m graphrag.query --root_dir rag_test --method local --prompt "Wat is de relatie tussen Scrooge en Bob Cratchit?"
    

    De global-methode haalt informatie op het hoogste niveau op, terwijl de local-methode zich richt op specifieke entiteiten en hun relaties.

  8. Analyseer de kostenimplicaties: Het indexeringsproces kan kostbaar zijn, vooral bij het gebruik van grote taalmodellen zoals GPT-4. Het voorbeeld in de transcript laat zien dat het verwerken van één boek ongeveer $7 kan kosten. Houd rekening met de kostenimplicaties bij het toepassen van Graph RAG op grotere datasets.

Dat is het basisinstelproces voor het uitvoeren van Graph RAG op uw lokale machine. Vergeet niet de configuraties en prompts aan te passen aan uw specifieke use case.

De kostenimplicaties van Graph RAG en traditionele RAG vergelijken

In het gegeven voorbeeld waren de kostenimplicaties van het gebruik van Graph RAG aanzienlijk. De totale kosten voor het verwerken van het boek en het maken van de Graph RAG kwamen uit op ongeveer $7, wat voor grote corpora van gegevens prohibitief duur kan zijn.

De belangrijkste factoren die bijdroegen aan de hoge kosten waren:

  1. API-aanvragen: De Graph RAG-aanpak maakte in totaal 570 aanvragen via de API, voornamelijk voor het GPT-4-model. In vergelijking zou de traditionele RAG-aanpak waarschijnlijk een lager aantal API-aanvragen hebben.

  2. Token-verwerking: Het Graph RAG-proces omvatte de verwerking van ruim 1 miljoen tokens, wat bijdroeg aan de totale kosten.

In vergelijking zou een traditioneel RAG-systeem waarschijnlijk lagere kosten hebben, aangezien het niet de extra stappen van entiteitextractie, relatie-identificatie en gemeenschapssamenvatte ring vereist die deel uitmaken van de Graph RAG-aanpak.

Het is belangrijk om de afwegingen tussen het verbeterde contextuele begrip en het holistische overzicht dat Graph RAG biedt, en de hogere kosten die gepaard gaan met de implementatie ervan, in overweging te nemen. Afhankelijk van de specifieke use case en het beschikbare budget kan de ene aanpak geschikter zijn dan de andere.

Als u werkt met een groot corpus aan gegevens, moeten de kostenimplicaties van Graph RAG zorgvuldig worden geëvalueerd. In dergelijke gevallen kan een traditioneel RAG-systeem een kosteneffectievere oplossing zijn, vooral als het verbeterde contextuele begrip dat Graph RAG biedt, geen kritieke vereiste is.

Uiteindelijk hangt de keuze tussen Graph RAG en traditionele RAG af van de specifieke behoeften van het project, de beschikbare middelen en de balans tussen prestaties en kosten.

Andere Graph RAG-oplossingen verkennen: Een diepere duik

Hoewel Microsoft's GraphRAG een baanbrekend systeem is, is het niet de enige implementatie van de Graph RAG-aanpak. Er zijn andere opmerkelijke oplossingen beschikbaar die het verkennen waard zijn:

Lama Index's Knowledge Graph RAG Query Engine

Lama Index, een populair open-source kennisbeheerplatform, heeft zijn eigen implementatie van een Knowledge Graph RAG Query Engine ontwikkeld. Deze oplossing maakt gebruik van de kracht van kennisgrafieken om de ophaal- en generatiecapaciteiten van grote taalmodellen te verbeteren.

De Lama Index-aanpak richt zich op het bouwen van een uitgebreide kennisgraaf op basis van verschillende gegevensbronnen, waaronder gestructureerde en ongestructureerde gegevens. Deze kennisgraaf wordt vervolgens gebruikt om het RAG-systeem aan te drijven, wat een meer holistische begrip van de onderliggende informatie biedt.

Neo4j's Graph RAG-pakket

Neo4j, een toonaangevende grafendatabaseaanbieder, heeft ook een Graph RAG-pakket geïntroduceerd. Deze oplossing integreert de grafendatabase-mogelijkheden van Neo4j met de Retrieval Augmented Generation (RAG)-techniek.

Door gebruik te maken van Neo4j's efficiënte graftraverse ring en query-mogelijkheden, streeft het Graph RAG-pakket ernaar de schaalbaarheids- en contextbegripsproble men van traditionele RAG-systemen aan te pakken. Deze aanpak maakt efficiëntere ophaling van relevante informatie uit de kennisgraaf mogelijk, wat leidt tot nauwkeurigere en coherentere antwoorden.

Vergelijking van de implementaties

Hoewel de kernprincipes van Graph RAG gedeeld worden tussen deze oplossingen, kan elke implementatie unieke kenmerken, sterke punten en afwegingen hebben. Factoren zoals prestaties, integratie-eenvoud, ondersteuning voor verschillende taalmodellen en kostenimplicaties kunnen variëren tussen de verschillende Graph RAG-oplossingen.

Als er belangstelling is, kan ik dieper ingaan op een vergelijkende analyse van deze Graph RAG-implementaties, waarbij de belangrijkste verschillen worden benadrukt en u kunt bepalen wat het beste past bij uw specifieke use case.

Conclusie

Graph RAG werkt goed, maar er was één groot probleem en dat zijn de kosten. Voor het gegeven voorbeeld werden in totaal 570 aanvragen via de API verstuurd met behulp van GPT-4, en werden meer dan 1 miljoen tokens verwerkt, wat resulteerde in een kosten van ongeveer $7. Deze kosten kunnen prohibitief duur zijn voor een groot corpus aan gegevens en zijn aanzienlijk hoger in vergelijking met het bou

FAQ