Skip to content

Vector Database: AI Çağının Veri Depolama Devrimi

Published: at 10:00 AMSuggest an edit

Selam arkadaşlar! Bugün AI dünyasının en yeni topic’lerinden birini konuşacağız: Vector Database. ChatGPT, GitHub Copilot, Google’ın semantic search’ü… Hepsinin arkasında vector database’ler var. Geleneksel veritabanları neden yetersiz kalıyor? Vector database’ler bu sorunu nasıl çözüyor? Gelin birlikte bakalım!

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!

İşte vector database’ler bu problemi çözüyor. “Laptop”, “notebook”, “portable computer” - bunların hepsi vector space’te birbirine yakın noktalar.

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

LLM’lerin (ChatGPT gibi) en büyük problemi: Hallucination ve outdated knowledge. Vector database’ler bu problemi çözüyor!

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 database’ler, AI çağının kaçınılmaz bir parçası. Semantic search, RAG, recommendation systems… Hepsi vector database’lere dayanıyor.

Geleneksel database’ler ölmedi tabii ki - structured data için hala en iyiler. Ama unstructured data (text, image, audio) söz konusu olduğunda, vector database’ler rakipsiz.

Benim tavsiyem: Hemen production’a geçmeyin ama mutlaka deneyin. pgvector ile PostgreSQL’inizde başlayın, concept’i anlayın. Sonra use case’inize göre dedicated solution’lara bakın.



Previous Post
fsck: Linux Dosya Sisteminin Doktoru
Next Post
PHP'de Base64 Image Upload: Modern Web'in Görüntü Yükleme Yöntemi