Vebende Akademi - vector-db
Uzmanla Konuşun
Blog
MAKALE

Vector DB Nedir? Vektör Veritabanları, Semantic Search ve Uygulamaları

Vector DB Nedir? Vektör Veritabanları, Semantic Search ve Uygulamaları

Vektör veritabanları, metin, resim, ses veya başka veri tiplerinden elde edilen embedding'leri saklamak, hızlı benzerlik aramaları yapmak ve semantik arama/özetleme gibi modern AI iş yüklerini desteklemek için özel olarak tasarlanmış veri tabanlarıdır. Bu rehber, temel kavramlardan mimariye, kullanım senaryolarına ve uygulama örneklerine kadar kapsamlı bir bakış sağlar.

1. Temel Kavramlar

  • Embedding: Ham verinin (metin, görsel vb.) sayısal vektör temsili. Benzer içerikler vektör uzayında yakın konumlanır.
  • Cosine similarity / L2 dist: Vektörler arasındaki benzerliği ölçmek için kullanılan metrikler.
  • ANN (Approximate Nearest Neighbors): Büyük vektör setlerinde hızlı yakın komşu aramaları için kullanılan algoritmalar (HNSW, IVF, PQ vb.).
  • Index: Vektör kümeleri üzerinde sorguları hızlandırmak için oluşturulan veri yapıları.
  • Metadata: Her vektöre iliştirilen orijinal içerik, ID ve ek bilgiler; sorgu sonuçlarının bağlam kazandırılması için kullanılır.

2. Neden Vector DB?

Geleneksel ilişkisel veya anahtar-değer veritabanları semantik benzerlik aramalarında verimli değildir. Vector DB'ler şu avantajları sunar:

  • Yüksek performanslı benzerlik aramaları için optimize edilmiş indeksleme.
  • Büyük ölçek: milyarlarca vektör için ölçeklenebilir mimariler.
  • Düşük gecikme: interaktif uygulamalarda gerçek zamanlı yanıt veren sorgular.
  • Metadata join ve filtreleme ile zengin sorgu yetenekleri.
  • ML ve NLP iş akışlarına doğal entegrasyon (RAG, semantic search, recommendation).

3. Popüler Vector DB'ler ve Karşılaştırma

  • Pinecone: Managed, kolay kullanılabilir, production-ready servis.
  • Milvus: CNCF uyumluluğu, açık kaynak, büyük ölçek için uygundur.
  • Weaviate: Schema-first, GraphQL ve semantic search özellikleriyle zengin.
  • Chroma / FAISS: FAISS bir kütüphane; Chroma uygulama odaklı embedding veritabanı sağlar.
  • Elasticsearch + Dense Vector: Arama motoru çözümleri ile vektör destekli arama yapılabilir ancak tam optimize vector DB'ler kadar performans vermez.

4. Mimari ve Tasarım Kararları

  • Index tipi seçimi: HNSW yüksek doğruluk ve düşük gecikme için uygundur; IVF/PQ hafıza-tasarrufu için tercih edilir.
  • Sharding & Replication: Büyük veri setlerinde ölçekleme ve yüksek erişilebilirlik için kritik.
  • Metadata filtreleme: Vektör aramalarını metadata ile daraltmak performansı ve doğruluğu artırır.
  • Hybrid search: İlk adım semantic (embedding) ile candidate seç, ikinci adım klasik BM25 veya doğrulama modelleri ile rerank et.
  • Batch vs real-time index updates: Gerçek zamanlı indeksleme gecikme gereksinimlerine göre tasarlanmalı.

5. Uygulama Senaryoları

  • Semantic Search / RAG: Doküman tabanlı arama ve Retrieval-Augmented Generation akışları için temel bileşen.
  • Recommendation: İçerik veya kullanıcı embedding'leri ile yakınlık tabanlı öneriler.
  • Deduplication & Near-duplicate detection: Benzer içerikleri tespit etme.
  • Semantic Clustering: Belgeleri konu bazlı gruplama ve keşif.
  • Multimodal Retrieval: Görsel, metin ve ses embedding'lerini aynı uzayda arama.

6. Örnek Mimari: RAG Pipeline

  1. Veri topla ve preprocess et (metin temizleme, chunking).
  2. Her chunk için embedding üret (OpenAI, Mistral, SentenceTransformers vb.).
  3. Embedding'leri vector DB'ye indexle, metadata ile ilişkilendir.
  4. Kullanıcı sorgusu geldiğinde embedding üret, vector DB'de nearest neighbors ara.
  5. Retrieve edilen dokümanları LLM'e vererek yanıt üret (RAG).
  6. Sonuçları doğrulama veya reranking ile güvence altına al.

7. Performans ve Maliyet Optimizasyonu

  • Index parametrelerini (efConstruction, M, nprobe) uygulama gereksinimine göre ayarlayın.
  • Cold vs hot storage ayrımı: sık erişilen verileri hot node'larda tutun.
  • Embedding boyutunu optimize edin: yüksek boyut doğruluğu artırır ama maliyeti yükseltir.
  • Batch sorgu ve mini-batching ile throughput optimize edin.
  • Managed servislerin maliyet-modelini ve SLA'sını inceleyin; toplam TCO'yu hesaplayın.

8. Güvenlik, Gizlilik ve Uyum

  • Veri şifreleme (at-rest ve in-transit) zorunlu olmalı.
  • Access control ve RBAC ile tüm erişimler yönetilmeli.
  • PII içeren embedding'lerin risklerini değerlendirin; gerekirse differential privacy veya tokenization uygulayın.
  • Audit logging ile sorgu ve veri erişimini takip edin.

9. Örnek Kod Parçacığı (Python + FAISS)

from sentence_transformers import SentenceTransformer
import faiss
import numpy as np

model = SentenceTransformer('all-MiniLM-L6-v2')
docs = ['Merhaba dünya', 'Yapay zeka nedir?', 'Vebende Akademi eğitimleri']
embs = model.encode(docs)

d = embs.shape[1]
index = faiss.IndexHNSWFlat(d, 32)
index.hnsw.efConstruction = 200
index.add(np.array(embs, dtype='float32'))

query = model.encode(['Yapay zeka eğitimleri'])[0].astype('float32')
D, I = index.search(np.expand_dims(query,0), k=3)
print(I, D)

10. Dağıtım ve Operasyonel Tavsiyeler

  • Monitoring: sorgu gecikmesi, throughput, index boyutu, mem kullanımı metriklerini toplayın.
  • Alerting: latency veya error oranı arttığında otomatik uyarı kurun.
  • Capacity planning: indeks büyümesine göre disk/ram planlaması yapın.
  • Backup & snapshot: indekslerin düzenli yedeğini alın.
  • Chaos testleri: node failover ve reindex senaryolarını test edin.

11. MLOps ile Entegrasyon

Vector DB, MLOps pipeline'ının doğal bir parçası olmalıdır. Model değiştiğinde embedding stratejisi ve index güncellenmelidir. Otomatik retraining senaryoları ile reindex süreçlerini CI/CD içine alın.

12. Kaynaklar ve İleri Okuma

  • Pinecone, Milvus, Weaviate dokümantasyonları
  • FAISS ve Annoy kütüphane rehberleri
  • Semantic Search makaleleri ve Retrieval-Augmented Generation (RAG) kaynakları
  • Embedding model rehberleri: SentenceTransformers, OpenAI embeddings