Nyereség:
- Értsd meg, hogy a beágyazás a szöveget vektorré alakítja a szemantikai térben, és a hasonló jelentések közeli vektorok
- Az ANN keresés működésének elmagyarázása koszinusz- és ponthasonlósági mérőszámokkal
- Gyakori vektoros adatbázisok kiválasztása költség, méret és metaadat-szűrési igény alapján
A RAG középpontjában egyetlen kérdés áll: "Melyik szövegrész hasonlít leginkább a felhasználó kérdésére?" A számítógép a szöveget számokkal dolgozza fel, nem szó szerint. Ezért kell először a szöveget számokká alakítanunk, amelyek hordozzák a jelentését. Ez az, ami a beágyazás: az a folyamat, amikor egy szöveget számsorozattá (vektorrá) alakítunk, amely a szöveg jelentését reprezentálja. Ha befejezi ezt az egységet, tudni fogja, hogyan működik a beágyazás, hogyan mérhető a hasonlóság, és hogyan kell kiválasztani a megfelelő vektoradatbázist.
Beágyazás: Jelentés fordítása koordinátákba
Egy beágyazási modell (egy speciálisan képzett mesterséges intelligencia) az Ön által megadott szöveget például 1024 számból álló vektorrá alakítja át. Tekintsd ezt a vektort koordinátának egy többdimenziós térben. A varázslat a következő: a jelentésükben hasonló szövegek szoros koordinátákba esnek ebben a térben.
Egy egyszerű példa: az „éves szabadság”, a „nyaralási jogosultság” és az „éves fizetett szabadság” különböző szavakat használ, de ugyanazt jelenti – vektoraik közel vannak egymáshoz. A „bérszámfejtés” más kérdés – vektora távoli. Tehát a felhasználó megkérdezi: "Hány napom van szabadságom?" Ha megkérdezi, még olyan dokumentumot is találunk, amelyen nem szerepel a „szabadság” szó, hanem „az éves szabadság 14 nap”. Ez az, amit a klasszikus kulcsszavas keresés (a szóra pontosan egyező keresés) nem képes megtenni.
Tipp: Tekintsd a beágyazást „jelentés ujjlenyomatának”. Két azonos jelentésű mondat ujjlenyomata hasonlónak tűnik; Még akkor is, ha a szavak mások.
Egy fontos szabály: a kérdés beágyazásakor használt modellnek meg kell egyeznie a dokumentumok beágyazásakor. A különböző modellek különböző tereket hoznak létre; a koordináták összehasonlíthatatlanokká válnak.
Hogyan mérjük a hasonlóságot?
Számos módszer létezik a két vektor hasonlóságának mérésére. A leggyakoribb a koszinusz hasonlóság: két vektor közötti szöget méri. Ha a szög kicsi (a vektorok ugyanabba az irányba mutatnak), akkor a hasonlóság nagy. Az érték −1 és 1 között van; Közel 1 = nagyon hasonló.
kritérium
Mit mér?
Mikor előnyös?
koszinusz
Szög (irány) vektorok között
A leggyakoribb; alapértelmezett szöveges szemantikai hasonlóság
Pontos termék
Irány + nagyság együtt
Ha a vektorokat normalizáljuk, akkor ugyanazt az eredményt adja, mint a koszinusz; gyors
Euklideszi (euklideszi távolság)
Egyenes távolság a koordináták között
Egyes klaszterezési forgatókönyvekben; szövegben kevésbé használják
A gyakorlatban a legtöbb beágyazó modell normalizált vektorokat állít elő (a méret 1-re van állítva); Ebben az esetben a koszinusz és a pontszorzat ugyanazt a sorrendet adja. Ne bénuljon meg a döntés: kezdje a koszinusszal.
Több millió vektor között lassú az egyenkénti összehasonlítás. Ezért a vektoros adatbázisok ANN (Approximate Nearest Neighbor) algoritmusokat használnak. Az ANN nagyon gyorsan megtalálja a "majdnem pontosan legközelebbi" helyett a "pontosan legközelebbi" kifejezést. Például a HNSW nevű metódus néhány ezredmásodperc alatt tud eredményt adni akár 10 millió vektor esetén is. Nagy sebességre tesz szert a pontosság kis áldozatával.
Mit csinál a vektoros adatbázis?
Egy vektoradatbázis három dolgot végez egyszerre: (1) vektorokat tárol, (2) gyorsan megtalálja a lekérdezési vektorokhoz leginkább hasonló vektorokat, (3) metaadatok alapján szűr az egyes vektorok mellett. A metaadatok az adott darabhoz csatolt címkék: forrásfájl, dátum, osztály, adatvédelmi szint stb. A metaadatok szűrése kritikus fontosságú a vállalati RAG-ban; mert képesnek kell lennie olyan korlátozások beállítására, mint például a "keresés csak a pénzügyi osztály 2025-ös dokumentumaiban".
# Regisztráljon a vektoros adatbázisba (conceptual)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Az éves fizetett szabadság 14 nap..."), text="Az éves fizetett szabadság 14 nap...", metadata={"forrás": "ik_el_kitabi.pdf", "department": "IK_6",0date2: "IK",0date2 "ic"})
# Metaadatokkal szűrt keresés (koncepcionális) eredmény = vektor_db.search( vektor=embed("hány nap szabadságom van?"), top_k=4, filter={"részleg": "HR", "privacy": ["belső", "bekapcsolva"]})
A megfelelő adatbázis kiválasztása
járművet
Kiemelt szempont
Megfelelő helyzet
Beépített / fájl alapú (beágyazott könyvtár)
Telepítés nélkül, egy gép
Prototípus, kis készlet (< néhány százezer alkatrész)
Felügyelt felhőszolgáltatás
A méretezés és a karbantartás nem az Ön felelőssége
Gyártás, gyorsan növekvő adatok, kis csapat
Nyílt forráskód a saját szerverén
Teljes ellenőrzés, adatai az Öné maradnak
Adatvédelmi kötelezettség, meglévő infrastruktúra
Kiegészítés a meglévő adatbázishoz
Ön nem kezel külön rendszereket
Vektor támogatás hozzáadása a már használt adatbázishoz
Kérdezd meg választáskor: Hány darab lesz? Mennyire kritikus a metaadat-szűrés? Kikerülhetnek-e az adatok a cégen kívülre (bizalmasság)? Működtethet-e a csapat infrastruktúrát? Gyakran bölcs dolog kicsiben kezdeni, és szükség szerint bővíteni.
Gyenge megközelítés / erős megközelítés
Gyenge (sima beágyazás tárolása, metaadatok nélkül):
Csak mentse el a szöveget és a vektort. Keresés: adja vissza a 4 leghasonlóbb vektort.# Probléma: nem lehet úgy szűrni, mint "csak aktuális HR-dokumentumok";# régi/illetéktelen részek is szerepelhetnek a válaszban.
Hatékony (gazdag metaadatok + szűrt keresés):
Adjon hozzá forrást, dátumot, osztályt és adatvédelmi címkét minden egyes darabhoz. Szűrés a felhasználó jogosultsága és keresés közbeni aktuálissága szerint: filter = {"privacy": user_authority, "date_date": "2024-01"}# Így az eredmény biztonságos és naprakész.
Három mini tok
1. eset – Rossz modellkeverék. Egy csapat dokumentumokat ágyazott be az A modellel és kérdéseket B modellel. A keresések értelmetlen eredményeket adtak, és a helyes válaszok aránya 31% maradt. Amikor egyetlen modellre váltottam (mindkettő ugyanaz a beágyazó modell), az arány 88%-ra ugrott. Tanulság: a kérdésnek és a dokumentumnak egy helyen kell lennie.
2. eset – Adatvédelmi kockázat metaadatok nélkül. Egy egészségügyi cégnél az összes osztálydokumentumot egyetlen poolba dobták metaadatok nélkül. Amikor egy értékesítési munkatárs kérdést tett fel, a rendszer kontextusba helyezte a betegadatok egy részét. A metaadatok + szűrő hozzáadásával (a jogosultsági szintnek megfelelően) ez a kockázat megszűnt; A visszakeresés során 12 illetéktelen darabot egyáltalán nem hoznak.
3. eset – Skála szűk keresztmetszet. Egy e-kereskedelmi cég 8 millió termékleírásban keresett egy egyszerű "összes beolvasás" módszerrel; Minden lekérdezés 6 másodpercig tartott. Amikor átváltunk a HNSW-alapú ANN-ra, az idő 45 ezredmásodpercre csökkent, mindössze 1%-os pontossági veszteséggel. Tanulság: ANN kötelező a nagy készletben.
Gyakori hibák
- A kérdés és a dokumentum beágyazása különböző modellekbe: Az eredmények értelmetlenek; mindig egy modell.
- Metaadatok átugrása: Nem lehet szűrni; Elveszíti az uralmat a magánélet és a naprakész információk felett.
- Hibás beágyazás titkosításhoz: A beágyazás visszafordítható információkat hordoz; Tévedés azt feltételezni, hogy az érzékeny adatok „rejtve” vannak.
- Feleslegesen nagy infrastruktúra építése kis halmazra: Egy 5000 alkatrészből kezelt óriási klaszter szükségtelen bonyolultság.
- Ne aggódjon túl sokat a hasonlósági kritérium miatt: Kezdje koszinuszával a szövegben; A finomhangolás később jön.
Vigyázat: A beágyazás a szöveg jelentését számokba ágyazza, de nem "tönkreteszi" a tartalmat. Ha egy vektoros adatbázis kiszivárog, az eredeti tárolt szövegek (a legtöbb telepítésben a szöveg is tárolva) szintén veszélybe kerülnek. Tartsa a vektortárat ugyanolyan bizalmasan, mint a benne lévő dokumentumokat.
Összefoglalva
- A beágyazás a szöveget számvektorrá alakítja, amely hordozza a jelentését; Hasonló jelentések a közeli vektorok.
- A hasonlóságot gyakran koszinuszban mérik; Normalizált vektorok esetén a pontszorzat ugyanazt az eredményt adja.
- A nagy adatforgalomban az ANN (pl. HNSW) helyettesíti a pontos keresést: nagy sebesség a pontosság csekély feláldozásával.
- A vektoros adatbázis vektortárolást + hasonlósági keresést + metaadat szűrést végez; a metaadatok elengedhetetlenek a vállalati RAG számára.
- A kérdést és a dokumentumot ugyanazzal a beágyazási modellel kell lefordítani; különben a koordinátákat nem lehet összehasonlítani.
Pályázati feladat
Vágjon ki 10 rövid részt (egyenként 3-6 mondatot) az előző egységben kiválasztott dokumentumból. (1) Tervezzen meg legalább három metaadatcímkét minden egyes darabhoz (forrás, dátum és egy harmadik az üzleti környezetnek megfelelő: részleg, termék, adatvédelem stb.). (2) Írja meg, hogy 3 különböző felhasználói kérdésnél melyik metaadatszűrőt kell alkalmazni. (3) Keress 3 olyan kérdés-részpárt, amelyek ugyanazt a jelentést fejezik ki különböző szavakkal (pl. „nyaralás” ↔ „éves szabadság”), és egy mondatban magyarázd el, miért nem egyezik a kulcsszavas kereséssel, de a beágyazással.
ellenőrző lista
- [ ] Azt tudom mondani, hogy a beágyazás a szöveget vektorré alakítja a szemantikai térben, és a hasonló jelentések közel állnak.
- Tudom, hogy a [ ] koszinusz hasonlóság a szöget méri, és ez az alapértelmezett preferencia a szövegben.
- [ ] Meg tudom magyarázni, miért szükséges az ANN a big data-ban.
- [ ] Tudom, hogy a metaadatok miért kritikusak a titkosság és a frissesség ellenőrzése szempontjából.
- [ ] Követem azt a szabályt, hogy a kérdést és a dokumentumot ugyanazzal a beágyazási modellel fordítom.