Mikä on GraphRAG?

Jan 09, 2025

GraphRAG on kehittyneempi versio tavallisesta RAG-mallista, jossa LLM voi keskustella ulkoisten dokumenttiesi kanssa. Tavallisessa RAG:ssa käytetään vektoritietokantoja, mutta GraphRAG:ssa käytetään tietämysgrafiikoita.

Toisin kuin perinteinen RAG, joka hakee erillisiä tekstiosioita, GraphRAG tutkii tiedon osien välisiä yhteyksiä tarjoten tarkempia ja merkityksellisempiä vastauksia. Se on erityisen hyvä vastaamaan monimutkaisiin kysymyksiin ymmärtämällä, miten eri tiedon osat liittyvät toisiinsa, ja tarjoaa näin kattavamman vastauksen.

Erot tavallisen RAG-ratkaisun ja GraphRAG-ratkaisun välillä

1. Perinteinen RAG (Retrieval Augmented Generation)
RAG käyttää vektorihakua ja tekstin upotuksia (embeddings) tietojen hakemiseen tietokannoista. Se vastaa käyttäjän kysymyksiin hakemalla merkityksellisiä tekstiosioita ja yhdistämällä ne kysymykseen tuottaakseen vastauksen. Tämä toimii hyvin, kun kysymykset ovat tarkkoja ja liittyvät yksittäiseen asiayhteyteen. 
RAG voi tuottaa epätäydellisiä vastauksia, jos kysymys vaatii tiedon yhdistämistä useista eri lähteistä tai jos kysymys on laaja ja aggregatiivinen (esim. "Mitkä ovat tärkeimmät syyt ilmastonmuutokseen viimeisen vuosikymmenen aikana?").

2. GraphRAG (Graph Retrieval Augmented Generation)
GraphRAG lisää tiedonhakuprosessiin tietograafit (knowledge graphs), jotka esittävät tietojen välisiä suhteita ja yhteyksiä. Sen sijaan, että tietoa haettaisiin vain yksittäisistä asiayhteyksistä (kuten RAG tekee), GraphRAG hyödyntää tietograafia yhdistääkseen tietoa eri lähteistä ja ymmärtääkseen, miten ne liittyvät toisiinsa.

GraphRAG kykenee vastaamaan laajoihin ja yhdistäviin kysymyksiin hyödyntämällä graafin tarjoamaa asiayhteyksien ja suhteiden karttaa.

Käytännön esimerkki:

Kuvitellaan tietokanta, joka sisältää artikkeleita ja raportteja Nobel-palkinnon voittajista.

Perinteinen RAG
Kysymys: "Kuka voitti Nobelin rauhanpalkinnon vuonna 2023?"

- RAG hakee tekstiosioita tietokannasta, joissa mainitaan vuosi 2023 ja rauhanpalkinto, ja tuottaa vastauksen suoraan tekstistä:
  - Vastaus: "Vuonna 2023 Nobelin rauhanpalkinnon voitti N.N."

Tämä on yksinkertainen, paikallinen kysymys, jonka RAG ratkaisee tehokkaasti.

Kysymys: *"Mitkä ovat kolme merkittävintä aihetta, joita viime vuosikymmenen Nobelin rauhanpalkinnon voittajat ovat edustaneet?"*

- RAG etsii tekstiosioita, joissa mainitaan "aihe" tai "Nobel-palkinto", mutta koska tämä vaatii tiedon yhdistämistä useista dokumenteista, RAG todennäköisesti epäonnistuu tai antaa vain osittaisen vastauksen. Se ei osaa yhdistää eri vuosien voittajia ja heidän edustamiaan aiheita.

GraphRAG:
Tietokanta sisältää samat tiedot, mutta ne on esitetty tietograafina, jossa on solmuja (esim. "Nobel-voittaja", "vuosi", "edustettu aihe") ja reunoja, jotka osoittavat näiden tietojen väliset suhteet (esim. "voitti vuonna", "edusti aihetta").

Kysymys: "Mitkä ovat kolme merkittävintä aihetta, joita viime vuosikymmenen Nobelin rauhanpalkinnon voittajat ovat edustaneet?"

- GraphRAG seuraa graafista rakennetta:
  1. Hakee kaikki viimeisen 10 vuoden voittajat.
  2. Tarkistaa heidän "edustamansa aiheet".
  3. Laskee, mitkä aiheet esiintyvät useimmiten.
  4. Muodostaa yhteenvedon vastaukseksi.

- Vastaus: "Kolme merkittävintä aihetta ovat: ilmastonmuutoksen torjunta, ihmisoikeuksien puolustaminen ja rauhan edistäminen Lähi-idässä."

GraphRAG pystyy vastaamaan, koska se käyttää graafin kautta tietojen välisiä suhteita ja tekee aggregatiivista päättelyä.

Yhteenveto

- RAG: Nopea ja tehokas yksittäisiin, paikallisiin kysymyksiin.  
- GraphRAG: Parempi laajoihin, yhdistäviin ja aggregatiivisiin kysymyksiin, koska se hyödyntää tietojen välisiä suhteita ja mahdollistaa monimutkaisen päättelyn.