Susisiekti su mumis

Dirbtinis intelektas

Graph RAG galia: Pažangios paieškos ateitis

mm

paskelbta

 on

GRAFAI RAG LLM

Kadangi pasaulis vis labiau priklauso nuo duomenų, tikslių ir efektyvių paieškos technologijų paklausa niekada nebuvo didesnė. Tradiciniai paieškos varikliai, nors ir galingi, dažnai stengiasi patenkinti sudėtingus ir niuansuotus vartotojų poreikius, ypač kai susiduriama su ilgalaikėmis užklausomis ar specializuotais domenais. Čia Graph RAG (Retrieval-Augmented Generation) atsiranda kaip žaidimą keičiantis sprendimas, panaudojantis žinių grafikų ir didelių kalbų modelių (LLM) galią, kad būtų pateikti protingi, kontekstą suvokiantys paieškos rezultatai.

Šiame išsamiame vadove pasinersime į „Graph RAG“ pasaulį, tyrinėsime jo kilmę, pagrindinius principus ir novatorišką pažangą, kurią jis atneša informacijos paieškos srityje. Pasiruoškite leistis į kelionę, kuri pakeis jūsų supratimą apie paiešką ir atvers naujas pažangaus duomenų tyrimo ribas.

Peržiūrėjimas į pagrindus: originalus RAG metodas

Prieš gilinantis į Graph RAG subtilybes, būtina dar kartą peržiūrėti pamatus, ant kurių jis pastatytas: Retrieval-Augmented Generation (RAG) technika. RAG yra natūralios kalbos užklausų metodas, kuris papildo esamus LLM išorinėmis žiniomis, leidžia jiems pateikti aktualesnius ir tikslesnius atsakymus į užklausas, kurioms reikia specifinių srities žinių.

RAG procesas apima atitinkamos informacijos gavimą iš išorinio šaltinio, dažnai vektorinės duomenų bazės, remiantis vartotojo užklausa. Tada šis „įžeminimo kontekstas“ įvedamas į LLM raginimą, leidžiantį modeliui generuoti atsakymus, kurie yra labiau ištikimi išoriniam žinių šaltiniui ir mažiau linkę į haliucinacijas ar prasimanymą.

RAG žingsniai

Nors originalus RAG metodas pasirodė esąs labai veiksmingas atliekant įvairias natūralios kalbos apdorojimo užduotis, tokias kaip atsakymas į klausimus, informacijos gavimas ir apibendrinimas, jis vis dar susiduria su apribojimais, kai susiduriama su sudėtingomis, įvairiapusėmis užklausomis ar specializuotomis sritimis, kurioms reikalingas gilus konteksto supratimas.

Pradinio RAG metodo apribojimai

Nepaisant savo privalumų, originalus RAG metodas turi keletą apribojimų, kurie trukdo teikti tikrai protingus ir išsamius paieškos rezultatus:

  1. Kontekstinio supratimo trūkumas: tradicinė RAG remiasi raktinių žodžių atitikimu ir vektorių panašumu, o tai gali būti neveiksminga fiksuojant sudėtingų duomenų rinkinių niuansus ir ryšius. Tai dažnai lemia neišsamius arba paviršutiniškus paieškos rezultatus.
  2. Ribotas žinių atstovavimas: RAG paprastai nuskaito neapdorotus teksto gabalus arba dokumentus, kuriems gali trūkti struktūrizuoto ir susieto vaizdavimo, reikalingo visapusiškam supratimui ir argumentavimui.
  3. Mastelio keitimo iššūkiai: Duomenų rinkiniams didėjant ir įvairėjant, vektorinių duomenų bazių priežiūrai ir užklausoms reikalingi skaičiavimo ištekliai gali tapti pernelyg brangūs.
  4. Domeno specifiškumas: RAG sistemoms dažnai sunku prisitaikyti prie labai specializuotų sričių ar patentuotų žinių šaltinių, nes joms trūksta reikiamo konkrečiai domenui būdingo konteksto ir ontologijų.

Įveskite Graph RAG

Žinių grafikai yra struktūriniai realaus pasaulio subjektų ir jų santykių atvaizdai, susidedantys iš dviejų pagrindinių komponentų: mazgų ir briaunų. Mazgai žymi atskirus objektus, tokius kaip žmonės, vietos, objektai ar sąvokos, o kraštai – ryšius tarp šių mazgų, nurodant, kaip jie yra tarpusavyje susiję.

Ši struktūra žymiai pagerina LLM gebėjimą generuoti informuotus atsakymus, suteikdama jiems prieigą prie tikslių ir kontekstui svarbių duomenų. Populiariausi grafikų duomenų bazių pasiūlymai apima Ontotext, NebulaGraphir Neo4J, kurios palengvina šių žinių grafikų kūrimą ir valdymą.

NebulaGraph

NebulaGraph Graph RAG technika, kuri sujungia žinių grafikus su LLM, suteikia proveržį kuriant protingesnius ir tikslesnius paieškos rezultatus.

Informacijos pertekliaus kontekste tradiciniai paieškos tobulinimo būdai dažnai neatitinka sudėtingų užklausų ir aukštų technologijų, tokių kaip „ChatGPT“, keliami reikalavimai. Graph RAG sprendžia šiuos iššūkius naudodamas KG, kad būtų galima geriau suprasti kontekstą ir padėti vartotojams gauti išmanesnius ir tikslesnius paieškos rezultatus už mažesnę kainą.

Graph RAG pranašumas: kuo jis išsiskiria?

RAG žinių grafikai

RAG žinių grafikai: Šaltinis

Graph RAG siūlo keletą pagrindinių pranašumų, palyginti su tradiciniais paieškos tobulinimo metodais, todėl tai yra patrauklus pasirinkimas organizacijoms, siekiančioms išnaudoti visą savo duomenų potencialą:

  1. Patobulintas kontekstinis supratimas: Žinių grafikai pateikia turtingą, struktūrizuotą informacijos vaizdą, fiksuoja sudėtingus ryšius ir ryšius, kurių dažnai nepastebi tradiciniai paieškos metodai. Naudodamas šią kontekstinę informaciją, Graph RAG leidžia LLM giliau suprasti domeną ir gauti tikslesnius bei įžvalgesnius paieškos rezultatus.
  2. Patobulintas samprotavimas ir išvados: Žinių grafikų tarpusavio ryšys leidžia LLM samprotauti dėl sudėtingų santykių ir padaryti išvadas, kurios būtų sudėtingos arba neįmanomos naudojant vien neapdorotus teksto duomenis. Ši galimybė yra ypač vertinga tokiose srityse kaip moksliniai tyrimai, teisinė analizė ir žvalgybos duomenų rinkimas, kur labai svarbu sujungti skirtingas informacijos dalis.
  3. Mastelio keitimas ir efektyvumas: Tvarkydama informaciją grafiko struktūroje, Graph RAG gali efektyviai nuskaityti ir apdoroti didelius duomenų kiekius, taip sumažindama skaičiavimo išlaidas, susijusias su tradicinėmis vektorinių duomenų bazių užklausomis. Šis mastelio pranašumas tampa vis svarbesnis, nes duomenų rinkiniai vis didėja ir tampa sudėtingesni.
  4. Domeno pritaikymas: Žinių diagramos gali būti pritaikytos konkrečioms sritims, įtraukiant konkrečioms sritims būdingas ontologijas ir taksonomijas. Šis lankstumas leidžia „Graph RAG“ tobulėti specializuotose srityse, tokiose kaip sveikatos priežiūra, finansai ar inžinerija, kur konkrečios srities žinios yra būtinos norint tiksliai ieškoti ir suprasti.
  5. Sąnaudų efektyvumas: Naudodamas struktūrizuotą ir tarpusavyje susietą žinių grafikų pobūdį, Graph RAG gali pasiekti panašų arba geresnį našumą nei tradiciniai RAG metodai, tuo pačiu reikalaujant mažiau skaičiavimo išteklių ir mažiau mokymo duomenų. Dėl šio ekonomiškumo Graph RAG yra patrauklus sprendimas organizacijoms, norinčioms maksimaliai padidinti savo duomenų vertę ir sumažinti išlaidas.

Grafiko RAG demonstravimas

Graph RAG efektyvumą galima iliustruoti palyginus su kitais metodais, tokiais kaip Vector RAG ir Text2Cypher.

  • Grafikas RAG ir Vector RAG: ieškant informacijos apie „Galaktikos sargybinius 3“, tradiciniai vektorių paieškos varikliai gali pateikti tik pagrindinę informaciją apie veikėjus ir siužetus. Tačiau Graph RAG siūlo išsamesnės informacijos apie charakterio įgūdžius, tikslus ir tapatybės pokyčius.
  • Grafikas RAG ir Text2Cypher: Text2Cypher paverčia užduotis ar klausimus į atsakymus orientuotą grafiko užklausą, panašią į Text2SQL. Nors Text2Cypher generuoja grafiko šablonų užklausas pagal žinių grafiko schemą, Graph RAG nuskaito atitinkamus pografius, kad pateiktų kontekstą. Abu turi pranašumų, tačiau Graph RAG paprastai pateikia išsamesnius rezultatus, siūlydama asociatyvias paieškas ir kontekstines išvadas.

Žinių grafiko programų kūrimas naudojant „NebulaGraph“.

„NebulaGraph“ supaprastina konkrečiai įmonei skirtų KG programų kūrimą. Kūrėjai gali sutelkti dėmesį į LLM orkestravimo logiką ir vamzdynų projektavimą, nesusidūrę su sudėtingomis abstrakcijomis ir įgyvendinimais. NebulaGraph integravimas su LLM sistemomis, pvz Lamų indeksas ir LangChain leidžia kurti aukštos kokybės, nebrangias įmonės lygio LLM programas.

 „Graph RAG“ ir „Žinių diagrama RAG“

Prieš gilinantis į Graph RAG taikymą ir įgyvendinimą, būtina paaiškinti terminiją, susijusią su šia nauja technika. Nors terminai „Graph RAG“ ir „Knowledge Graph RAG“ dažnai vartojami pakaitomis, jie nurodo šiek tiek skirtingas sąvokas:

  • Grafikas RAG: Šis terminas reiškia bendrą požiūrį į žinių grafikų naudojimą siekiant pagerinti LLM paieškos ir generavimo galimybes. Tai apima daugybę metodų ir įgyvendinimų, kurie naudoja struktūrizuotą žinių grafikų vaizdavimą.
  • Žinių grafikas RAG: Šis terminas yra konkretesnis ir reiškia tam tikrą Graph RAG įgyvendinimą, kuris naudoja tam skirtą žinių grafiką kaip pagrindinį informacijos šaltinį, skirtą gauti ir generuoti. Taikant šį metodą, žinių grafikas yra išsamus srities žinių atvaizdas, fiksuojant esybes, ryšius ir kitą svarbią informaciją.

Nors pagrindiniai Graph RAG ir Žinių grafiko RAG principai yra panašūs, pastarasis terminas reiškia glaudžiau integruotą ir konkrečiai sričiai pritaikytą įgyvendinimą. Praktikoje daugelis organizacijų gali pasirinkti taikyti mišrų metodą, derindamos žinių grafikus su kitais duomenų šaltiniais, tokiais kaip tekstiniai dokumentai ar struktūrinės duomenų bazės, kad pateiktų išsamesnį ir įvairesnį LLM tobulinimo informacijos rinkinį.

Graph RAG įgyvendinimas: strategijos ir geriausia praktika

Nors Graph RAG koncepcija yra galinga, sėkmingam jos įgyvendinimui reikia kruopštaus planavimo ir geriausios praktikos laikymosi. Štai keletas pagrindinių strategijų ir svarstymų organizacijoms, norinčioms taikyti Graph RAG:

  1. Žinių grafiko sudarymas: Pirmasis žingsnis įgyvendinant Graph RAG yra patikimos ir išsamios žinių grafiko sukūrimas. Šis procesas apima atitinkamų duomenų šaltinių nustatymą, objektų ir ryšių ištraukimą ir jų sutvarkymą į struktūrizuotą ir susietą atvaizdą. Atsižvelgiant į domeną ir naudojimo atvejį, gali prireikti panaudoti esamas ontologijas, taksonomijas arba kurti pasirinktines schemas.
  2. Duomenų integravimas ir praturtinimas: Žinių diagramos turėtų būti nuolat atnaujinamos ir papildytos naujais duomenų šaltiniais, užtikrinant, kad jos išliktų aktualios ir išsamios. Tai gali apimti struktūrinių duomenų iš duomenų bazių, nestruktūrizuoto teksto iš dokumentų arba išorinių duomenų šaltinių, pvz., tinklalapių ar socialinės žiniasklaidos sklaidos kanalų, integravimą. Objektams, ryšiams ir metaduomenims iš šių šaltinių išgauti gali būti naudojami automatiniai metodai, pvz., natūralios kalbos apdorojimas (NLP) ir mašininis mokymasis.
  3. Mastelio keitimas ir našumo optimizavimas: didėjant žinių grafikų dydžiui ir sudėtingumui, itin svarbu užtikrinti mastelį ir optimalų našumą. Tai gali apimti tokius metodus kaip grafiko skaidymas, paskirstytas apdorojimas ir talpyklos mechanizmai, leidžiantys efektyviai gauti žinių grafiką ir pateikti užklausas.
  4. LLM integracija ir greita inžinerija: Sklandus žinių grafikų integravimas su LLM yra esminis Graph RAG komponentas. Tai apima veiksmingų paieškos mechanizmų kūrimą, kad būtų galima gauti atitinkamus objektus ir ryšius iš žinių schemos, remiantis vartotojo užklausomis. Be to, gali būti naudojami greiti inžineriniai metodai, siekiant efektyviai sujungti gautas žinias su LLM generavimo galimybėmis, kad būtų galima tiksliau ir kontekstą suvokiančius atsakymus.
  5. Vartotojo patirtis ir sąsajos: Siekdamos visiškai išnaudoti „Graph RAG“ galią, organizacijos turėtų sutelkti dėmesį į intuityvių ir patogių sąsajų, leidžiančių vartotojams sklandžiai sąveikauti su žinių grafikais ir LLM, kūrimą. Tai gali apimti natūralios kalbos sąsajas, vizualinio tyrinėjimo įrankius arba konkrečiam domenui pritaikytas programas, pritaikytas konkretiems naudojimo atvejams.
  6. Vertinimas ir nuolatinis tobulinimas: Kaip ir bet kuriai AI valdomai sistemai, nuolatinis vertinimas ir tobulinimas yra būtini norint užtikrinti Graph RAG išvesties tikslumą ir tinkamumą. Tai gali apimti tokius metodus kaip žmogiškojo ciklo vertinimas, automatizuotas testavimas ir kartotinis žinių grafikų bei LLM raginimų tobulinimas, remiantis vartotojų atsiliepimais ir našumo metrika.

Matematikos ir kodo integravimas į Graf RAG

Norėdami iš tikrųjų įvertinti Graph RAG techninį gylį ir potencialą, įsigilinkime į kai kuriuos matematinius ir kodavimo aspektus, kuriais grindžiamas jos funkcionalumas.

Esybės ir santykių atstovavimas

Graph RAG esybės ir ryšiai vaizduojami kaip mazgai ir briaunos žinių grafike. Šis struktūrinis vaizdavimas gali būti matematiškai modeliuojamas naudojant grafų teorijos sąvokas.

Leisti G = (V, E) būti žinių grafikas, kur V yra viršūnių (esybių) ir E yra briaunų (santykių) rinkinys. Kiekviena V viršūnė v gali būti susieta su požymio vektoriumi f_v, o kiekvienas kraštas e in E gali būti siejamas su svoriu mes, atspindinčių santykių stiprumą arba tipą.

Grafikų įterpimai

Norėdami integruoti žinių grafikus su LLM, turime įterpti grafiko struktūrą į nuolatinę vektorinę erdvę. Grafikų įdėjimo būdai, pvz Node2Vec or GraphSAGE gali būti naudojamas mazgų ir kraštų įterpimams generuoti. Tikslas – išmokti sudaryti žemėlapius φ: V ∪ E → R^d kuri išsaugo grafo struktūrines savybes d matmenų erdvėje.

Grafų įterpimo kodo įgyvendinimas

Štai pavyzdys, kaip įdiegti grafiką naudojant „Node2Vec“ algoritmą „Python“:

import networkx as nx
from node2vec import Node2Vec
# Create a graph
G = nx.Graph()
# Add nodes and edges
G.add_edge('gene1', 'disease1')
G.add_edge('gene2', 'disease2')
G.add_edge('protein1', 'gene1')
G.add_edge('protein2', 'gene2')
# Initialize Node2Vec model
node2vec = Node2Vec(G, dimensions=64, walk_length=30, num_walks=200, workers=4)
# Fit model and generate embeddings
model = node2vec.fit(window=10, min_count=1, batch_words=4)
# Get embeddings for nodes
gene1_embedding = model.wv['gene1']
print(f"Embedding for gene1: {gene1_embedding}")

Paėmimas ir greita inžinerija

Įdėjus žinių diagramą, kitas veiksmas yra gauti atitinkamus objektus ir ryšius pagal vartotojo užklausas ir naudoti juos LLM raginimuose.

Štai paprastas pavyzdys, rodantis, kaip gauti objektus ir sugeneruoti raginimą LLM naudojant Apsikabinęs veidas Transformatorių biblioteka:

from transformers import AutoModelForCausalLM, AutoTokenizer
# Initialize model and tokenizer
model_name = "gpt-3.5-turbo"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Define a retrieval function (mock example)
def retrieve_entities(query):
# In a real scenario, this function would query the knowledge graph
return ["entity1", "entity2", "relationship1"]
# Generate prompt
query = "Explain the relationship between gene1 and disease1."
entities = retrieve_entities(query)
prompt = f"Using the following entities: {', '.join(entities)}, {query}"
# Encode and generate response
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(inputs.input_ids, max_length=150)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

Grafikas RAG veikia: realūs pavyzdžiai

Norėdami geriau suprasti praktinį Graph RAG pritaikymą ir poveikį, panagrinėkime keletą realaus pasaulio pavyzdžių ir atvejų analizės:

  1. Biomedicininiai tyrimai ir vaistų atradimas: Pirmaujančios farmacijos įmonės mokslininkai įdiegė Graph RAG, kad paspartintų vaistų atradimo pastangas. Integruodami žinių grafikus, fiksuojančius informaciją iš mokslinės literatūros, klinikinių tyrimų ir genominių duomenų bazių, jie gali panaudoti LLM, kad nustatytų perspektyvius vaistų taikinius, nuspėtų galimą šalutinį poveikį ir atskleistų naujas gydymo galimybes. Šis metodas leido žymiai sutaupyti laiko ir išlaidų vaistų kūrimo procese.
  2. Teisinių atvejų analizė ir precedentų tyrimas: Garsi advokatų kontora priėmė Graph RAG, kad pagerintų savo teisinių tyrimų ir analizės galimybes. Sudarydami žinių diagramą, vaizduojančią juridinius asmenis, pvz., įstatus, teismų praktiką ir teismų nuomones, jų advokatai gali naudoti natūralios kalbos užklausas, kad ištirtų atitinkamus precedentus, analizuotų teisinius argumentus ir nustatytų galimas jų bylų silpnąsias ar stipriąsias puses. Tai lėmė išsamesnį bylos paruošimą ir geresnius klientų rezultatus.
  3. Klientų aptarnavimas ir pažangūs asistentai: Didelė el. prekybos įmonė integravo Graph RAG į savo klientų aptarnavimo platformą, todėl išmanieji padėjėjai gali pateikti tikslesnius ir asmeninius atsakymus. Naudodami žinių diagramas, fiksuojančias informaciją apie produktą, klientų pageidavimus ir pirkimo istorijas, padėjėjai gali pasiūlyti pritaikytas rekomendacijas, išspręsti sudėtingas užklausas ir aktyviai spręsti galimas problemas, taip padidindami klientų pasitenkinimą ir lojalumą.
  4. Mokslinės literatūros tyrinėjimas: Prestižinio universiteto mokslininkai įdiegė Graph RAG, kad palengvintų mokslinės literatūros tyrinėjimą įvairiose disciplinose. Sudarydami žinių diagramą, vaizduojančią mokslinius darbus, autorius, institucijas ir pagrindines sąvokas, jie gali panaudoti LLM atskleisti tarpdisciplininius ryšius, nustatyti kylančias tendencijas ir skatinti bendradarbiavimą tarp mokslininkų, turinčių bendrų interesų arba papildomos patirties.

Šie pavyzdžiai pabrėžia Graph RAG universalumą ir poveikį įvairiose srityse ir pramonės šakose.

Organizacijoms ir toliau grumdamasi su vis didėjančiais duomenų kiekiais ir išmaniųjų, kontekstą suvokiančių paieškos galimybių paklausa, Graph RAG pasirodo kaip galingas sprendimas, galintis atskleisti naujas įžvalgas, paskatinti naujoves ir suteikti konkurencinį pranašumą.

Pastaruosius penkerius metus praleidau pasinerdamas į žavų mašininio mokymosi ir giluminio mokymosi pasaulį. Mano aistra ir patirtis paskatino mane prisidėti prie daugiau nei 50 įvairių programinės įrangos inžinerijos projektų, ypatingą dėmesį skiriant AI/ML. Mano nuolatinis smalsumas taip pat patraukė mane į natūralios kalbos apdorojimą – sritį, kurią noriu tyrinėti toliau.