Qazanclar:
- Anlayın ki, yerləşdirmə mətni semantik məkanda vektora çevirir və oxşar mənalar yaxın vektorlardır.
- ANN axtarışının kosinus və nöqtə oxşarlığı ölçüləri ilə necə işlədiyini izah etmək
- Xərclərə, miqyaslara və metadata filtrləmə ehtiyacına əsaslanaraq ümumi vektor verilənlər bazalarının seçilməsi
RAG-ın mərkəzində tək bir sual dayanır: "Hansı mətn parçası istifadəçinin sualına daha çox bənzəyir?" Kompüter mətni hərfi mənada deyil, rəqəmlərlə emal edir. Ona görə də ilk növbədə mətni mənasını daşıyan rəqəmlərə çevirməliyik. Yerləşdirmə budur: mətnin həmin mətnin mənasını ifadə edən rəqəmlər ardıcıllığına (vektora) çevrilməsi prosesi. Bu bölməni bitirdikdə siz yerləşdirmənin necə işlədiyini, oxşarlığın necə ölçüldüyünü və düzgün vektor verilənlər bazasını necə seçəcəyinizi biləcəksiniz.
Yerləşdirmə: Mənanın Koordinatlara Tərcüməsi
Yerləşdirmə modeli (xüsusi öyrədilmiş süni intellekt) təqdim etdiyiniz mətni, məsələn, 1024 rəqəminin vektoruna çevirir. Bu vektoru çoxölçülü fəzada koordinat kimi düşünün. Sehrli olan budur: mənaca oxşar mətnlər bu məkanda yaxın koordinatlara düşür.
Sadə bir misal: "illik məzuniyyət", "məzuniyyət hüququ" və "illik ödənişli məzuniyyət" fərqli sözlərdən istifadə edir, lakin eyni şeyi ifadə edir - onların vektorları bir-birinə yaxındır. “Əmək haqqı hesabı” başqa məsələdir – onun vektoru uzaqdır. Beləliklə, istifadəçi "neçə gün məzuniyyətim var?" Soruşanda hətta “tətil” sözü olmayan, “illik məzuniyyət 14 gündür” yazılan sənəd də tapa bilərik. Klassik açar söz axtarışı (sözə tam uyğun gələn axtarış) bunu edə bilməz.
İpucu: Yerləşdirməyi “mənanın barmaq izi” kimi düşünün. Eyni mənalı iki cümlənin barmaq izləri oxşar görünür; Sözlər fərqli olsa belə.
Vacib qayda: sualı daxil edərkən istifadə etdiyiniz model sənədləri daxil edərkən istifadə etdiyiniz modellə eyni olmalıdır. Fərqli modellər müxtəlif boşluqlar istehsal edir; koordinatları müqayisə olunmaz hala gəlir.
Bənzərliyi necə ölçmək olar?
İki vektorun nə qədər oxşar olduğunu ölçmək üçün bir neçə üsul var. Ən çox yayılmış kosinus oxşarlığıdır: iki vektor arasındakı bucağı ölçür. Bucaq kiçikdirsə (eyni istiqaməti göstərən vektorlar), oxşarlıq yüksəkdir. Dəyər −1 ilə 1 arasındadır; 1-ə yaxın = çox oxşar.
meyar
Nə ölçür?
Nə vaxt üstünlük verilir?
Kosinus
Vektorlar arasındakı bucaq (istiqamət).
Ən ümumi; mətndə defolt semantik oxşarlıq
Nöqtə məhsulu
İstiqamət + böyüklük birlikdə
Vektorlar normallaşdırılarsa, kosinusla eyni nəticə verir; sürətlidir
Evklid (evklid məsafəsi)
Koordinatlar arasında düz məsafə
Bəzi qruplaşma ssenarilərində; mətndə az istifadə olunur
Praktikada, yerləşdirmə modellərinin əksəriyyəti normallaşdırılmış vektorlar istehsal edir (ölçüsü 1-ə təyin edilmişdir); Bu halda kosinus və nöqtə hasilatı eyni sıranı verir. Qərarda iflic olmayın: kosinusdan başlayın.
Milyonlarla vektor arasında onları bir-bir müqayisə etmək yavaş olur. Buna görə vektor verilənlər bazası ANN (Proximate Nearest Neighbor) alqoritmlərindən istifadə edir. ANN çox tez "dəqiq ən yaxın" deyil, "demək olar ki, ən yaxın" tapır. Məsələn, HNSW adlanan metod hətta 10 milyon vektor üçün bir neçə millisaniyə ərzində nəticələri qaytara bilər. Kiçik bir dəqiqlik qurbanı üçün böyük sürət qazanırsınız.
Vektor verilənlər bazası nə edir?
Vektor verilənlər bazası eyni anda üç işi görür: (1) vektorları saxlayır, (2) sorğu vektoruna ən çox oxşar vektorları tez tapır, (3) hər bir vektorun yanında metadata ilə süzür. Metaməlumatlar həmin hissəyə əlavə etdiyiniz teqlərdir: mənbə faylı, tarix, şöbə, məxfilik səviyyəsi və s. Metaməlumatların filtrasiyası müəssisə RAG-də vacibdir; çünki siz "yalnız Maliyyə departamentinin 2025 sənədlərində axtarın" kimi məhdudiyyətlər qoya bilməlisiniz.
# Vektor verilənlər bazasında qeydiyyatdan keçin (konseptual)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("İllik ödənişli məzuniyyət 14 gündür..."), text="İllik ödənişli məzuniyyət 14 gündür...", metadata={"mənbə": "ik_el_kitabi.pdf:":"5",department "2", "department" "məxfilik": "ic"})
# Metadata süzülmüş axtarış (konseptual) nəticəsi = vektor_db.search( vektor=embed("neçə günlük məzuniyyətim var?"), top_k=4, filter={"departament": "HR", "məxfilik": ["daxili", "on"]})
Doğru verilənlər bazasının seçilməsi
nəqliyyat vasitəsi
Seçilmiş aspekt
Uyğun vəziyyət
Daxili / fayl əsaslı (daxili kitabxana)
Quraşdırma yoxdur, tək maşındır
Prototip, kiçik dəst (<bir neçə yüz min hissə)
İdarə olunan bulud xidməti
Ölçəkləmə və təmir sizin məsuliyyətiniz deyil
İstehsal, sürətlə böyüyən məlumatlar, kiçik komanda
Öz serverinizdə açıq mənbə
Tam nəzarət, məlumatlarınız sizin qalır
Məxfilik öhdəliyi, mövcud infrastruktur
Mövcud verilənlər bazasına əlavə
Siz ayrı sistemləri idarə etmirsiniz
Artıq istifadə etdiyiniz DB-yə vektor dəstəyinin əlavə edilməsi
Seçərkən soruşun: Neçə ədəd olacaq? Metadata filtrasiyası nə qədər vacibdir? Məlumatlar şirkətdən kənara çıxa bilərmi (məxfilik)? Komanda bir infrastruktur işlədə bilərmi? Çox vaxt kiçikdən başlamaq və lazım olduqda genişləndirmək müdrikdir.
Zəif yanaşma / Güclü yanaşma
Zəif (sadə yerləşdirməni saxlayır, metadata yoxdur):
Sadəcə mətni və vektoru qeyd edin. Axtarış: 4 ən oxşar vektoru qaytarın.# Problem: "yalnız cari HR sənədləri" kimi filtrlənə bilməz;# köhnə/icazəsiz hissələr də cavaba daxil edilə bilər.
Güclü (zəngin metadata + filtrlənmiş axtarış):
Hər parçaya mənbə, tarix, şöbə və məxfilik etiketi əlavə edin. Axtarış zamanı istifadəçinin səlahiyyətinə və aktuallığına görə filtrləyin: filter = {"privacy": user_authority, "date_date": "2024-01"}# Beləliklə, nəticə həm təhlükəsiz, həm də aktualdır.
Üç mini qutu
Məsələn 1 - Yanlış model qarışığı. Komanda A modeli ilə sənədləri və B modeli ilə sualları daxil etdi. Axtarışlar mənasız nəticələr verdi və düzgün cavab nisbəti 31% səviyyəsində qaldı. Mən tək bir modelə (hər ikisi eyni yerləşdirmə modeli) keçəndə nisbət 88%-ə yüksəldi. Dərs: sual və sənəd eyni boşluqda olmalıdır.
2-ci hal – metadata olmadan məxfilik riski. Bir səhiyyə şirkətində bütün şöbə sənədləri metadata olmadan vahid hovuza atıldı. Satış əməkdaşı sual verəndə sistem xəstə məlumatlarının bir hissəsini kontekstləşdirdi. Metadata + filtr əlavə edildikdə (icazə səviyyəsinə uyğun olaraq) bu risk aradan qaldırıldı; Axtarışda 12 icazəsiz parça ümumiyyətlə gətirilmir.
3-cü hal – Tərəzi darboğazı. Bir e-ticarət şirkəti sadə "hamısını skan et" üsulu ilə 8 milyon məhsul təsvirini axtardı; Hər sorğu 6 saniyə çəkdi. HNSW əsaslı ANN-ə keçdiyimiz zaman vaxt dəqiqlikdə yalnız 1% itki ilə 45 millisaniyəyə qədər azaldı. Dərs: ANN böyük dəstdə məcburidir.
Ümumi səhvlər
- Sualın və sənədin müxtəlif modellərlə yerləşdirilməsi: Nəticələr mənasızdır; həmişə bir model.
- Metaməlumatların atlanması: Siz filtrdən keçirə bilməzsiniz; Siz məxfilik və yenilik üzərində nəzarəti itirirsiniz.
- Şifrələmə üçün Yerləşdirməni səhv salmaq: Yerləşdirmə geri qaytarıla bilən məlumatı daşıyır; Həssas məlumatların "gizli" olduğunu düşünmək yanlışdır.
- Kiçik dəstdə lazımsız böyük infrastrukturun qurulması: 5000 hissə üçün idarə olunan nəhəng klaster lazımsız mürəkkəblikdir.
- Oxşarlıq meyarı ilə bağlı çox narahat olmayın: Mətndə kosinusdan başlayın; İncə tənzimləmə daha sonra gəlir.
Diqqət: Yerləşdirmə mətnin mənasını rəqəmlərlə daxil edir, lakin məzmunu "məhv etmir". Əgər vektor verilənlər bazası sızarsa, orijinal saxlanan mətnlər də (əksər quraşdırmalarda mətn də saxlanılır) təhlükə altına düşür. Vektor deposunu içindəki sənədlər kimi məxfi saxlayın.
Xülasə
- Yerləşdirmə mətni onun mənasını daşıyan rəqəmlərin vektoruna çevirir; Oxşar mənalar yaxın vektorlardır.
- Oxşarlıq çox vaxt kosinusla ölçülür; Normallaşdırılmış vektorlar üçün nöqtə hasili eyni nəticəni verir.
- Böyük verilənlərdə ANN (məsələn, HNSW) dəqiq axtarışı əvəz edir: kiçik dəqiqlik qurbanı ilə böyük sürət.
- Vektor verilənlər bazası vektor saxlama + oxşarlıq axtarışı + metaməlumatların filtrasiyasını həyata keçirir; metadata müəssisə RAG üçün vacibdir.
- Sual və sənəd eyni yerləşdirmə modeli ilə tərcümə edilməlidir; əks halda koordinatlar müqayisə edilə bilməz.
Tətbiq tapşırığı
Əvvəlki bölmədə seçdiyiniz sənəddən 10 qısa keçid (hər biri 3-6 cümlə) çıxarın. (1) Hər parça üçün ən azı üç metadata teqi (mənbə, tarix və biznes kontekstinizə uyğun üçüncü: şöbə, məhsul, məxfilik və s.) tərtib edin. (2) 3 müxtəlif istifadəçi sualı üçün hansı metadata filtrinin tətbiq edilməsi lazım olduğunu yazın. (3) Eyni mənanı müxtəlif sözlərlə ifadə edən 3 sual hissəsi cütünü tapın (məsələn, “tətil hüququ” ↔ “illik məzuniyyət”) və bir cümlə ilə onların açar söz axtarışına uyğun gəlməyəcəyini, lakin yerləşdirməyə nə üçün uyğun olacağını izah edin.
yoxlama siyahısı
- [ ] Deyə bilərəm ki, yerləşdirmə mətni semantik məkanda vektora çevirir və oxşar mənalar yaxındır.
- Mən bilirəm ki, [ ] Kosinus oxşarlığı bucağı ölçür və mətndə standart üstünlükdür.
- [ ] Böyük verilənlərdə ANN-nin nə üçün lazım olduğunu izah edə bilərəm.
- [ ] Mən metadatanın məxfilik və təzəliyə nəzarət üçün niyə vacib olduğunu bilirəm.
- [ ] Mən sualın və sənədin eyni yerləşdirmə modeli ilə tərcümə edilməsi qaydasına əməl edirəm.