Njësia 2 / 11

Embedding dhe logjika e bazës së të dhënave vektoriale

Fitimet:

  • Kuptoni se futja e kthen tekstin në një vektor në hapësirën semantike dhe kuptimet e ngjashme janë vektorë të afërt
  • Shpjegimi se si funksionon kërkimi ANN me metrikat e ngjashmërisë së kosinusit dhe pikës
  • Zgjedhja e bazave të të dhënave të zakonshme vektoriale bazuar në koston, shkallën dhe nevojën për filtrim të meta të dhënave

Në zemër të RAG është një pyetje e vetme: "Cila pjesë e tekstit është më e ngjashme me pyetjen e përdoruesit?" Kompjuteri përpunon tekstin me numra, jo fjalë për fjalë. Kjo është arsyeja pse ne fillimisht duhet ta shndërrojmë tekstin në numra që mbajnë kuptimin e tij. Kjo është ajo që është embedding: procesi i konvertimit të një teksti në një sekuencë numrash (vektor) që përfaqëson kuptimin e atij teksti. Kur të përfundoni këtë njësi, do të dini se si funksionon futja, si matet ngjashmëria dhe si të zgjidhni bazën e duhur të të dhënave vektoriale.

Embedding: Përkthimi i kuptimit në koordinata

Një model ngulitjeje (një inteligjencë artificiale e trajnuar posaçërisht) e konverton tekstin që jepni në një vektor me, për shembull, 1024 numra. Mendoni për këtë vektor si një koordinatë në një hapësirë ​​shumëdimensionale. Magjia është kjo: tekstet që janë të ngjashme në kuptim bien në koordinata të ngushta në këtë hapësirë.

Një shembull i thjeshtë: "leja vjetore", "e drejta për pushime" dhe "leja vjetore e paguar" përdorin fjalë të ndryshme, por nënkuptojnë të njëjtën gjë - vektorët e tyre janë afër njëri-tjetrit. "Llogaria e pagave" është një çështje tjetër - vektori i saj është i largët. Kështu përdoruesi pyet "sa ditë pushime kam?" Kur pyet, mund të gjejmë edhe një dokument që nuk përmban fjalën "pushime" por thotë "leja vjetore është 14 ditë". Kjo është ajo që kërkimi klasik i fjalëve kyçe (kërkimi që përputhet saktësisht me fjalën) nuk mund ta bëjë.

Këshillë: Mendoni për futjen si një "gjurmë gishti të kuptimit". Gjurmët e gishtërinjve të dy fjalive me të njëjtin kuptim duken të ngjashme; Edhe nëse fjalët janë të ndryshme.

Një rregull i rëndësishëm: modeli që përdorni kur futni pyetjen duhet të jetë i njëjti model që përdorni kur futni dokumente. Modele të ndryshme prodhojnë hapësira të ndryshme; koordinatat bëhen të pakrahasueshme.

Si të matni ngjashmërinë?

Ka disa metoda për të matur se sa të ngjashëm janë dy vektorë. Më e zakonshme është ngjashmëria e kosinusit: mat këndin midis dy vektorëve. Nëse këndi është i vogël (vektorët tregojnë në të njëjtin drejtim), ngjashmëria është e lartë. Vlera është ndërmjet −1 dhe 1; Afër 1 = shumë e ngjashme.

kriteri

Çfarë mat?

Kur preferohet?

Kosinusi

Këndi (drejtimi) ndërmjet vektorëve

Më e zakonshme; e paracaktuar në ngjashmëri semantike të tekstit

Produkt me pika

Drejtimi + madhësia së bashku

Nëse vektorët normalizohen, jep të njëjtin rezultat si kosinusi; është i shpejtë

Euklidiane (distanca euklidiane)

Distanca e drejtë midis koordinatave

Në disa skenarë grupimi; më pak i përdorur në tekst

Në praktikë, shumica e modeleve të përfshirjes prodhojnë vektorë të normalizuar (madhësia e vendosur në 1); Në këtë rast, produkti kosinus dhe pika japin të njëjtin rend. Mos u paralizoni në vendim: filloni me kosinus.

Midis miliona vektorëve, krahasimi i tyre një nga një në një kohë është i ngadaltë. Kjo është arsyeja pse bazat e të dhënave vektoriale përdorin algoritme ANN (Approximate Nearest Neighbor). ANN gjen shumë shpejt "pothuajse më të afërt" dhe jo "të saktë më të afërt". Për shembull, metoda e quajtur HNSW mund të kthejë rezultate në disa milisekonda edhe për 10 milionë vektorë. Ju fitoni shpejtësi të madhe për një sakrificë të vogël të saktësisë.

Çfarë bën baza e të dhënave vektoriale?

Një bazë të dhënash vektoriale bën tre gjëra njëherësh: (1) ruan vektorët, (2) gjen shpejt vektorët më të ngjashëm me një vektor pyetësor, (3) filtron sipas meta të dhënave pranë secilit vektor. Meta të dhënat janë etiketat që i bashkëngjitni asaj pjese: skedari burimor, data, departamenti, niveli i privatësisë, etj. Filtrimi i meta të dhënave është kritik në RAG të ndërmarrjes; sepse ju duhet të jeni në gjendje të vendosni kufizime të tilla si "kërkoni vetëm në dokumentet e Departamentit të Financave të vitit 2025".

# Regjistrohu në bazën e të dhënave vektoriale (konceptuale)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Leja vjetore e paguar është 14 ditë..."), text="Leja vjetore e paguar është 14 ditë...", metadata={"burimi": "ik_el_kitabi.pdf:" "2025-06", "privacy": "ic"})

# Kërkimi i filtruar me metadata (konceptuale)rezultati = vektor_db.search( vektor=embed("sa ditë leje kam?"), top_k=4, filter={"departament": "HR", "privacy": ["internal", "on"]})

Zgjedhja e bazës së duhur të të dhënave

automjeti

Aspekti i veçuar

Situatë e përshtatshme

E integruar / e bazuar në skedar (bibliotekë e integruar)

Pa instalim, makineri e vetme

Prototip, komplet i vogël (< disa qindra mijë pjesë)

Shërbimi i menaxhuar në renë kompjuterike

Shkallëzimi dhe mirëmbajtja nuk është përgjegjësia juaj

Prodhim, të dhëna me rritje të shpejtë, ekip i vogël

Burim i hapur në serverin tuaj

Kontroll i plotë, të dhënat tuaja mbeten tuajat

Detyrimi i privatësisë, infrastruktura ekzistuese

Shtim në bazën e të dhënave ekzistuese

Ju nuk menaxhoni sisteme të veçanta

Shtimi i mbështetjes vektoriale në DB që përdorni tashmë

Pyetni kur zgjidhni: Sa pjesë do të jenë? Sa kritik është filtrimi i meta të dhënave? A mund të dalin të dhënat jashtë kompanisë (konfidencialiteti)? A mundet ekipi të operojë një infrastrukturë? Shpesh është e mençur të filloni pak dhe të zgjeroni sipas nevojës.

Qasje e dobët / Qasje e fortë

Dobët (duke ruajtur ngulitje të thjeshtë, pa meta të dhëna):

Thjesht ruani tekstin dhe vektorin. Kërko: kthe 4 vektorët më të ngjashëm.# Problem: nuk mund të filtrohet si "vetëm dokumentet aktuale HR";# pjesë të vjetra/të paautorizuara mund të përfshihen gjithashtu në përgjigje.

I fuqishëm (meta të dhëna të pasura + kërkim i filtruar):

Shtoni burimin, datën, departamentin dhe etiketën e privatësisë në secilën pjesë. Filtro sipas autoritetit dhe aktualitetit të përdoruesit gjatë kërkimit: filter = {"privacy": user_auhority, "date_date": "2024-01"}# Kështu, rezultati është edhe i sigurt dhe i përditësuar.

Tre Mini Rastet

Rasti 1 - Përzierje e gabuar e modelit. Një ekip nguliti dokumente me modelin A dhe pyetje me modelin B. Kërkimet dhanë rezultate të pakuptimta dhe shkalla e përgjigjeve të sakta mbeti në 31%. Kur kalova në një model të vetëm (të dy i njëjti model i integruar), norma u hodh në 88%. Mësimi: pyetja dhe dokumenti duhet të jenë në të njëjtën hapësirë.

Rasti 2 - Rreziku i privatësisë pa meta të dhëna. Në një kompani të kujdesit shëndetësor, të gjitha dokumentet e departamentit u hodhën në një grup të vetëm pa meta të dhëna. Kur një bashkëpunëtor i shitjeve bëri një pyetje, sistemi kontekstualizoi një pjesë të të dhënave të pacientit. Kur u shtuan metadata + filtri (sipas nivelit të autorizimit), ky rrezik u eliminua; Në marrjen, 12 pjesë të paautorizuara nuk sillen fare.

Rasti 3 - Ngushtimi i shkallës. Një kompani e-commerce kërkoi 8 milionë përshkrime produktesh me një metodë të thjeshtë "skano të gjitha"; Çdo pyetje zgjati 6 sekonda. Kur kaluam në ANN të bazuar në HNSW, koha u ul në 45 milisekonda, me vetëm 1% humbje në saktësi. Mësimi: ANN është i detyrueshëm në grupin e madh.

Gabimet e zakonshme

  • Përfshirja e pyetjes dhe dokumentit me modele të ndryshme: Rezultatet janë të pakuptimta; gjithmonë një model.
  • Kapërcimi i meta të dhënave: Nuk mund të filtrosh; Ju humbni kontrollin e privatësisë dhe përditësimit.
  • Gabimi i Embedding për enkriptim: Embedding mbart informacion të kthyeshëm; Është e gabuar të supozohet se të dhënat e ndjeshme janë "të fshehura".
  • Ndërtimi i infrastrukturës së panevojshme të madhe në një grup të vogël: Një grup gjigant i menaxhuar për 5000 pjesë është kompleksitet i panevojshëm.
  • Mos u shqetësoni shumë për kriterin e ngjashmërisë: Filloni me kosinus në tekst; Akordimi i imët vjen më vonë.
Kujdes: Përfshirja e fut kuptimin e tekstit në numra, por nuk e "shkatërron" përmbajtjen. Nëse rrjedh një bazë të dhënash vektoriale, tekstet origjinale të ruajtura (në shumicën e instalimeve, teksti ruhet gjithashtu) rrezikohen gjithashtu. Mbajeni depon e vektorit po aq konfidencial sa dokumentet brenda tij.

Në përmbledhje

  • Embedding e kthen tekstin në një vektor numrash që mbart kuptimin e tij; Kuptime të ngjashme janë vektorë të afërt.
  • Ngjashmëria matet shpesh me kosinus; Për vektorët e normalizuar, produkti me pika jep të njëjtin rezultat.
  • Në të dhënat e mëdha, ANN (p.sh., HNSW) zëvendëson kërkimin e saktë: shpejtësi të madhe me pak sakrifica të saktësisë.
  • Baza e të dhënave vektoriale kryen ruajtjen vektoriale + kërkimin e ngjashmërisë + filtrimin e meta të dhënave; të dhënat meta janë thelbësore për RAG të ndërmarrjes.
  • Pyetja dhe dokumenti duhet të përkthehen me të njëjtin model ngulitjeje; përndryshe koordinatat nuk mund të krahasohen.

Detyra e aplikimit

Nxirrni 10 pasazhe të shkurtra (3-6 fjali secila) nga dokumenti që keni zgjedhur në njësinë e mëparshme. (1) Dizenjoni të paktën tre etiketa meta të dhënash për secilën pjesë (burimi, data dhe një e treta e përshtatshme për kontekstin e biznesit tuaj: departamenti, produkti, privatësia, etj.). (2) Shkruani se cili filtër i meta të dhënave duhet të aplikohet për 3 pyetje të ndryshme të përdoruesit. (3) Gjeni 3 çifte pyetje-pjesë që shprehin të njëjtin kuptim me fjalë të ndryshme (p.sh. "të drejtën për pushime" ↔ "leje vjetore") dhe shpjegoni me një fjali pse nuk do të përputhen me kërkimin e fjalëve kyçe, por do të përputhen me përfshirjen.

listë kontrolli

  • [ ] Mund të them se futja e kthen tekstin në një vektor në hapësirën semantike dhe kuptime të ngjashme janë të afërta.
  • E di që [ ] ngjashmëria e kosinusit mat këndin dhe është preferenca e paracaktuar në tekst.
  • [ ] Mund të shpjegoj pse ANN është i nevojshëm në të dhëna të mëdha.
  • [ ] Unë e di pse të dhënat meta janë kritike për konfidencialitetin dhe kontrollin e freskisë.
  • [ ] Unë ndjek rregullin e përkthimit të pyetjes dhe dokumentit me të njëjtin model ngulitjeje.