Vektör veritabanı (vector database) nedir?
Vektör veritabanı, embedding vektörlerini saklar ve bir soruya anlamca en yakın kayıtları hızla bulur. RAG sistemlerinin temelidir.
Vektör veritabanı nedir?
Klasik veritabanları "müşteri numarası 1042 olan kaydı getir" gibi kesin eşleşmelerde çok iyidir. Anlam üzerinden arama başka bir iştir: "iade süresi ne kadar?" sorusu için içinde "cayma hakkı 14 gün" yazan paragrafı bulmak gerekir, oysa iki cümle ortak kelime taşımaz.
Vektör veritabanı bu işi yapar. Metinlerin embedding vektörlerini saklar ve bir sorgu vektörüne en yakın vektörleri getirir.
Nasıl çalışır?
- Belgeler parçalara bölünür ve her parça bir embedding modeliyle vektöre çevrilir.
- Vektörler; metnin kendisi, kaynağı ve tarihi gibi ek bilgilerle (metadata) birlikte veritabanına yazılır.
- Bir soru geldiğinde o da vektöre çevrilir ve veritabanı en yakın kayıtları döndürür.
Milyonlarca vektörü tek tek karşılaştırmak yavaş olacağı için bu sistemler yaklaşık en yakın komşu (ANN) arama algoritmaları kullanır. En yaygınlarından HNSW, vektörleri katmanlı bir ağ gibi birbirine bağlar ve aramayı birkaç adımda doğru bölgeye daraltır. Karşılığında sonuç yüzde yüz kesin değildir, çok iyi bir yaklaşıktır.
Hangi seçenekler var?
Pinecone, Weaviate, Qdrant ve Milvus vektör aramaya özel geliştirilmiş sistemlerdir. Zaten PostgreSQL kullanan ekipler pgvector eklentisiyle vektörleri mevcut veritabanında tutabilir; Elasticsearch ve OpenSearch da vektör aramayı destekler. Küçük ve orta ölçekli projelerde ayrı bir sistem kurmadan mevcut veritabanına vektör eklemek çoğu zaman yeterlidir.
En iyi sonuç sık sık vektör aramasını klasik anahtar kelime aramasıyla birleştiren hibrit aramadan gelir. Ürün kodu ya da kişi adı gibi kesin ifadeleri anahtar kelime araması daha iyi yakalar.
Ne işe yarar?
En yaygın kullanımı RAG sistemleridir: şirket belgeleriyle cevap veren asistanlar, ürün kataloğunda anlamsal arama ve benzer destek taleplerini bulma bunlara örnektir. Yapay zekâ ajanlarının uzun süreli hafızası da çoğunlukla bir vektör veritabanında tutulur.