Hagnaður:
- Skilja að innfelling breytir textanum í vektor í merkingarrýminu og svipaðar merkingar eru nánir vektorar
- Útskýrir hvernig ANN leit virkar með kósínus- og punktalíkingarmælingum
- Val á algengum vektorgagnagrunnum út frá kostnaði, umfangi og þörf fyrir síun lýsigagna
Kjarninn í RAG er ein spurning: "Hvaða textahluti líkist mest spurningu notandans?" Tölvan vinnur texta með tölustöfum, ekki bókstaflega. Þess vegna þurfum við fyrst að breyta textanum í tölur sem bera merkingu þess. Það er það sem innfelling er: ferlið við að breyta texta í röð talna (vigur) sem táknar merkingu þess texta. Þegar þú klárar þessa einingu muntu vita hvernig innfelling virkar, hvernig líkindi eru mæld og hvernig á að velja réttan vektorgagnagrunn.
Innfelling: Þýðir merkingu í hnit
Innfellingarlíkan (sérþjálfað gervigreind) breytir textanum sem þú gefur upp í vektor með til dæmis 1024 tölum. Hugsaðu um þennan vektor sem hnit í fjölvíðu rými. Galdurinn er þessi: textar sem eru svipaðir að merkingu falla í náin hnit í þessu rými.
Einfalt dæmi: „árlegt orlof“, „orlofsréttur“ og „árlegt launað leyfi“ nota mismunandi orð en þýða það sama - vektorar þeirra eru nálægt hver öðrum. „Launareikningur“ er allt annað mál - vektor hans er fjarlæg. Þannig að notandinn spyr "hversu marga daga í frí á ég?" Þegar þú spyrð getum við jafnvel fundið skjal sem inniheldur ekki orðið "frí" heldur segir "árlegt leyfi er 14 dagar". Þetta er það sem klassísk leitarorðaleit (leit sem passar nákvæmlega við orðið) getur ekki gert.
Ábending: Hugsaðu um innfellingu sem "fingraför merkingar." Fingraför tveggja setninga með sömu merkingu virðast lík; Jafnvel þótt orðin séu önnur.
Mikilvæg regla: líkanið sem þú notar þegar þú fellir inn spurninguna ætti að vera sama líkanið og þú notar þegar þú fellir inn skjöl. Mismunandi gerðir framleiða mismunandi rými; hnit verða ósambærileg.
Hvernig á að mæla líkindi?
Það eru nokkrar aðferðir til að mæla hversu líkir tveir vektorar eru. Algengasta er kósínuslíking: það mælir hornið á milli tveggja vigra. Ef hornið er lítið (vírar vísa í sömu átt) er líkindin mikil. Gildið er á milli −1 og 1; Nálægt 1 = mjög svipað.
viðmiðun
Hvað mælir það?
Hvenær er það valið?
Kósínus
Horn (átt) á milli vigra
Algengasta; sjálfgefið í merkingarfræðilegri líkingu texta
Punktur vara
Stefna + stærð saman
Ef vektorarnir eru staðlaðir gefur það sömu niðurstöðu og kósínus; er fljótur
Evklíðsk (evklíðsk fjarlægð)
Bein fjarlægð á milli hnita
Í sumum þyrpingaratburðarásum; minna notað í texta
Í reynd framleiða flest innfellingarlíkön staðlaða vektora (stærð stillt á 1); Í þessu tilviki gefa kósínus og punktavara sömu röð. Ekki láta ákvörðunina lamast: byrjaðu á kósínus.
Meðal milljóna vigra er hægt að bera þá saman einn í einu í einu. Þess vegna nota vektorgagnagrunnar ANN (Approximate Nearest Neighbor) reiknirit. ANN finnur "næstum nákvæmlega næst" frekar en "nákvæmlega næst" mjög fljótt. Til dæmis getur aðferðin sem kallast HNSW skilað niðurstöðum á nokkrum millisekúndum jafnvel fyrir 10 milljónir vigra. Þú færð mikinn hraða fyrir litla fórn af nákvæmni.
Hvað gerir Vector Database?
Vigurgagnagrunnur gerir þrennt í einu: (1) geymir vigra, (2) finnur fljótt vektora sem líkjast mest fyrirspurnarvigri, (3) síar með lýsigögnum við hliðina á hverjum vektor. Lýsigögn eru merkin sem þú festir við það stykki: frumskrá, dagsetningu, deild, persónuverndarstig osfrv. Lýsigagnasía er mikilvæg í RAG fyrirtækis; vegna þess að þú þarft að geta sett takmarkanir eins og "leita aðeins í skjölum fjármálasviðs 2025".
# Skráðu þig í vektor gagnagrunninn (hugmynda)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Árlegt launað leyfi er 14 dagar..."), text="Árlegt launað leyfi er 14 dagar...", metadata={"heimild": "ik_el_kitabi.pdf", "department"-:020 "privacy", "department": "620 "privacy", " "ic")
# Metadata filtered search (conceptual)result = vektor_db.search( vektor=embed("hversu marga daga í leyfi á ég?"), top_k=4, filter={"department": "HR", "privacy": ["internal", "on"]})
Að velja réttan gagnagrunn
farartæki
Valinn þáttur
Hentar aðstæður
Innbyggt / skráarbundið (innbyggt bókasafn)
Engin uppsetning, ein vél
Frumgerð, lítið sett (< nokkur hundruð þúsund hlutar)
Stýrð skýjaþjónusta
Stærð og viðhald er ekki á þína ábyrgð
Framleiðsla, ört vaxandi gögn, lítið teymi
Opinn uppspretta á þínum eigin netþjóni
Full stjórn, gögnin þín haldast þín
Persónuverndarskylda, núverandi innviðir
Viðbót við núverandi gagnagrunn
Þú stjórnar ekki aðskildum kerfum
Bætir vektorstuðningi við DB sem þú notar nú þegar
Spyrðu þegar þú velur: Hversu mörg stykki verða? Hversu mikilvæg er síun lýsigagna? Geta gögn farið út fyrir fyrirtækið (trúnað)? Getur teymið rekið innviði? Oft er skynsamlegt að byrja smátt og stækka eftir þörfum.
Veik nálgun / Sterk nálgun
Veik (geymir venjulega innfellingu, engin lýsigögn):
Vistaðu bara textann og vektorinn. Leita: skilaðu 4 líkustu vektorunum.# Vandamál: getur ekki síað eins og "aðeins núverandi HR skjöl";# gamlir/óheimilaðir hlutar gætu einnig verið með í svarinu.
Öflugt (rík lýsigögn + síuð leit):
Bættu uppruna, dagsetningu, deild og persónuverndarmerki við hvert stykki. Sía í samræmi við vald notandans og núverandi stöðu meðan á leitinni stendur: filter = {"privacy": user_authority, "date_date": "2024-01"}# Þannig er niðurstaðan bæði örugg og uppfærð.
Þrjú Mini Cass
Tilfelli 1 - Röng gerð samsetning. Hópur setti inn skjöl með líkani A og spurningar með líkani B. Leitin skilaði tilgangslausum niðurstöðum og rétt svarhlutfall var áfram 31%. Þegar ég skipti yfir í eina gerð (bæði sömu innfellingarlíkanið) fór hlutfallið upp í 88%. Lexía: spurning og skjal ættu að vera í sama rými.
Mál 2 — Persónuverndaráhætta án lýsigagna. Í heilbrigðisfyrirtæki var öllum deildarskjölum hent í eina laug án lýsigagna. Þegar söluaðili spurði spurningar setti kerfið gögn um sjúklinga í samhengi. Þegar lýsigögn + sía var bætt við (samkvæmt heimildarstigi) var þessari áhættu eytt; Við endurheimt er alls ekki komið með 12 óviðkomandi stykki.
Mál 3 - Flöskuháls. Netverslunarfyrirtæki leitaði í 8 milljón vörulýsingum með einfaldri „skanna allt“ aðferð; Hver fyrirspurn tók 6 sekúndur. Þegar við skiptum yfir í HNSW-undirstaða ANN minnkaði tíminn í 45 millisekúndur, með aðeins 1% tapi á nákvæmni. Lexía: ANN er skylda í stóra settinu.
Algeng mistök
- Innfella spurninguna og skjalið með mismunandi gerðum: Niðurstöðurnar eru tilgangslausar; alltaf ein módel.
- Sleppa lýsigögnum: Þú getur ekki síað; Þú missir stjórn á friðhelgi einkalífs og uppfærð.
- Mistaka Innbygging fyrir dulkóðun: Innfelling ber afturkræfar upplýsingar; Það er rangt að gera ráð fyrir að viðkvæm gögn séu „falin“.
- Að byggja óþarflega stóra innviði á litlu setti: Risastór þyrping sem er stjórnað fyrir 5.000 hluta er óþarfa flókið.
- Ekki hafa of miklar áhyggjur af líkindaviðmiðinu: Byrjaðu á kósínus í textanum; Fínstilling kemur síðar.
Varúð: Innfelling felur merkingu textans í tölustöfum en „eyðileggur“ ekki innihaldið. Ef vektorgagnagrunni lekur, er upprunalegu geymdu textunum (í flestum uppsetningum er textinn einnig geymdur) einnig í hættu. Haltu vektorgeymslunni eins trúnaðarmáli og skjölin í henni.
Í stuttu máli
- Innfelling breytir texta í vektor af tölum sem ber merkingu þess; Svipaðar merkingar eru nánir vektorar.
- Líkindi er oft mæld með kósínus; Fyrir staðlaða vektora gefur punktaafurð sömu niðurstöðu.
- Í stórum gögnum kemur ANN (t.d. HNSW) í stað nákvæmrar leitar: mikill hraði með lítilli fórn af nákvæmni.
- Vektorgagnagrunnur framkvæmir vektorgeymslu + líkindaleit + lýsigagnasíun; lýsigögn eru nauðsynleg fyrir RAG fyrirtæki.
- Spurningin og skjalið verður að þýða með sama innfellingarlíkani; annars er ekki hægt að bera hnitin saman.
Umsóknarverkefni
Dragðu 10 stutta kafla (3-6 setningar hver) úr skjalinu sem þú valdir í fyrri einingu. (1) Hannaðu að minnsta kosti þrjú lýsigagnamerki fyrir hvert verk (uppruni, dagsetning og þriðjungur sem hæfir viðskiptasamhenginu þínu: deild, vöru, friðhelgi einkalífs osfrv.). (2) Skrifaðu hvaða lýsigagnasíu ætti að nota fyrir 3 mismunandi notendaspurningar. (3) Finndu 3 spurningahlutapör sem tjá sömu merkingu í mismunandi orðum (t.d. „orlofsréttur“ ↔ „árlegt leyfi“) og útskýrðu í einni setningu hvers vegna þau passa ekki við leitarorðaleit heldur passa við innfellingu.
gátlisti
- [ ] Ég get sagt að innfelling breytir textanum í vektor í merkingarrýminu og svipaðar merkingar eru nálægt.
- Ég veit að [ ] Cosinus líkt mælir horn og er sjálfgefið val í texta.
- [ ] Ég get útskýrt hvers vegna ANN er nauðsynlegt í stórum gögnum.
- [ ] Ég veit hvers vegna lýsigögn eru mikilvæg fyrir eftirlit með trúnaði og ferskleika.
- [ ] Ég fylgi reglunni um að þýða spurninguna og skjalið með sama innfellingarlíkani.