Graf znanja ali navaden RAG za dokumente podjetja? Kdaj se graf splača
Kdaj za dokumente podjetja zadošča navaden RAG in kdaj se splača graf znanja: primeri vprašanj, strošek izluščanja, sklanjanje imen v slovenščini in kako začeti.
Pravna služba, gradbeno podjetje ali zavarovalnica ima na tisoče pogodb, aneksov, zapisnikov in e-poštnih sporočil. Iskanje po dokumentih (RAG) že preizkušajo ali ga načrtujejo, potem pa nekdo omeni GraphRAG. Vprašanje, ki ga dobimo, je vedno isto: ali za naše dokumente potrebujemo graf znanja ali zadošča navaden RAG?
Kratek odgovor v treh vrsticah:
- Za pogosta vprašanja, priročnike, pravilnike in navodila zadošča navaden RAG. Odgovor stoji v enem ali dveh odstavkih.
- Graf se splača, ko je odgovor v povezavah: pogodba ↔ stranka ↔ projekt ↔ reklamacija, in ko vprašanje zahteva več korakov čez več dokumentov.
- Odločite na podlagi meritve na petdesetih svojih vprašanjih, ne predstavitve. Graf stane več za postavitev in vzdrževanje, zato mora biti razlika vidna v številkah.
Kaj je navaden RAG in kaj RAG nad grafom
Navaden RAG razreže dokumente na odstavke, jih poišče po pomenu in po besedah ter najdene odstavke doda v poziv. Model odgovori iz tega, kar vidi, in navede vir.
RAG nad grafom znanja iz dokumentov najprej izlušči entitete (stranke, pogodbe, projekte, osebe, zneske, roke) in povezave med njimi ter jih shrani v graf. Ob vprašanju sistem najde ustrezne entitete, sledi povezavam in modelu poda pot skozi graf skupaj z odstavki, iz katerih je vsaka povezava nastala. Microsoft je pristop opisal v članku From Local to Global, kjer graf pomaga tudi pri vprašanjih o celotni zbirki, na primer katere teme se ponavljajo.
Graf ne zamenja iskanja po odstavkih. V praksi ga dodamo nanj.
Vprašanja, pri katerih navaden RAG odpove
Navaden RAG najde odstavke, ki so podobni vprašanju. Težava nastane, ko noben posamezen odstavek ne vsebuje odgovora:
- "Katere pogodbe s strankami, ki imajo odprto reklamacijo, potečejo letos?" Rok je v pogodbi, reklamacija v e-pošti, povezava med njima pa v šifri stranke.
- "Pri katerih projektih je sodeloval podizvajalec, ki je zamudil rok v Krškem?" Dva koraka: projekt → podizvajalec → njegovi drugi projekti.
- "Kdo je pri nas podpisal anekse k pogodbam z isto stranko?" Podpisniki so raztreseni po desetih dokumentih.
- "Katere vrste reklamacij so bile lani najpogostejše?" Vprašanje o celi zbirki, ne o odstavku.
Pri takih vprašanjih navaden RAG pogosto najde le del potrebnih odstavkov. Model iz njih sestavi odgovor, ki se sliši prepričljivo, a je nepopoln. To je slabše od odgovora "ne vem", ker ga nihče ne preveri.
Kje graf ne pomaga: "Koliko dni dopusta pripada po pravilniku?", "Kako ponastavim geslo?", "Kaj pravi 7. člen splošnih pogojev?". Odgovor je v enem odstavku. Graf tu doda stroške in nič drugega.
Koliko stane graf
Graf ima tri stroške, ki jih navaden RAG nima.
Modeliranje. Nekdo mora določiti, katere entitete in povezave štejejo: stranka, pogodba, aneks, projekt, oseba, rok, znesek. Premajhna shema zgreši povezave. Prevelika naredi graf, ki ga nihče ne vzdržuje. To je delo z vašimi ljudmi, ne s kodo, zato začnemo z eno ali dvema vrstama vprašanj in nekaj vrstami entitet.
Izluščanje entitet. Vsak dokument gre skozi model, ki iz njega izlušči entitete in povezave v stalno shemo JSON. Pri tujem API-ju plačate vsakega. Z lokalnim modelom ne plačujete po žetonu in dokumenti ne zapustijo strežnika, zato izluščanje opravi manjši model, ki ga naučimo na vaših primerih. Tudi Microsoft je zaradi cene indeksiranja objavil cenejšo različico LazyGraphRAG, ki večino dela prestavi na čas vprašanja.
Vzdrževanje. Nov dokument pomeni novo izluščanje. Spremenjena pogodba pomeni popravek povezav. Nova vrsta dokumenta pomeni razširitev sheme. Vsaka povezava mora kazati na odstavek, iz katerega je nastala, sicer napačne povezave ne najdete. Navaden RAG ob novem dokumentu samo doda odstavke v indeks.
Slovenščina: sklanjanje imen in podvojene entitete
Tu angleški vodiči utihnejo, za graf pa je to največja težava.
Ista stranka se v dokumentih pojavi kot "Novak d.o.o.", "Novak d. o. o.", "družba Novak", "družbi Novak", "Novaka" in "naročnik". Če izluščanje vsako obliko zapiše kot svojo entiteto, ima graf šest strank namesto ene, vprašanje o vseh pogodbah s stranko Novak pa vrne šestino odgovora. Enako velja za osebe ("Ana Kos", "Ani Kos", "ga. Kos"), kraje ("v Krškem", "Krško") in projekte, ki jim ljudje rečejo po svoje.
Kar naredimo:
- Model vrne osnovno obliko. Izluščanje zapiše ime v imenovalniku, ne v obliki iz besedila. To se model nauči iz primerov; splošni modeli v slovenščini tu pogosto zgrešijo.
- Stalne oznake, kjer obstajajo. Matična in davčna številka, šifra stranke iz ERP, številka pogodbe. Kjer so, imajo prednost pred imenom.
- Združevanje z razlogom. Ko dve entiteti združimo, zapišemo zakaj. Dvomljive primere pokažemo človeku, ne odločimo tiho.
- Merjenje podvojenih entitet. Na zamrznjenem vzorcu štejemo, koliko resničnih strank je graf razbil na več vozlišč in koliko različnih je zlil v eno.
Isti problem opisujemo pri anonimizaciji dokumentov z lokalnim modelom: seznam imen ujame prvo obliko in zgreši ostale.
Naše meritve: kaj lahko pokažemo in česa ne
Javne primerjave navadnega RAG-a, RAG-a nad grafom in fino uglašenega modela na istem slovenskem testnem naboru nimamo in si je ne bomo izmislili. Nabori, ki jih gradimo za naročnike, nastanejo iz njihovih dokumentov in ostanejo pri njih.
Na vaših dokumentih ima poročilo tako obliko, celice pa napolni meritev:
| Postavitev | Pravilen odgovor | Pravilen vir | Vprašanja z več koraki | Podvojene entitete |
|---|---|---|---|---|
| Navaden RAG | – | – | – | ni grafa |
| RAG nad grafom | – | – | – | – |
| Uglašen model + navaden RAG | – | – | – | ni grafa |
| Uglašen model + RAG nad grafom | – | – | – | – |
Vprašanja razdelimo na enostavna (odgovor v enem odstavku) in povezana (več dokumentov, več korakov). Graf pri enostavnih navadno ne doda ničesar, zato povprečje čez vse zakrije, kje pomaga.
Javno lahko pokažemo, kaj fino uglaševanje spremeni v vedenju: pri naših javnih modelih na Hugging Face se je po učenju jasno povečal delež pravilnih odločitev, da orodja ne pokliče. To ni meritev grafa, izluščanje pa potrebuje isto: vedeti, kdaj povezave ne zapisati. Graf znanja uporabljamo tudi sami, naši agenti UI v CRM delajo s spominom v grafu.
Kako se odločiti
| Vaš primer | Kaj izbrati |
|---|---|
| Pogosta vprašanja, priročniki, pravilniki | navaden RAG |
| Vsebina se menja vsak teden, potreben je vir | navaden RAG |
| Odgovor zahteva povezavo več dokumentov (pogodba ↔ stranka ↔ projekt) | RAG nad grafom |
| Vprašanja o celi zbirki (kaj se ponavlja, kje so vzorci) | RAG nad grafom s povzetki skupin |
| Povezave so že v ERP ali CRM | poizvedba v bazo, ne graf |
| Stroga oblika izhoda, vaši izrazi, klicanje orodij | fino uglaševanje skupaj z iskanjem |
| Nimate petdesetih preverjenih vprašanj | najprej jih zberite |
Kdaj izbrati iskanje in kdaj učenje modela, je podrobneje v zapisu Fino uglaševanje ali RAG za slovenske dokumente?.
Kdaj nas ne potrebujete
- Imate nekaj sto dokumentov in iskanje vam že vrača prave odgovore. Ostanite pri tem.
- Nihče pri vas ne bo skrbel za shemo grafa. Graf brez lastnika v nekaj mesecih zastari, napačne povezave pa so slabše od nobenih.
- Vprašanja so v resnici poročila iz baze ("vse pogodbe, ki potečejo v decembru"). To reši poizvedba v ERP, ne jezikovni model.
Kako začnemo
Aktualne cene so v našem ceniku.
| Korak | Kaj dobite |
|---|---|
| Enodnevna evalvacija | petdeset vaših vprašanj s pravilnimi odgovori, zamrznjen nabor, izmerjeni kandidatni modeli na vaših vprašanjih, pisno priporočilo, ali se splača iskanje ali graf |
| Pilot S | model, naučen na dokumentih, ki jih že imate, izmerjen na zamrznjenem naboru, 2–3 tedne |
| Pilot M | ko je treba shemo in primere za izluščanje najprej zgraditi, 4–5 tednov |
| Mesečna naročnina | nove vrste dokumentov, ponovno izluščanje, meritev na istem naboru |
Dobite shemo, model za izluščanje, zamrznjen nabor in skripte za evalvacijo.
Pogosta vprašanja
Kaj je razlika med GraphRAG in navadnim RAG? Navaden RAG poišče odstavke, ki so podobni vprašanju, in jih da modelu. GraphRAG iz dokumentov najprej zgradi graf entitet in povezav ter odgovarja po poteh, ki gredo čez več dokumentov.
Kdaj se graf znanja ne splača? Ko je odgovor v enem odstavku: pogosta vprašanja, priročniki, pravilniki, navodila. Tudi ko so povezave že v ERP ali CRM, ker je poizvedba v bazo cenejša od grafa iz besedila.
Ali GraphRAG deluje na slovenskih dokumentih? Da, če izluščanje vrača osnovne oblike imen in združuje podvojene entitete. Brez tega graf eno stranko razbije na več vozlišč, zato podvojene entitete merimo posebej.
Ali lahko graf zgradimo, ne da bi dokumente pošiljali v tuji API? Da. Izluščanje entitet teče na lokalnem modelu na vašem strežniku ali pri gostovanju v EU, zato dokumenti ostanejo pri vas.
Koliko stane, da izvemo, ali se graf splača? Začne se z enodnevno evalvacijo na petdesetih vaših primerih, ki jo upoštevamo pri pilotu. Aktualne cene so v ceniku.