Bir Vector DB şirketinde 2 yıl çalışırken öğrendiklerim
(leoniemonigatti.com)Weaviate adlı bir vektör DB’de çalışırken, gerçek operasyon deneyiminden elde edilen 37 dersi derledim
↳ BM25 ve anahtar kelime aramanın faydasından vektör arama, embedding ve hibrit aramaya kadar
1. BM25, aramada güçlü bir baseline’dır
- Karmaşık vektör aramadan önce BM25 gibi basit anahtar kelime aramalarıyla performansı doğrulayıp ardından kademeli olarak vektör aramaya genişlemek pratikte daha gerçekçidir
2. Vektör arama exact değil, approximate’tir
- Büyük ölçekli veride hızı artırmak için yaklaşık en yakın komşu (ANN) algoritmaları (HNSW, IVF, ScaNN vb.) kullanılır, ancak bunun karşılığında doğruluktan bir miktar ödün verilir
- Vektör indeksleme, vektör DB’nin büyük ölçekte hız sağlamasının temel unsurudur
3. Vektör DB yalnızca embedding saklamaz
- Orijinal veri (metin vb.) ve metadata da birlikte saklanır; böylece metadata filtreleme, anahtar kelime arama ve hibrit arama mümkün olur
4. Vektör DB’nin ana kullanım alanı üretken yapay zeka değil, ‘arama’dır
- LLM’e context vermek de özünde bir ‘arama’ işlemidir ve vektör DB ile LLM çok iyi uyum sağlayan bir kombinasyondur
5. Döndürülecek sonuç sayısını doğrudan belirtmek gerekir
limitveyatop_kparametresi verilmezse, sorguya en yakın tüm sonuçlar sıralanıp döndürülür
6. Embedding türleri çeşitlidir
- Dense (yoğun) vektörlerin yanı sıra sparse (seyrek), binary (ikili), multi-vector gibi farklı embedding vektör formatları da vardır
7. Embedding modeli seçimi için benchmark’lar
- MTEB, sınıflandırma, kümeleme, arama vb. birçok embedding görevini kapsar
- Bilgi erişimine odaklı benchmark için BEIR incelenebilir
8. MTEB’deki modellerin çoğu yalnızca İngilizce içindir
- Çok dilli veya İngilizce dışı bir ortamda MMTEB benchmark’ını kullanmak önerilir
9. Embedding’in tarihi: Static vs Contextual
- Word2Vec, GloVe gibi statik embedding’ler, her kelime için sabit bir temsil sunar
- BERT gibi contextual embedding’ler, bağlama göre dinamik olarak vektör üretir
- Statik embedding’ler, kaynakların kısıtlı olduğu ortamlarda hızlı referans için uygundur
10. Sparse vector ile sparse embedding arasındaki fark
- Sparse vector: TF-IDF/BM25 gibi istatistik tabanlı ya da sinir ağı tabanlı (sparse embedding, SPLADE vb.) yöntemlerle üretilir
- Her sparse embedding bir sparse vector’dür, ancak tersi doğru değildir
11. Metin dışında farklı veri türleri de embed edilebilir
- Görüntü, PDF (görüntüye dönüştürülerek), grafik vb. veriler de embed edilerek multimodal vektör arama yapılabilir
12. Embedding boyutu ile depolama maliyeti
- Boyut sayısı arttıkça depolama maliyeti de artar
- “Sohbet botu için” gibi basit kullanım senaryolarında yüksek boyutlu model gereksiz olabilir
- Matryoshka Representation Learning ile daha düşük boyutlara inmek de mümkündür
13. “Chat with your docs” eğitimleri üretken yapay zekanın hello world’üdür
14. Embedding modelini tekrar tekrar çağırmak gerekir
- Yalnızca belge alımı (ingestion) sırasında değil; sorgu anında, belge ekleme/değiştirme durumunda ve embedding modeli değiştiğinde de embedding ve indeksleme gerekir
15. Vektör benzerliği ile gerçek relevance aynı olmayabilir
- Benzer cümleler (ör. “musluk nasıl tamir edilir” ve “musluk nereden satın alınır”) pratikte düşük alakaya sahip olabilir
16. Cosine similarity ile cosine distance farklı şeylerdir
- Benzerlik ile uzaklık matematiksel olarak ters orantılıdır
- Aynı vektör için benzerlik 1, uzaklık 0’dır
17. Vektörler normalize edildiğinde cosine similarity ile dot product aynıdır
- Normalize edilmiş vektörlerde hesaplama açısından dot product daha verimlidir
18. RAG’deki R, ‘vector search’ değil ‘retrieval’dır
- RAG’de retrieval yöntemi çeşitlidir: anahtar kelime, vektör, filtre vb.
19. Vektör arama, arama araçlarından yalnızca biridir
- Anahtar kelime arama, filtreleme, reranking gibi çeşitli yöntemler ve kombinasyonları (hibrit) önemlidir
20. Anahtar kelime/vektör aramanın doğru uygulanışı
- Anlamsal/eşanlamlı eşleşmeler için vektör arama, tam anahtar kelimeler için anahtar kelime arama; her ikisi de gerekiyorsa hibrit arama ve
alphaağırlık ayarı kullanılabilir
21. Hibrit aramanın anlamı
- Genelde anahtar kelime + vektör kombinasyonunu ifade eder; ancak metadata gibi diğer arama yöntemleriyle birleşimler de ‘hibrit’ sayılır
22. Filtreleme her zaman hızı artırmaz
- Örneğin HNSW grafiğinin bağlantısallığı bozulabilir ve sonradan filtreleme yapıldığında hiç sonuç kalmayabilir
- Her vektör DB bunun için farklı optimizasyon teknikleri uygular
23. İki aşamalı arama pipeline’ının faydası
- Yalnızca öneri sistemlerinde değil, RAG gibi alanlarda da önce aday kümesi çıkarılıp sonra yüksek performanslı ikinci aşama reranking ile kalite artırılabilir
24. Vektör arama ile reranking arasındaki fark
- Vektör arama tüm DB içinden belirli sonuçları getirir; reranking ise gelen sonuç kümesinin sırasını yeniden düzenler
25. Embed edilecek chunk boyutunu seçmek zordur
- Çok küçük olursa context kaybı, çok büyük olursa anlam seyrelmesi yaşanır
- Mean pooling gibi yöntemlerle tüm belge tek vektöre dönüştürülebilir; ancak bilgi seyrelmesi olabilir (tüm film karelerini birleştirip afiş yapmak benzetmesi)
26. Vektör indeksleme kütüphaneleri ile vektör DB arasındaki fark
- İkisi de hızlıdır; ancak vektör DB dayanıklılık, CRUD, filtre/hibrit gibi veri yönetimi özelliklerini de sunar
27. LLM context genişlese de RAG gelişmeye devam ediyor
- Uzun context’li LLM’ler çıktıkça ‘RAG öldü’ tartışmaları yapılsa da, pratikte RAG hâlâ gereklidir
28. Vektör quantization ile bilgi %97 azaltılsa da arama korunabilir
- Binary quantization gibi yöntemlerle depolama 32 kat azaltılabilir (32-bit float → 1-bit vb.)
29. Vektör arama yazım hatalarına karşı robust değildir
- Büyük metin corpus’larında bile tüm yazım hataları öğrenilmiş olmaz; yalnızca bir kısmı kapsanabilir
30. Arama kalitesini ölçen metrikler çeşitlidir
- NDCG@k gibi sıralama tabanlı metriklerin yanında Precision/Recall gibi basit metrikler de duruma göre etkilidir
31. Precision-Recall trade-off için pratik örnekler
- Yalnızca tek sonuç döndürmek (Precision ↑ / Recall ↓), tüm sonuçları döndürmek (Recall ↑ / Precision ↓) gibi uç örneklerle açıklanabilir
32. Arama sonucu sırasını dikkate alan metrikler
- Precision/Recall sıralamayı dikkate almaz; MRR@k, MAP@k, NDCG@k gibi sıra duyarlı metrikler gerekir
33. Tokenizer’ın etkisi büyüktür
- Etki yalnızca BPE ile sınırlı değildir; anahtar kelime ve hibrit arama kalitesi üzerinde de tokenizer etkilidir
34. Out-of-domain ile out-of-vocabulary aynı şey değildir
- OOV akıllı tokenizer’larla çözülebilir; ancak out-of-domain durumda embedding’in kendisi anlamsız olabilir
35. Sorgu optimizasyonu gereklidir
- Anahtar kelime aramada olduğu gibi, vektör aramada da sorgu girdisini optimize etme alışkanlığı gerekir
36. Vektör arama sonrasındaki paradigma
- Anahtar kelime arama → vektör arama → LLM reasoning tabanlı retrieval yönünde bir evrim yaşanıyor
37. Bilgi erişimi (retrieval) şu anda en ‘hot’ alanlardan biri
- LLM’lerle birlikte, LLM’e verilecek ‘en iyi bilgiyi’ bulmak bugün en temel ve en önemli görevlerden biridir
1 yorum
Vektör aramayı ele alırken üzerinde düşünülmüş çok sayıda nokta olması güzel.