Miért van szükség RAG-ra
A foundation modell tudása a tanítás idejére van befagyasztva, és nem ismeri sem a te belső dokumentumaidat, sem a tegnapi eseményeket. Ha ilyesmiről kérdezed, két rossz kimenet lehetséges, vagy bevallja, hogy nem tudja, vagy magabiztosan kitalál valamit. A RAG úgy oldja meg ezt, hogy nem a modellt változtatja meg, hanem a kérdés pillanatában betölti a válaszhoz szükséges releváns szövegrészeket a kontextusba. A modell így nem a memóriájából dolgozik, hanem az eléje tett friss anyagból. A RAG tehát nem varázslat, hanem egy jól megtervezett keresés, amelynek a találatait a modell elé helyezzük, és a modellt arra kérjük, ezekre támaszkodva válaszoljon.
Darabolás, ahol a legtöbb hiba születik
A dokumentumokat nem egészben tároljuk, hanem kisebb részekre, chunkokra vágjuk. A darab mérete meglepően nagy hatással van a végeredményre. Ha túl nagy egy darab, akkor sok oda nem tartozó szöveg is beékelődik, felhígítja a relevanciát, és pazarolja a kontextusablakot. Ha túl kicsi, akkor egy gondolat kettétörik, és a darab önmagában értelmezhetetlen lesz. A gyakori megoldás a részleges átfedés a szomszédos darabok között, hogy a határon lévő mondatok ne vesszenek el. Érdemes a szöveg természetes szerkezetét követni, tehát bekezdés, szakasz vagy fejezet mentén darabolni, nem pedig vakon, adott karakterszámnál elvágni. A darabolás az a lépés, amelyet a RAG hibáinak visszakeresésekor elsőként érdemes megnézni.
Embeddingek, avagy a jelentés mint hely a térben
Az embedding egy olyan leképezés, amely a szöveget egy sok dimenziós vektorrá alakítja úgy, hogy a hasonló jelentésű szövegek vektorai közel kerüljenek egymáshoz, a különbözőké pedig távol. A jelentésbeli hasonlóság így geometriai közelséggé válik, amit már számolni tudunk. Ezt használja a RAG. A dokumentumdarabokat és a kérdést ugyanazzal az embedding modellel alakítjuk vektorrá, majd megkeressük, mely dokumentumvektorok esnek legközelebb a kérdés vektorához. Fontos, hogy a feltöltéskor és a lekérdezéskor ugyanazt az embedding modellt használd, különben a két vektor nem összemérhető. Az embedding modell megválasztása önálló mérnöki döntés, mert a minőség és a vektor mérete is befolyásolja a keresés pontosságát és a tárolás költségét.
Vektoradatbázis és a top-k visszakeresés
A dokumentumvektorokat egy vektoradatbázisban tároljuk, amely arra van kihegyezve, hogy nagy mennyiségű vektor közül gyorsan megtalálja egy adott kérdéshez legközelebb esőket. Mivel a pontos legközelebbi keresés sok vektornál lassú lenne, a gyakorlatban közelítő legközelebbi szomszéd keresést használnak, amely egy indexstruktúra segítségével gyorsan ad jó, bár nem tökéletes találatokat. A lekérdezéskor a legközelebbi néhány darabot kérjük vissza, ezt hívjuk top-k visszakeresésnek, ahol a k a visszaadott darabok száma. A k megválasztása kompromisszum. Kevés darab kockáztatja, hogy lemarad a lényeg, sok darab pedig zajt és felesleges tokent hoz be. Sok rendszerben a tisztán jelentésalapú keresést kombinálják a klasszikus kulcsszavas kereséssel, ezt nevezzük hibrid keresésnek, mert a kettő más típusú hibát ejt, és így kiegészítik egymást.
Reranking és a jellemző hibamódok
A top-k keresés gyors, de nem mindig teszi az igazán releváns darabot a lista elejére. A reranking egy második, alaposabb lépés, amelyben egy pontosabb, de drágább modell a kérdés és az egyes darabok viszonyát külön értékeli, és ez alapján rendezi újra a jelölteket. Így a keresés a gyors első körrel sok jelöltet szűr, a reranker pedig a legjobbakat emeli előre, mielőtt a modell elé kerülnek. Érdemes ismerni a RAG jellemző hibáit is. A visszakeresés elvétheti a releváns darabot, ilyenkor a modell hiába okos, nincs miből dolgoznia. A darabolás széttörhet egy összetartozó gondolatot. A kontextus túltömése zajt visz be. És ha semmi releváns nem kerül elő, a modell hajlamos kitalálni a választ, ezért a promptban explicit ki kell mondani, hogy csak a megadott forrásokból válaszoljon, és jelezze, ha a válasz nincs benne.
Három hely, ahol a RAG elromlik. A darabolásnál, ha rossz méretű a darab. A visszakeresésnél, ha nem a releváns rész jön elő. És a promptnál, ha nem kötöd ki, hogy csak a forrásból válaszoljon. Egy RAG hiba kivizsgálásakor ezt a három pontot nézd meg elsőként, ebben a sorrendben.
Workshop
AI Transformation Day
Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.
Érdekel a program →