- Difficulty level
- Intermediate
- What readers will learn
- Bu rehberi tamamladığınızda;
Vector Database kavramını
Klasik veritabanlarından hangi yönleriyle ayrıldığını
Embedding ile ilişkisini
Similarity Search mantığını
Cosine Similarity'nin nasıl çalıştığını
Neden özel indeksleme algoritmalarına ihtiyaç duyulduğunu
Vector Database teknolojisinin RAG sistemlerindeki rolünü
öğrenmiş olacaksınız.
30 Saniyelik Özet
Büyük dil modelleri (LLM) yalnızca eğitim sırasında öğrendikleri bilgilerle cevap üretir. Ancak gerçek dünyadaki uygulamalar; şirket dokümanları, teknik belgeler, müşteri kayıtları veya sürekli güncellenen veri kaynakları üzerinde çalışmak zorundadır.
Bu noktada Vector Database (Vektör Veritabanı) devreye girer.
Vector Database; metinleri, belgeleri veya diğer içerikleri temsil eden embedding'leri depolayan ve milyonlarca vektör arasından anlam bakımından en benzer sonuçları milisaniyeler içinde bulabilen özel bir veritabanı türüdür. Günümüzde RAG sistemlerinden semantik aramaya, öneri motorlarından yapay zekâ ajanlarına kadar birçok modern uygulamanın temel bileşenlerinden biridir.
Bilmeniz Gereken
Vector Database, kelimeleri değil anlamı arar.
Kullanıcının yazdığı cümle ile veri kaynağındaki içerik aynı kelimeleri kullanmasa bile benzer anlam taşıyorsa doğru sonuçlar bulunabilir.
Vector Database Neden Ortaya Çıktı?
Yıllardır kullandığımız ilişkisel veritabanları (MySQL, PostgreSQL, SQL Server vb.) belirli kurallara göre yapılandırılmış verileri saklamak ve sorgulamak için geliştirilmiştir. Bu sistemler; kullanıcı bilgileri, sipariş kayıtları, ürün listeleri veya finansal veriler gibi kesin eşleşme gerektiren işlemlerde oldukça başarılıdır.Ancak yapay zekâ uygulamaları farklı bir problemle karşı karşıyadır.
Bir kullanıcı arama kutusuna şu ifadeyi yazabilir:
Veri tabanındaki makalenin başlığı ise şu olabilir:Docker log dosyaları neden sürekli büyüyor?
Docker Log Rotation Nasıl Yapılır?
Bu iki ifade aynı kelimeleri içermese de aynı problemi anlatmaktadır.
Klasik bir SQL sorgusu yalnızca kelime veya sütun eşleşmelerine odaklanır. Anlamı değerlendiremez. Yapay zekâ uygulamalarında ise önemli olan kelimelerin birebir aynı olması değil, aynı kavramı ifade edip etmemesidir.
İşte Vector Database teknolojisi tam olarak bu ihtiyacı karşılamak için geliştirilmiştir.
Vector Database Nedir?
Vector Database, embedding modelleri tarafından üretilen sayısal vektörleri depolayan ve bu vektörler üzerinde yüksek performanslı benzerlik aramaları gerçekleştiren özel bir veritabanıdır.Basit bir ifadeyle;
- Embedding modeli metni sayılara dönüştürür.
- Vector Database bu sayıları saklar.
- Arama sırasında en benzer vektörleri bulur.
- Bulunan sonuçlar yapay zekâ modeline gönderilir.
Klasik Veritabanı ile Vector Database Arasındaki Fark
Bir SQL veritabanında sorgular belirli alanlar üzerinden çalışır.Örneğin;
Kod:
SELECT *
FROM articles
WHERE title = 'Docker'
Bu sorgu yalnızca başlığı tam olarak "Docker" olan kayıtları döndürür.
Ancak kullanıcı şu ifadeyi yazarsa:
Veritabanındaki makalenin başlığı:Container günlük dosyaları çok büyüyor.
Docker Log Rotation Nasıl Yapılır?
ise klasik SQL sistemi bu iki içerik arasında ilişki kuramaz.
Çünkü kelimeler farklıdır.
Vector Database ise her iki metni embedding modelinden geçirerek anlamlarını karşılaştırır. Böylece kullanılan kelimeler değişse bile aynı konuyu anlatan içerikleri bulabilir.
Bu yaklaşım, Semantic Search (Anlamsal Arama) olarak adlandırılır ve modern yapay zekâ uygulamalarının temelini oluşturur.
| Klasik Veritabanı | Vector Database |
|---|---|
| Anahtar kelime ile arama yapar | Anlama göre arama yapar |
| Exact Match kullanır | Similarity Search kullanır |
| Yapısal veriler için idealdir | Embedding verileri için idealdir |
| B-Tree, Hash gibi indeksler kullanır | Vektör indeksleri kullanır |
| SQL sorguları ile çalışır | Benzerlik hesaplamaları ile çalışır |
Embedding Tek Başına Neden Yeterli Değildir?
Bir önceki makalemizde, embedding modellerinin metinleri çok boyutlu sayısal vektörlere dönüştürdüğünü öğrenmiştik.Örneğin bir belge şu şekilde temsil edilebilir:
[0.24, -0.81, 0.17, 0.92, ...]Bu yapı, bilgisayarın metnin anlamını matematiksel olarak temsil etmesini sağlar.
Ancak burada yeni bir problem ortaya çıkar.
Bir şirketin bilgi tabanında;
- 500 bin teknik doküman,
- 2 milyon müşteri kaydı,
- yüz binlerce destek talebi,
- binlerce ürün açıklaması
Kullanıcı yeni bir soru sorduğunda sistemin bu milyonlarca embedding arasından en ilgili birkaç tanesini bulması gerekir.
Bütün vektörleri tek tek karşılaştırmak teorik olarak mümkündür. Ancak veri miktarı büyüdükçe bu yöntem hem yavaşlar hem de yüksek işlem maliyetine neden olur.
İşte Vector Database sistemleri bu problemi çözmek için geliştirilmiştir.
Bilmeniz Gereken
Embedding üretmek yalnızca ilk adımdır.
Gerçek zorluk, milyonlarca vektör arasından en ilgili sonuçları mümkün olan en kısa sürede bulabilmektir.
Similarity Search Nedir?
Vector Database'in temel görevi Similarity Search yapmaktır.Similarity Search, iki metnin aynı kelimeleri kullanıp kullanmadığını değil, aynı anlamı taşıyıp taşımadığını ölçmeye çalışır.
Örneğin kullanıcı şu sorguyu yazsın:
Veritabanında ise şu makaleler bulunsun:Docker günlük dosyaları neden büyüyor?
- Docker Log Rotation Nasıl Yapılır
- Linux Disk Kullanımı
- CSS Flexbox Rehberi
- XenForo Cache Optimizasyonu
Vector Database ise embedding'leri karşılaştırarak ilk makalenin diğerlerine göre çok daha yüksek anlamsal benzerlik taşıdığını belirler ve onu en üst sırada döndürür.
Bu yaklaşım sayesinde kullanıcı, tam olarak doğru kelimeleri yazmasa bile doğru bilgiye ulaşabilir.
Similarity Search Nasıl Çalışır?
Temel süreç oldukça basittir.
Rich (BB code):
Kullanıcı Sorusu
│
▼
Embedding Modeli
│
▼
Sorgu Vektörü
│
▼
Vector Database
│
▼
En Benzer Belgeler
│
▼
LLM
│
▼
Bu akış, günümüzde kullanılan RAG (Retrieval-Augmented Generation) mimarisinin temelini oluşturur.
Cosine Similarity Nedir?
Similarity Search sırasında en yaygın kullanılan yöntemlerden biri Cosine Similarity'dir.Bu yöntem, iki vektör arasındaki açıyı hesaplayarak benzerlik oranını belirler.
Sonuç değeri 1'e yaklaştıkça iki içerik birbirine daha çok benzer.
Örneğin;
| İçerik | Benzerlik |
|---|---|
| Docker Log Rotation | 0.98 |
| Container Log Yönetimi | 0.95 |
| Linux Disk Temizleme | 0.73 |
| CSS Grid Rehberi | 0.09 |
Bu örnekte ilk iki içerik farklı kelimeler kullansa da aynı problemi anlattıkları için yüksek benzerlik puanı almıştır.
Bilmeniz Gereken
Cosine Similarity tek benzerlik yöntemi değildir. Bazı sistemler Euclidean Distance veya Dot Product gibi farklı matematiksel yöntemler de kullanabilir. Hangi yöntemin tercih edileceği kullanılan embedding modeli ve uygulamanın ihtiyaçlarına göre değişebilir.
Bölüm Sonu
Bu bölümde, Vector Database kavramının neden ortaya çıktığını, klasik veritabanlarından hangi yönleriyle ayrıldığını ve embedding verileriyle nasıl çalıştığını inceledik.Bir sonraki bölümde ise işin performans tarafına geçeceğiz. Milyonlarca vektör arasında milisaniyeler içinde arama yapılmasını sağlayan Approximate Nearest Neighbor (ANN) algoritmalarını, HNSW indekslerini ve modern Vector Database sistemlerinin yüksek hızını mümkün kılan teknikleri ayrıntılı olarak ele alacağız.