TEKNİK YAZI / Yapay Zekâ Entegrasyonları

Vector Database: Anlamsal Arama ve RAG Altyapısı

Vector database yapısını; embedding, yaklaşık en yakın komşu araması, metadata filtresi, RAG doğrulaması ve operasyon maliyetiyle inceleyin.

Vector database, embedding vektörlerini benzerlik ölçütü ve metadata filtreleriyle aramak için optimize edilmiş veri katmanıdır. Anlamsal arama, öneri ve retrieval-augmented generation (RAG) akışlarında kullanılır; ilişkisel veritabanının yerine geçmekten çok farklı bir sorgu ihtiyacını tamamlar.

Problem: Anlamsal Benzerlik

Klasik veritabanlarında “SELECT * FROM products WHERE name = ‘laptop’” yazarsınız. Exact match arar, “laptop” kelimesini bulur. Ama ya kullanıcı “notebook” yazdıysa? Ya da “portable computer”? Klasik database bunların aynı şey olduğunu anlamaz!

Embedding modeli bu ifadeleri benzer bağlamlarda yakın vektörlere yerleştirirse vector arama aynı kavrama ait sonuçları yakalayabilir. Bu davranış otomatik garanti değildir; model, dil, domain verisi ve benzerlik eşiğiyle ölçülmelidir.

Vector Nedir Bu Bağlamda?

AI dünyasında vector, bir şeyin matematiksel temsili. Bir kelime, cümle, görüntü, ses… Her şey vector’e (embedding’e) dönüştürülebilir.

Örneğin “kedi” kelimesi [0.2, -0.5, 0.8, …] gibi 768 boyutlu bir vector olabilir. “Köpek” de başka bir vector. Ve bu iki vector matematiksel olarak birbirine yakın! Çünkü ikisi de evcil hayvan.

Bu vector’ları kim üretiyor? Embedding model’ler! OpenAI’ın text-embedding-ada, Google’ın Universal Sentence Encoder, Facebook’un FAISS… Bunlar text’i vector’e çeviriyor.

Geleneksel Database vs Vector Database

Geleneksel Database:

Vector Database:

Nasıl Çalışır?

Vector database’in çalışma mantığı şöyle:

  1. Embedding Generation: Raw data’yı (text, image) embedding model’e verirsiniz, vector alırsınız
  2. Indexing: Vector’ları özel index yapılarıyla organize eder
  3. Query: Arama yaparken, query’yi de vector’e çevirirsiniz
  4. Similarity Search: Query vector’üne en yakın K tane vector’ü bulur
  5. Return Results: En benzer sonuçları döner

Mesela “AI hakkında makale” arıyorsunuz. Bu text vector’e çevrilir, database’de buna en yakın vector’lar (yani en alakalı makaleler) bulunur.

Index Yapıları

Milyonlarca vector içinde nasıl hızlı arama yapılıyor? Özel index yapıları sayesinde:

HNSW (Hierarchical Navigable Small World): Graph-based index. Çok hızlı ama memory intensive.

IVF (Inverted File Index): Vector’lero cluster’lara böler. Önce hangi cluster’da olabileceğine bakar.

LSH (Locality Sensitive Hashing): Hash fonksiyonlarıyla benzer vector’lero aynı bucket’a koyar.

Flat Index: Brute force - tüm vector’lerle karşılaştırır. Yavaş ama %100 dogru.

Similarity Metrics

İki vector’ün ne kadar benzer olduğunu nasıl ölçüyoruz?

Cosine Similarity: İki vector arasındaki açıyı ölçer. Text embedding’ler için popüler.

Euclidean Distance: Düz mesafe. Görüntü işlemede yaygın.

Dot Product: Hızlı hesaplama. Normalized vector’lar için cosine similarity ile aynı.

Manhattan Distance: L1 distance. Bazı özel durumlar için kullanılır.

Popüler Vector Database’ler

Pinecone: Cloud-native, fully managed. Kolay kullanım, auto-scaling.

Weaviate: Open source, GraphQL support, multi-modal.

Qdrant: Rust ile yazılmış, yüksek performans, on-premise deployment.

Milvus: Open source, mature, büyük scale için optimize.

ChromaDB: Lightweight, developer-friendly, Python-first.

pgvector: PostgreSQL extension. Mevcut Postgres setup’ınıza ekleyin.

Vector Database + LLM

RAG akışlarında vector arama, modele güncel veya kuruma özgü kaynak parçaları sağlayabilir. Bu, hallucination riskini azaltmaya yardımcı olabilir; yanlış retrieval, eski indeks veya kaynağı dikkate almayan model yanıtı nedeniyle hatayı tamamen ortadan kaldırmaz.

RAG Pattern:

  1. User sorusu vector’e çevrilir
  2. Vector DB’den relevant document’lar bulunur
  3. Bu document’lar LLM’e context olarak verilir
  4. LLM, bu context’le accurate cevap üretir

Örnek: “Şirketimizin 2023 geliri neydi?” sorusu için, vector DB’den 2023 finansal raporu bulunur, LLM’e verilir, doğru cevap üretilir.

Ne Zaman Vector Database Kullanmalı?

Kullanın eğer:

Kullanmayın eğer:

Sonuç

Vector arama, anlamsal yakınlık gereken akışlarda güçlüdür; fakat retrieval kalitesini, yetkilendirmeyi, güncellik politikasını ve kaynak gösterimini tek başına çözmez. Küçük bir değerlendirme veri setiyle embedding ve filtre davranışını ölçün. Mevcut PostgreSQL altyapısında pgvector yeterliyse ayrı bir servis eklemeyin; ölçek ve operasyon gereksinimi kanıtlandığında özel çözümleri karşılaştırın.