Att låsa upp kunskapsgrafers kraft: Utforska Graph RAG för förbättrad hämtning och förstärkt generering
Frigör kunskapsgrafers kraft med Graph RAG, ett banbrytande system som kombinerar kunskapsgrafer och Retrieval Augmented Generation (RAG) för förbättrad hämtning och generering. Utforska de tekniska detaljerna, ställ in det lokalt och bedöm kostnadsmässiga konsekvenser. Upptäck hur Graph RAG hanterar begränsningarna i traditionella RAG-metoder.
14 februari 2025

Frigör kunskapsgrafers kraft med Graph RAG, ett banbrytande system som kombinerar fördelarna med Retrieval Augmented Generation (RAG) med kunskapsgrafers kontextuella förståelse. Utforska hur denna innovativa metod kan förbättra din innehållsproduktion och öka noggrannheten och relevansen i dina svar, samtidigt som du får insikter i kostnadsmässiga konsekvenser av att köra Graph RAG.
Upptäck kraften i Graph RAG: Förbättra Retrieval Augmented Generation med kunskapsgrafer
Förstå traditionell RAG: Begränsningar och motivationer
Utforska de tekniska detaljerna i Graph RAG
Konfigurera Graph RAG på din lokala dator
Jämföra kostnadsmässiga konsekvenser av Graph RAG och traditionell RAG
Utforska andra Graph RAG-lösningar: En djupare dyk
Slutsats
Upptäck kraften i Graph RAG: Förbättra Retrieval Augmented Generation med kunskapsgrafer
Upptäck kraften i Graph RAG: Förbättra Retrieval Augmented Generation med kunskapsgrafer
Graph RAG är ett banbrytande system som kombinerar kunskapsgrafer med Retrieval Augmented Generation (RAG) för att hantera begränsningarna i traditionella RAG-metoder. Genom att utnyttja kunskapsgrafer ger Graph RAG en mer holistisk förståelse av den underliggande korpusen, vilket möjliggör mer exakta och kontextuellt relevanta svar.
De viktigaste aspekterna av Graph RAG inkluderar:
-
Indexeringsfas: Under denna fas bearbetas källdokumenten, och entiteter extraheras och används för att skapa en kunskapsgraf. Kunskapsgrafen representerar relationerna mellan olika entiteter, som sedan används för att skapa sammanfattningar på olika nivåer av detalj.
-
Frågesfas: När en användares fråga ges, väljer Graph RAG lämplig nivå av community (sammanfattning) baserat på frågan och hämtar relevant information. Svaren från flera communities kombineras sedan för att generera det slutliga svaret.
Denna metod hanterar begränsningarna i traditionell RAG, såsom begränsad kontextuell förståelse och skalbarhetsproblem. Genom att införliva kunskapsgrafer kan Graph RAG ge en mer omfattande förståelse av den underliggande datan, vilket leder till mer exakta och sammanhängande svar.
Förstå traditionell RAG: Begränsningar och motivationer
Förstå traditionell RAG: Begränsningar och motivationer
Traditional Retrieval Augmented Generation (RAG) är en metod där språkmodellen hämtar relevanta dokument från en stor korpus för att generera mer exakta och kontextuellt relevanta svar. Denna metod involverar tre huvudsteg:
-
Dokumentbearbetning och inbäddning: De ursprungliga dokumenten delas upp i mindre delar med hjälp av en uppdelningsstrategi. Inbäddningar beräknas sedan för varje del och lagras i en vektorlagringsplats, som blir kunskapsbasen.
-
Frågesfas: När en användare ställer en fråga, beräknas inbäddningar för frågan, och en likhetssökning utförs i vektorlagringsplatsen för att hämta de mest relevanta delarna eller underdokumenten.
-
Svarsgenerering: Den hämtade kontexten kombineras med den ursprungliga frågan och matas in i en stor språkmodell för att generera det slutliga svaret.
Denna traditionella RAG-metod har dock flera begränsningar:
-
Begränsad kontextuell förståelse: RAG kan ibland missa nyanser i data på grund av sin förlitning på endast hämtade dokument. Den har inte en holistisk översikt över dokumentet, så den förstår inte hela bilden fullt ut.
-
Skalbarhetsproblem: När korpusen växer kan hämtningsprocessen bli mindre effektiv.
-
Komplexitet i att integrera externa kunskapskällor: Att integrera externa kunskapskällor på ett meningsfullt sätt kan vara komplext och besvärligt.
Utforska de tekniska detaljerna i Graph RAG
Utforska de tekniska detaljerna i Graph RAG
Graph RAG är en ny metod som kombinerar kunskapsgrafer med Retrieval Augmented Generation för att hantera begränsningarna i traditionella RAG-system. De viktigaste stegen i Graph RAG-processen är följande:
-
Indexeringsfas:
- Källdokumenten delas upp i mindre underdokument.
- Inom varje del identifieras entiteter (som personer, platser, företag), och relationerna mellan dessa entiteter extraheras.
- Denna information används för att skapa en kunskapsgraf, där entiteterna representeras som noder och relationerna mellan dem representeras som kanter.
- Kunskapsgrafen används sedan för att identifiera communities, som är grupper av nära relaterade entiteter.
- Sammanfattningar skapas för varje community på olika detaljnivåer, från det globala (högre nivå) till det lokala (mer detaljerat).
-
Frågesfas:
- När en användares fråga tas emot, väljs lämplig communitynivå (global, mellanliggande eller lokal) baserat på önskad detaljeringsgrad.
- Sammanfattningarna för de relevanta communitiesna hämtas, och dessa partiella svar kombineras för att generera det slutliga svaret.
Konfigurera Graph RAG på din lokala dator
Konfigurera Graph RAG på din lokala dator
För att konfigurera Graph RAG på din lokala dator, följ dessa steg:
-
Skapa en Conda-virtuell miljö:
conda create -n graphrag python=3.9 conda activate graphrag
-
Installera Graph RAG-paketet:
pip install graphrag
-
Skapa en katalog för dina testdata:
mkdir -p rag_test/input
-
Ladda ner ett exempeldataset, som texten till "A Christmas Carol" av Charles Dickens:
python -m graphrag.index --root_dir rag_test/input --download_sample_data
-
Konfigurera dina arbetsytevariabler och inställningar:
python -m graphrag.index --root_dir rag_test/input --init_config
Detta skapar en
settings.yml
-fil där du kan konfigurera din API-nyckel, modell och andra inställningar. -
Kör indexeringsprocessen för att skapa kunskapsgrafen:
python -m graphrag.index --root_dir rag_test/input
Detta steg kan ta lite tid, eftersom det involverar entitetsextrahering, relationskartläggning och community-sammanfattning.
-
Kör exempelförfrågningar:
python -m graphrag.query --root_dir rag_test --method global --prompt "Vad är de huvudsakliga temana i denna berättelse?" python -m graphrag.query --root_dir rag_test --method local --prompt "Vad är relationen mellan Scrooge och Bob Cratchit?"
global
-metoden hämtar information på den högsta nivån, medanlocal
-metoden fokuserar på specifika entiteter och deras relationer.
Jämföra kostnadsmässiga konsekvenser av Graph RAG och traditionell RAG
Jämföra kostnadsmässiga konsekvenser av Graph RAG och traditionell RAG
I det exempel som gavs var kostnadsmässiga konsekvenserna av att använda Graph RAG betydande. Den totala kostnaden för att bearbeta boken och skapa Graph RAG uppgick till cirka 7 dollar, vilket kan vara orimligt dyrt för stora datamängder.
De viktigaste faktorerna som bidrog till den höga kostnaden var:
-
API-förfrågningar: Graph RAG-metoden gjorde totalt 570 förfrågningar via API:et, främst för GPT-4-modellen. I jämförelse skulle den traditionella RAG-metoden troligen ha ett lägre antal API-förfrågningar.
-
Tokenbearbetning: Graph RAG-processen involverade bearbetning av över 1 miljon tokens, vilket bidrog till den totala kostnaden.
Jämfört med detta skulle en traditionell RAG-lösning sannolikt ha lägre kostnader, eftersom den inte kräver de ytterligare stegen med entitetsextrahering, relationskartläggning och community-sammanfattning som ingår i Graph RAG-metoden.
Det är viktigt att överväga avvägningen mellan den förbättrade kontextuella förståelsen och den holistiska översikten som Graph RAG ger, och de högre kostnaderna som är förknippade med dess implementering. Beroende på det specifika användningsfallet och den tillgängliga budgeten kan den ena metoden vara mer lämplig än den andra.
Utforska andra Graph RAG-lösningar: En djupare dyk
Utforska andra Graph RAG-lösningar: En djupare dyk
Microsoft's GraphRAG fungerar bra, men det fanns ett stort problem och det var kostnaden. För det angivna exemplet skickades totalt 570 förfrågningar via API:et med användning av GPT-4, och över 1 miljon tokens bearbetades, vilket resulterade i en kostnad på cirka 7 dollar. Denna kostnad kan vara orimligt dyr för en stor datamängd och är väsentligt dyrare jämfört med att bygga ett traditionellt RAG-system.
Trots de kostnadsmässiga konsekvenserna är Graph RAG en innovativ metod som kombinerar kunskapsgrafer med Retrieval Augmented Generation (RAG). Den hanterar vissa av begränsningarna i traditionella RAG-system, såsom begränsad kontextuell förståelse och skalbarhetsproblem.
Microsoft är inte det enda företaget som har implementerat ett Graph RAG-system. Andra alternativ, som Lama Index's Knowledge Graph RAG-frågemotorn och Neo4j's Graph RAG-paket, finns också tillgängliga. Om det finns intresse kan ytterligare innehåll som jämför dessa olika implementeringar skapas.
Overlag är Graph RAG en lovande teknik, men de kostnadsmässiga konsekvenserna måste noggrant övervägas när man beslutar om man ska använda den i sina egna applikationer.
FAQ
FAQ