Birlik 2 / 11

O'rnatish va vektor ma'lumotlar bazasi mantiqi

Daromadlar:

  • O'rnatish matnni semantik makonda vektorga aylantirishini tushuning va shunga o'xshash ma'nolar yaqin vektorlardir.
  • ANN qidiruvi kosinus va nuqta o'xshashlik ko'rsatkichlari bilan qanday ishlashini tushuntirish
  • Narx, masshtab va metama'lumotlarni filtrlash zarurati asosida umumiy vektor ma'lumotlar bazalarini tanlash

RAGning markazida bitta savol yotadi: "Qaysi matn foydalanuvchi savoliga ko'proq o'xshaydi?" Kompyuter matnni so'zma-so'z emas, raqamlar bilan qayta ishlaydi. Shuning uchun biz birinchi navbatda matnni ma'nosini anglatuvchi raqamlarga aylantirishimiz kerak. O'rnatish - bu matnni ushbu matnning ma'nosini ifodalovchi raqamlar ketma-ketligiga (vektorga) aylantirish jarayoni. Ushbu blokni tugatsangiz, siz o'rnatish qanday ishlashini, o'xshashlik qanday o'lchanganini va to'g'ri vektor ma'lumotlar bazasini qanday tanlashni bilib olasiz.

O'rnatish: ma'noni koordinatalarga tarjima qilish

O'rnatish modeli (maxsus o'qitilgan sun'iy intellekt) siz taqdim etgan matnni, masalan, 1024 raqam vektoriga aylantiradi. Ushbu vektorni ko'p o'lchovli fazodagi koordinata sifatida tasavvur qiling. Sehr-jodu shundaki: ma'nosi o'xshash matnlar bu bo'shliqda yaqin koordinatalarga tushadi.

Oddiy misol: "yillik ta'til", "ta'til huquqi" va "yillik to'lanadigan ta'til" turli so'zlardan foydalanadi, lekin bir xil ma'noni anglatadi - ularning vektorlari bir-biriga yaqin. "Ish haqi hisobi" - bu boshqa masala - uning vektori uzoqdir. Shunday qilib, foydalanuvchi "menda qancha kunlik ta'til bor?" So‘rasangiz, “bayram” so‘zi bo‘lmagan, “yillik ta’til 14 kun” deb yozilgan hujjatni ham uchratamiz. Klassik kalit so'zlarni qidirish (so'zga to'liq mos keladigan qidiruv) buni qila olmaydi.

Maslahat: joylashtirishni "ma'noning barmoq izi" deb o'ylab ko'ring. Bir xil ma'noga ega bo'lgan ikkita jumlaning barmoq izlari o'xshash ko'rinadi; So'zlar boshqacha bo'lsa ham.

Muhim qoida: savolni joylashtirishda foydalanadigan model hujjatlarni joylashtirishda foydalanadigan modelga o'xshash bo'lishi kerak. Turli xil modellar turli xil bo'shliqlarni ishlab chiqaradi; koordinatalar tengsiz bo'lib qoladi.

O'xshashlikni qanday o'lchash mumkin?

Ikki vektor qanchalik o'xshashligini o'lchashning bir necha usullari mavjud. Eng keng tarqalgan kosinus o'xshashligi: u ikki vektor orasidagi burchakni o'lchaydi. Agar burchak kichik bo'lsa (vektorlar bir xil yo'nalishda bo'lsa), o'xshashlik yuqori. Qiymat -1 va 1 orasida; 1 ga yaqin = juda o'xshash.

mezon

U nimani o'lchaydi?

Qachon afzallik beriladi?

Kosinus

Vektorlar orasidagi burchak (yo'nalish).

Eng keng tarqalgan; matndagi standart semantik o'xshashlik

Nuqta mahsuloti

Yo'nalish + kattalik birgalikda

Agar vektorlar normallashtirilsa, u kosinus bilan bir xil natija beradi; tezdir

Evklid (evklid masofasi)

Koordinatalar orasidagi to'g'ri masofa

Ba'zi klasterlash stsenariylarida; matnda kamroq qo'llaniladi

Amalda, ko'p joylashtirish modellari normallashtirilgan vektorlarni ishlab chiqaradi (hajmi 1 ga o'rnatilgan); Bunday holda, kosinus va nuqta mahsuloti bir xil tartibni beradi. Qarorni falaj qilmang: kosinusdan boshlang.

Millionlab vektorlar orasida ularni birma-bir taqqoslash sekin. Shuning uchun vektor ma'lumotlar bazasida ANN (Approximate Nearest Neighbor) algoritmlaridan foydalaniladi. ANN juda tez "aniq eng yaqin" emas, balki "deyarli eng yaqin" ni topadi. Misol uchun, HNSW deb nomlangan usul hatto 10 million vektor uchun ham natijalarni bir necha millisekundda qaytarishi mumkin. Kichkina aniqlik qurbonligi uchun siz katta tezlikka erishasiz.

Vektor ma'lumotlar bazasi nima qiladi?

Vektor ma'lumotlar bazasi bir vaqtning o'zida uchta ishni bajaradi: (1) vektorlarni saqlaydi, (2) so'rov vektoriga eng o'xshash vektorlarni tezda topadi, (3) har bir vektor yonidagi metama'lumotlar bo'yicha filtrlaydi. Metadata - bu siz ushbu qismga biriktiradigan teglar: manba fayli, sana, bo'lim, maxfiylik darajasi va boshqalar. RAG korxonasida metama'lumotlarni filtrlash juda muhim; chunki siz "faqat moliya bo'limining 2025 yil hujjatlaridan qidirish" kabi cheklovlarni o'rnatishingiz kerak.

# Vektor ma'lumotlar bazasiga ro'yxatdan o'ting (kontseptual)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("Yillik haq to'lanadigan ta'til 14 kun..."), text="Yillik to'lanadigan ta'til - 14 kun...", metadata={"manba": "ik_el_kitabi.pdf: "IK6", "department", "-0"2 "privacy": "ic"})

# Metadata filtrlangan qidiruv (kontseptual) natijasi = vektor_db.search( vektor=embed("menda necha kunlik ta'til bor?"), top_k=4, filter={"bo'lim": "HR", "maxfiylik": ["ichki", "yoqilgan"]})

To'g'ri ma'lumotlar bazasini tanlash

avtomobil

Belgilangan jihat

Muvofiq holat

O'rnatilgan / faylga asoslangan (o'rnatilgan kutubxona)

O'rnatish yo'q, bitta mashina

Prototip, kichik to'plam (< bir necha yuz ming qismlar)

Boshqariladigan bulut xizmati

O'lchov va texnik xizmat sizning javobgarligingiz emas

Ishlab chiqarish, tez o'sib borayotgan ma'lumotlar, kichik jamoa

O'z serveringizda ochiq manba

To'liq nazorat, ma'lumotlaringiz sizniki bo'lib qoladi

Maxfiylik majburiyati, mavjud infratuzilma

Mavjud ma'lumotlar bazasiga qo'shimcha

Siz alohida tizimlarni boshqarolmaysiz

Siz allaqachon foydalanayotgan JBga vektor yordamini qo'shish

Tanlashda so'rang: nechta bo'lak bo'ladi? Metadata filtrlash qanchalik muhim? Ma'lumotlar kompaniyadan tashqariga chiqishi mumkinmi (maxfiylik)? Jamoa infratuzilmani boshqara oladimi? Ko'pincha kichikdan boshlash va kerak bo'lganda kengaytirish oqilona.

Zaif yondashuv / Kuchli yondashuv

Zaif (oddiy o'rnatishni saqlash, metama'lumotlar yo'q):

Faqat matn va vektorni saqlang. Qidiruv: 4 ta eng oʻxshash vektorni qaytaring.# Muammo: "faqat joriy HR hujjatlari" kabi filtrlash mumkin emas;# eski/ruxsatsiz qismlar ham javobga kiritilishi mumkin.

Kuchli (boy metadata + filtrlangan qidiruv):

Har bir qismga manba, sana, bo'lim va maxfiylik yorlig'ini qo'shing. Qidiruv vaqtida foydalanuvchining vakolatiga va hozirgi holatiga qarab filtrlang: filter = {"privacy": user_authority, "date_date": "2024-01"}# Shunday qilib, natija ham xavfsiz, ham dolzarb.

Uchta mini korpus

1-holat - noto'g'ri model aralashmasi. Jamoa A modelidagi hujjatlarni va B modelidagi savollarni joylashtirdi. Qidiruvlar maʼnosiz natijalar berdi va toʻgʻri javob darajasi 31% da qoldi. Men bitta modelga (ikkalasi ham bir xil o'rnatish modeli) o'tganimda, stavka 88% ga ko'tarildi. Dars: savol va hujjat bir xil bo'shliqda bo'lishi kerak.

2-holat - metama'lumotlarsiz maxfiylik xavfi. Sog'liqni saqlash kompaniyasida barcha bo'lim hujjatlari metama'lumotlarsiz bitta hovuzga tashlangan. Savdo hamkori savol berganida, tizim bemor ma'lumotlarining bir qismini kontekstga aylantirdi. Metadata + filtri qo'shilganda (avtorizatsiya darajasiga ko'ra) bu xavf bartaraf etildi; Qidiruvda ruxsat etilmagan 12 dona umuman keltirilmaydi.

3-holat - masshtabdagi darboğaz. Elektron tijorat kompaniyasi oddiy "barchasini skanerlash" usuli bilan 8 million mahsulot tavsifini qidirdi; Har bir so'rov 6 soniya davom etdi. HNSW-ga asoslangan ANN-ga o'tganimizda, vaqt 45 millisekundgacha qisqardi, faqat 1% aniqlik yo'qotildi. Dars: ANN katta to'plamda majburiydir.

Umumiy xatolar

  • Savol va hujjatni turli modellar bilan joylashtirish: Natijalar ma'nosiz; har doim bitta model.
  • Metamaʼlumotlarni oʻtkazib yuborish: Siz filtrlay olmaysiz; Siz maxfiylik va yangilanish nazoratini yo'qotasiz.
  • Shifrlash uchun o'rnatishda xato: o'rnatish qaytariladigan ma'lumotni olib yuradi; Nozik ma'lumotlar "yashirin" deb taxmin qilish noto'g'ri.
  • Kichkina to'plamda keraksiz katta infratuzilmani qurish: 5000 ta qismdan iborat ulkan klaster - bu keraksiz murakkablik.
  • O'xshashlik mezoni haqida ko'p tashvishlanmang: Matndagi kosinusdan boshlang; Nozik sozlash keyinroq keladi.
E'tibor bering: o'rnatish matnning ma'nosini raqamlarga kiritadi, lekin tarkibni "yo'q qilmaydi". Agar vektor ma'lumotlar bazasi sizib ketgan bo'lsa, asl saqlangan matnlar (ko'pgina o'rnatishlarda matn ham saqlanadi) ham buziladi. Vektor omborini undagi hujjatlar kabi maxfiy tuting.

Xulosa

  • O'rnatish matnni uning ma'nosini o'z ichiga olgan raqamlar vektoriga aylantiradi; Shunga o'xshash ma'nolar yaqin vektorlardir.
  • O'xshashlik ko'pincha kosinus bilan o'lchanadi; Normallashtirilgan vektorlar uchun nuqta mahsuloti bir xil natijani beradi.
  • Katta ma'lumotlarda ANN (masalan, HNSW) aniq qidiruv o'rnini bosadi: aniqlikdan ozgina qurbonlik bilan katta tezlik.
  • Vektor ma'lumotlar bazasi vektor saqlash + o'xshashlik qidirish + metama'lumotlarni filtrlashni amalga oshiradi; metama'lumotlar korxona RAG uchun zarurdir.
  • Savol va hujjat bir xil o'rnatish modeli bilan tarjima qilinishi kerak; aks holda koordinatalarni solishtirib bo'lmaydi.

Ilova vazifasi

Oldingi bo'limda tanlagan hujjatdan 10 ta qisqa parcha (har biri 3-6 jumla) chiqarib oling. (1) Har bir parcha uchun kamida uchta metamaʼlumot tegini loyihalash (manba, sana va biznes kontekstingizga mos keladigan uchinchisi: boʻlim, mahsulot, maxfiylik va h.k.). (2) 3 xil foydalanuvchi savoliga qaysi metamaʼlumotlar filtri qoʻllanilishi kerakligini yozing. (3) Turli so'zlar bilan bir xil ma'noni ifodalovchi 3 ta savol qismi juftligini toping (masalan, "ta'til huquqi" ↔ "yillik ta'til") va nima uchun ular kalit so'z qidirishga mos kelmasligini, lekin joylashtirishga mos kelishini bir jumlada tushuntiring.

nazorat ro'yxati

  • [ ] Aytishim mumkinki, joylashtirish matnni semantik makonda vektorga aylantiradi va shunga o'xshash ma'nolar yaqin.
  • Bilaman, [ ] Kosinus oʻxshashligi burchakni oʻlchaydi va matnda standart afzallik hisoblanadi.
  • [ ] Katta maʼlumotlarda ANN nima uchun zarurligini tushuntira olaman.
  • [ ] Men nima uchun metadata maxfiylik va yangilikni nazorat qilish uchun muhimligini bilaman.
  • [ ] Men savol va hujjatni bir xil joylashtirish modeli bilan tarjima qilish qoidasiga amal qilaman.