Veni AI
Veritabanı Teknolojileri

Vector Veritabanları ve Embedding Arama Sistemleri

Vector veritabanlarının teknik mimarisi, embedding arama algoritmaları, HNSW, IVF indexleme ve kurumsal semantic search uygulamaları için kapsamlı rehber.

Veni AI Teknik Ekibi12 Ocak 20255 dk okuma
Vector Veritabanları ve Embedding Arama Sistemleri

Vector Veritabanları ve Embedding Arama Sistemleri

Vector veritabanları, yüksek boyutlu vektörlerin depolanması ve benzerlik araması için optimize edilmiş özel veritabanlarıdır. Modern AI uygulamalarının, özellikle RAG sistemlerinin, temel bileşenidir.

Vector Veritabanı Nedir?

Geleneksel veritabanları exact match sorgularına optimize edilmişken, vector veritabanları approximate nearest neighbor (ANN) aramasına odaklanır.

Temel Kavramlar

Embedding: Veri (metin, görüntü, ses) temsilinin sayısal vektör formu

"Yapay zeka" → [0.12, -0.45, 0.89, ..., 0.34] (1536 boyut)

Similarity Search: Sorgu vektörüne en yakın vektörleri bulma

query_vector → Top-K en benzer vektörler

Distance Metrics:

  • Cosine Similarity: Yön benzerliği
  • Euclidean Distance (L2): Geometrik uzaklık
  • Dot Product: İç çarpım

Benzerlik Metrikleri Detaylı Analiz

Cosine Similarity

cos(A, B) = (A · B) / (||A|| × ||B||)

Değer aralığı: [-1, 1]

  • 1: Aynı yön
  • 0: Dik/ilgisiz
  • -1: Zıt yön

Kullanım: Metin similarity, semantic search

Euclidean Distance (L2)

d(A, B) = √(Σ(Aᵢ - Bᵢ)²)

Değer aralığı: [0, ∞) Kullanım: Görüntü similarity, clustering

Dot Product

A · B = Σ(Aᵢ × Bᵢ)

Kullanım: Normalized embedding'ler için cosine'a eşdeğer

Indexing Algoritmaları

1. Brute Force (Flat Index)

Her sorgu için tüm vektörlerle karşılaştırma.

Karmaşıklık: O(n × d)

  • n: Vektör sayısı
  • d: Boyut

Avantaj: %100 doğruluk Dezavantaj: Büyük veri setlerinde çok yavaş

2. IVF (Inverted File Index)

Vektörleri cluster'lara bölerek arama alanını daraltma.

Algoritma:

  1. K-means ile centroid'ler oluştur
  2. Her vektörü en yakın centroid'e ata
  3. Sorguda sadece en yakın nprobe cluster'ı ara
1Parametreler: 2- nlist: Cluster sayısı (tipik: √n) 3- nprobe: Aranacak cluster sayısı 4 5Trade-off: nprobe ↑ → accuracy ↑, speed ↓

3. HNSW (Hierarchical Navigable Small World)

Graph-based yaklaşım, en popüler yöntem.

Yapı:

1Layer 2: o-------o-------o (sparse) 2 | | | 3Layer 1: o-o-o---o-o-o---o-o-o (medium) 4 | | | | | | | | | 5Layer 0: o-o-o-o-o-o-o-o-o-o-o-o (dense)

Parametreler:

  • M: Her node'un maksimum bağlantı sayısı
  • ef_construction: Build sırasındaki aday sayısı
  • ef_search: Query sırasındaki aday sayısı

Avantajlar:

  • Çok hızlı arama: O(log n)
  • Yüksek recall
  • Dinamik insert/delete

4. Product Quantization (PQ)

Vektörleri sıkıştırarak bellek kullanımını azaltma.

Yöntem:

  1. Vektörü M alt-vektöre böl
  2. Her alt-vektörü K centroid'den birine ata
  3. Orijinal vektör yerine centroid ID'lerini depola
1Orijinal: 1536 dim × 4 byte = 6KB 2PQ (M=96, K=256): 96 × 1 byte = 96 byte 3Sıkıştırma: ~64x

5. Scalar Quantization (SQ)

Float32 → Int8 dönüşümü.

1Orijinal: 1536 × 4 byte = 6KB 2SQ8: 1536 × 1 byte = 1.5KB 3Sıkıştırma: 4x

Popüler Vector Veritabanları Karşılaştırması

Pinecone

Özellikler:

  • Fully managed cloud service
  • Automatic scaling
  • Metadata filtering
  • Namespace isolation

Kullanım:

1import pinecone 2 3pinecone.init(api_key="xxx", environment="us-west1-gcp") 4index = pinecone.Index("my-index") 5 6# Upsert 7index.upsert(vectors=[ 8 {"id": "vec1", "values": [0.1, 0.2, ...], "metadata": {"category": "tech"}} 9]) 10 11# Query 12results = index.query(vector=[0.1, 0.2, ...], top_k=10, filter={"category": "tech"})

Weaviate

Özellikler:

  • Open source
  • Built-in vectorization
  • GraphQL API
  • Hybrid search (vector + keyword)

Qdrant

Özellikler:

  • Rust ile yazılmış, yüksek performans
  • Rich filtering
  • Payload indexing
  • Distributed deployment

Milvus

Özellikler:

  • GPU acceleration
  • Multi-vector search
  • Time travel (versioning)
  • Kubernetes native

ChromaDB

Özellikler:

  • Developer-friendly
  • In-memory + persistent
  • Python-first
  • Prototyping için ideal

Karşılaştırma Tablosu

ÖzellikPineconeWeaviateQdrantMilvus
HostingCloudBothBothBoth
ScalabilityAutoManualManualAuto
Hybrid Search
GPU Support--
PricingPer vectorFree/PaidFree/PaidFree/Paid

Filtering ve Metadata

Pre-filtering vs Post-filtering

Pre-filtering:

1. Metadata filter uygula 2. Filtrelenmiş set içinde vector search

Avantaj: Daha hızlı Dezavantaj: Potansiyel recall kaybı

Post-filtering:

11. Vector search ile top-K × multiplier sonuç bul 22. Metadata filter uygula 33. İlk K sonucu döndür

Avantaj: Daha iyi recall Dezavantaj: Daha yavaş

Hybrid Search

Keyword (BM25) + Vector search kombinasyonu:

final_score = α × vector_score + (1-α) × keyword_score

Performance Optimization

Index Parametreleri

HNSW Optimal Ayarları:

1Yüksek Recall: M=32, ef=200 2Yüksek Speed: M=16, ef=50 3Balanced: M=24, ef=100

Batch İşlemler

1# Kötü: Tek tek insert 2for vec in vectors: 3 index.upsert([vec]) 4 5# İyi: Batch insert 6index.upsert(vectors, batch_size=100)

Connection Pooling

1from pinecone import Pinecone 2 3pc = Pinecone( 4 api_key="xxx", 5 pool_threads=30 # Paralel connection 6)

Kurumsal Mimari Örneği

1┌─────────────────────────────────────────────────────┐ 2│ Application │ 3└──────────────────────┬──────────────────────────────┘ 45┌──────────────────────▼──────────────────────────────┐ 6│ Vector Search Service │ 7│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 8│ │ Query │ │ Reranker │ │ Cache │ │ 9│ │ Engine │ │ Service │ │ (Redis) │ │ 10│ └─────────────┘ └─────────────┘ └─────────────┘ │ 11└──────────────────────┬──────────────────────────────┘ 1213┌──────────────────────▼──────────────────────────────┐ 14│ Vector Database Cluster │ 15│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 16│ │ Shard 1 │ │ Shard 2 │ │ Shard 3 │ │ 17│ └─────────┘ └─────────┘ └─────────┘ │ 18└─────────────────────────────────────────────────────┘

Monitoring ve Observability

Key Metrics

  • Query Latency (p50, p95, p99)
  • Recall Rate
  • QPS (Queries Per Second)
  • Index Size
  • Memory Usage

Alerting Thresholds

1alerts: 2 - name: high_latency 3 condition: p99_latency > 200ms 4 severity: warning 5 6 - name: low_recall 7 condition: recall < 0.9 8 severity: critical

Sonuç

Vector veritabanları, modern AI uygulamalarının vazgeçilmez bileşenidir. Doğru veritabanı seçimi, indexing stratejisi ve optimizasyonlar ile yüksek performanslı semantic search sistemleri oluşturabilirsiniz.

Veni AI olarak, kurumsal vector search çözümleri sunuyoruz. İhtiyaçlarınız için bizimle iletişime geçin.

İlgili Makaleler