Enota 2 / 11

Vdelava in vektorska logika baze podatkov

Dobički:

  • Razumeti, da vdelava spremeni besedilo v vektor v semantičnem prostoru in podobni pomeni so bližnji vektorji
  • Razlaga, kako deluje iskanje ANN z meritvami podobnosti kosinusa in pike
  • Izbiranje običajnih vektorskih baz podatkov na podlagi stroškov, obsega in potrebe po filtriranju metapodatkov

V središču RAG je eno samo vprašanje: "Kateri del besedila je najbolj podoben uporabnikovemu vprašanju?" Računalnik obdeluje besedilo s številkami, ne dobesedno. Zato moramo besedilo najprej pretvoriti v številke, ki nosijo njegov pomen. To je tisto, kar je vdelava: postopek pretvorbe besedila v zaporedje številk (vektor), ki predstavlja pomen tega besedila. Ko končate to enoto, boste vedeli, kako deluje vdelava, kako se meri podobnost in kako izbrati pravo vektorsko bazo podatkov.

Vdelava: Prevajanje pomena v koordinate

Vdelani model (posebej usposobljena umetna inteligenca) pretvori besedilo, ki ga posredujete, v vektor na primer 1024 številk. Ta vektor si predstavljajte kot koordinato v večdimenzionalnem prostoru. Čarovnija je v tem: pomensko podobna besedila v tem prostoru padejo v tesne koordinate.

Preprost primer: »letni dopust«, »pravica do dopusta« in »plačani letni dopust« uporabljajo različne besede, vendar pomenijo isto stvar - njihovi vektorji so blizu drug drugemu. "Plačni račun" je druga stvar - njegov vektor je oddaljen. Uporabnik torej vpraša "koliko dni dopusta imam?" Ko vprašate, najdemo celo dokument, ki ne vsebuje besede "dopust", ampak piše "letni dopust je 14 dni". Tega klasično iskanje po ključnih besedah ​​(iskanje, ki se natančno ujema z besedo) ne zmore.

Nasvet: o vdelavi razmišljajte kot o »prstnem odtisu pomena«. Prstni odtis dveh stavkov z enakim pomenom je videti podoben; Tudi če so besede drugačne.

Pomembno pravilo: model, ki ga uporabljate pri vdelavi vprašanja, mora biti enak modelu, kot ga uporabljate pri vdelavi dokumentov. Različni modeli ustvarjajo različne prostore; koordinate postanejo neprimerljive.

Kako izmeriti podobnost?

Obstaja več metod za merjenje, kako podobna sta si vektorja. Najpogostejša je kosinusna podobnost: meri kot med dvema vektorjema. Če je kot majhen (vektorji kažejo v isto smer), je podobnost velika. Vrednost je med −1 in 1; Blizu 1 = zelo podobno.

merilo

Kaj meri?

Kdaj ima prednost?

Kosinus

Kot (smer) med vektorji

Najpogostejši; privzeta pomenska podobnost besedila

Pikasti izdelek

Smer + magnituda skupaj

Če so vektorji normalizirani, daje enak rezultat kot kosinus; je hiter

Evklidska (evklidska razdalja)

Ravna razdalja med koordinatami

V nekaterih scenarijih združevanja v gruče; manj uporabljen v besedilu

V praksi večina modelov vdelave proizvaja normalizirane vektorje (velikost nastavljena na 1); V tem primeru imata kosinus in pikčasti produkt enak vrstni red. Naj vas odločitev ne ohromi: začnite s kosinusom.

Med milijoni vektorjev je primerjava enega za drugim počasna. Zato vektorske zbirke podatkov uporabljajo algoritme ANN (Approximate Nearest Neighbor). ANN zelo hitro najde "skoraj natančno najbližje" namesto "natančno najbližje". Na primer, metoda, imenovana HNSW, lahko vrne rezultate v nekaj milisekundah tudi za 10 milijonov vektorjev. Za majhno žrtvovanje natančnosti pridobite veliko hitrost.

Kaj počne vektorska zbirka podatkov?

Vektorska zbirka podatkov naredi tri stvari hkrati: (1) shrani vektorje, (2) hitro najde vektorje, ki so najbolj podobni vektorju poizvedbe, (3) filtrira po metapodatkih poleg vsakega vektorja. Metapodatki so oznake, ki jih pritrdite na ta del: izvorna datoteka, datum, oddelek, raven zasebnosti itd. Filtriranje metapodatkov je ključnega pomena v podjetju RAG; ker morate imeti možnost nastaviti omejitve, kot je "iskanje samo v dokumentih 2025 finančnega oddelka".

# Registrirajte se v vektorsko bazo (konceptualno)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Plačani letni dopust je 14 dni..."), text="Plačani letni dopust je 14 dni...", metadata={"source": "ik_el_kitabi.pdf", "department": "IK", "date": "2025-06", "zasebnost": "ic"})

# Rezultat iskanja s filtriranim metapodatkom (konceptualni) = vektor_db.search( vektor=embed("koliko dni dopusta imam?"), top_k=4, filter={"oddelek": "HR", "zasebnost": ["interno", "on"]})

Izbira prave baze podatkov

vozilo

Predstavljen vidik

Primerna situacija

Vgrajen/temelji na datoteki (vdelana knjižnica)

Brez namestitve, en stroj

Prototip, majhen komplet (< nekaj sto tisoč delov)

Upravljana storitev v oblaku

Skaliranje in vzdrževanje ni vaša odgovornost

Produkcija, hitro rastoči podatki, majhna ekipa

Odprta koda na lastnem strežniku

Popoln nadzor, vaši podatki ostanejo vaši

Obveznost zasebnosti, obstoječa infrastruktura

Dodatek k obstoječi bazi podatkov

Ne upravljate ločenih sistemov

Dodajanje vektorske podpore v bazo podatkov, ki jo že uporabljate

Pri izbiri vprašajte: Koliko kosov bo? Kako kritično je filtriranje metapodatkov? Ali lahko gredo podatki izven podjetja (zaupnost)? Ali lahko ekipa upravlja infrastrukturo? Pogosto je pametno začeti z majhnim in po potrebi širiti.

Šibek pristop / močan pristop

Šibko (shranjevanje navadne vdelave, brez metapodatkov):

Samo shranite besedilo in vektor. Iskanje: vrni 4 najbolj podobne vektorje.# Težava: ni mogoče filtrirati kot "samo trenutni kadrovski dokumenti"; # stari/nepooblaščeni deli so lahko vključeni tudi v odgovor.

Zmogljivo (bogati metapodatki + filtrirano iskanje):

Vsakemu delu dodajte vir, datum, oddelek in oznako zasebnosti. Filtrirajte glede na avtoriteto in aktualnost uporabnika med iskanjem: filter = {"privacy": user_authority, "date_date": "2024-01"}# Tako je rezultat varen in posodobljen.

Trije mini kovčki

1. primer – Napačna kombinacija modelov. Ekipa je vdelala dokumente z modelom A in vprašanja z modelom B. Iskanje je vrnilo nesmiselne rezultate, stopnja pravilnih odgovorov pa je ostala pri 31 %. Ko sem preklopil na en sam model (oba enaka vdelana modela), je stopnja poskočila na 88 %. Nauk: vprašanje in dokument naj bosta na istem mestu.

Primer 2 – tveganje zasebnosti brez metapodatkov. V zdravstvenem podjetju so bili vsi dokumenti oddelka vrženi v en sam bazen brez metapodatkov. Ko je prodajni sodelavec postavil vprašanje, je sistem kontekstualiziral del podatkov o bolniku. Ko so bili dodani metapodatki + filter (glede na raven avtorizacije), je bilo to tveganje odpravljeno; Pri prevzemu se 12 nedovoljenih kosov sploh ne prinese.

Primer 3 – ozko grlo lestvice. Podjetje za e-trgovino je preiskalo 8 milijonov opisov izdelkov s preprosto metodo "preglej vse"; Vsaka poizvedba je trajala 6 sekund. Ko smo preklopili na ANN s sedežem v HNSW, se je čas zmanjšal na 45 milisekund s samo 1-odstotno izgubo natančnosti. Nauk: ANN je obvezen v velikem nizu.

Pogoste napake

  • Vdelava vprašanja in dokumenta z različnimi modeli: rezultati so nesmiselni; vedno en model.
  • Preskakovanje metapodatkov: ne morete filtrirati; Izgubite nadzor nad zasebnostjo in ažurnostjo.
  • Zamenjavanje vdelave s šifriranjem: vdelava prenaša povratne informacije; Napačno je domnevati, da so občutljivi podatki "skriti".
  • Gradnja nepotrebno velike infrastrukture na majhnem nizu: velikanska gruča, ki jo upravlja 5000 delov, je nepotrebna zapletenost.
  • Naj vas ne skrbi preveč glede kriterija podobnosti: začnite s kosinusom v besedilu; Fina nastavitev pride kasneje.
Pozor: Vdelava vdela pomen besedila v številke, vendar ne "uniči" vsebine. Če vektorska zbirka podatkov uhaja, so ogrožena tudi izvirna shranjena besedila (v večini namestitev je shranjeno tudi besedilo). Naj bo vektorsko skladišče enako zaupno kot dokumenti v njem.

Če povzamem

  • Vdelava spremeni besedilo v vektor številk, ki nosi svoj pomen; Podobni pomeni so bližnji vektorji.
  • Podobnost se pogosto meri s kosinusom; Za normalizirane vektorje daje pikčasti produkt enak rezultat.
  • Pri velikih podatkih ANN (npr. HNSW) nadomešča natančno iskanje: velika hitrost z malo žrtvovanjem natančnosti.
  • Vektorska zbirka podatkov izvaja shranjevanje vektorjev + iskanje podobnosti + filtriranje metapodatkov; metapodatki so bistveni za poslovni RAG.
  • Vprašanje in dokument morata biti prevedena z istim modelom vdelave; sicer koordinat ni mogoče primerjati.

Aplikacijska naloga

Iz dokumenta, ki ste ga izbrali v prejšnji enoti, izvlecite 10 kratkih odlomkov (po 3–6 stavkov). (1) Oblikujte vsaj tri metapodatkovne oznake za vsak del (vir, datum in tretjo, ki ustreza vašemu poslovnemu kontekstu: oddelek, izdelek, zasebnost itd.). (2) Napišite, kateri filter metapodatkov naj se uporabi za 3 različna uporabniška vprašanja. (3) Poiščite 3 pare vprašanj, ki izražajo enak pomen v različnih besedah ​​(npr. »pravica do dopusta« ↔ »letni dopust«) in v enem stavku pojasnite, zakaj se ne bodo ujemali z iskanjem po ključnih besedah, vendar se bodo ujemali z vdelavo.

kontrolni seznam

  • [ ] Lahko rečem, da vdelava spremeni besedilo v vektor v semantičnem prostoru in podobni pomeni so si blizu.
  • Vem, da podobnost kosinusa [ ] meri kot in je privzeta nastavitev v besedilu.
  • [ ] Lahko pojasnim, zakaj je ANN potreben pri velikih podatkih.
  • [ ] Vem, zakaj so metapodatki ključni za nadzor zaupnosti in svežine.
  • [ ] Upoštevam pravilo prevajanja vprašanja in dokumenta z istim modelom vdelave.