Vektör veritabanına gerçekten ne zaman ihtiyacınız var? Embedding'ler üzerine pratik bir rehber
Ship AI Engineer ekibi · Yayımlandı: 2026-08-21
"Belgelerimiz hakkında soru cevaplayan bir sistem kuracağız" kararının hemen ardından gelen soru genellikle "hangi vektör veritabanını kullanalım?" olur. Karşılaştırma tabloları okunur, hesaplar açılır, bir altyapı kurulur. Oysa ellerindeki belge sayısı birkaç bindir ve bütün vektörler bir dizüstü bilgisayarın belleğine rahatça sığar.
Vektör veritabanları gerçek bir ihtiyaca cevap verir. Ama o ihtiyaç çoğu zaman sanıldığı yerde, yani ölçekte değildir. Bu yazı önce embedding'lerin ne olduğunu, sonra bir veritabanına ne zaman gerçekten ihtiyaç duyduğunuzu anlatıyor.
Embedding nedir?
Bir metnin anlamını temsil eden, sabit uzunlukta bir sayı listesidir.
Bir embedding modeli "iade süresi ne kadar?" cümlesini alır ve birkaç yüz ya da birkaç bin sayıdan oluşan bir vektöre çevirir. Anlamca birbirine yakın metinler birbirine yakın vektörler üretir: "ürünü kaç gün içinde geri gönderebilirim?" cümlesi, hiçbir ortak kelimesi olmasa da ilkine yakın düşer. Anlamsal aramanın bütün fikri budur: soruyu ve belgeleri aynı uzaya çevirmek ve soruya en yakın belgeleri bulmak.
Benzerlik puanı neyi söyler, neyi söylemez?
İki metnin birbirine ne kadar benzediğini söyler; belgenin soruyu cevaplayıp cevaplamadığını söylemez.
Yakınlık genellikle kosinüs benzerliğiyle ölçülür ve en yakın sonuç her zaman vardır. Sorduğunuz şeyin cevabı belgelerinizde hiç yoksa bile arama size bir "en yakın" sonuç döndürür. Bu yüzden getirme sisteminin bir yerinde, gelen sonucun kullanılacak kadar iyi olup olmadığına karar veren bir adım olmalıdır.
İkinci tuzak eşik değerleridir. Bir blog yazısında "0,8'in üstü alakalıdır" diye okuduğunuz bir sayı, başka bir embedding modelinde, başka bir dilde ya da başka bir belge türünde hiçbir şey ifade etmez. Puanların dağılımı modelden modele değişir. Doğru eşik, kendi sorularınız ve kendi belgelerinizle ölçülerek bulunur.
Vektör veritabanına ne zaman ihtiyaç vardır?
Ölçek için değil, genellikle kalıcılık, filtreleme ve silme için.
Birkaç on bin parçaya kadar bütün vektörleri bellekte tutup her soruda hepsiyle karşılaştırmak hem basit hem de yeterince hızlıdır. Bir veritabanına geçmeyi gerçekten haklı çıkaran ihtiyaçlar genellikle şunlardır:
- Kalıcılık: Uygulama her yeniden başladığında bütün belgeleri yeniden embed etmek istemiyorsunuz.
- Filtreleme: "Yalnızca bu müşterinin belgelerinde ara" ya da "yalnızca son bir yıl" gibi koşullar gerekiyor. Çok kullanıcılı bir sistemde bu bir güvenlik gereğidir: bir müşterinin sorusu başka bir müşterinin belgesini getirmemelidir.
- Silme ve güncelleme: Bir belge değiştiğinde ya da bir kullanıcı verisinin silinmesini istediğinde, ilgili vektörleri bulup kaldırabilmeniz gerekir.
- Gerçek ölçek: Milyonlarca parça ve düşük gecikme gerektiğinde, yaklaşık en yakın komşu (ANN) indeksleri devreye girer.
Çoğu proje için iyi bir ilk adım, zaten kullandığınız ilişkisel veritabanının vektör desteğidir: verileriniz ve vektörleriniz aynı yerde durur, filtreleme sıradan bir sorgu koşulu olur.
Anahtar kelime araması ne zaman daha iyidir?
Kesin bir değer arandığında: ürün kodu, hata mesajı, kişi ya da yer adı.
Embedding'ler anlamı yakalamakta iyidir ama "ERR-4021" gibi bir kodu ya da az geçen bir özel adı yakalamakta zayıf kalabilir. Bu tür sorularda klasik anahtar kelime araması daha güvenilirdir. Bu yüzden gerçek sistemlerde sık görülen çözüm hibrit aramadır: iki aramayı birlikte çalıştırıp sonuçlarını birleştirmek. Hangisinin sizin sorularınızda daha iyi çalıştığını yine ancak ölçerek bilebilirsiniz.
Embedding modelini değiştirmek neden pahalıdır?
Çünkü farklı modellerin vektörleri birbiriyle karşılaştırılamaz; değiştirdiğinizde her şeyi yeniden embed etmeniz gerekir.
Bir modelin ürettiği vektör uzayı ona özgüdür. Yeni bir modelle soruyu embed edip eski modelle üretilmiş belge vektörleriyle karşılaştırmak anlamsız sonuçlar verir. Bu yüzden embedding modeli seçimi, ilk bakışta göründüğünden daha kalıcı bir karardır. Her vektörün yanında hangi modelle üretildiğini kaydetmek ve yeniden embed etmenin süresini ve maliyetini baştan hesaplamak, ileride yaşanacak sürprizlerin en yaygınını önler.
Belgeler nasıl parçalara bölünmeli?
Anlam birimlerine göre; sabit karakter sayısına göre değil.
Bir belgeyi her beş yüz karakterde bir kesmek en kolay yöntemdir ve en sık hataya yol açanıdır: bir tabloyu ortadan, bir paragrafı cümlenin ortasından böler. Daha iyi sonuç veren yaklaşım, başlıklara ve paragraflara göre bölmek, parçalar arasında küçük bir örtüşme bırakmak ve her parçanın başına ait olduğu bölümün başlığını eklemektir. Bu basit ekleme, arama kalitesine çoğu zaman embedding modelini değiştirmekten daha fazla katkı yapar. Kendi verinizde denemenin maliyeti birkaç satır koddur.
Embedding ve arama kavramlarının tamamını, birbirleriyle bağlantılarıyla birlikte ücretsiz bilgi haritasında görebilirsiniz.
Kaynaklar
- Cohere: What are embeddings?: embedding kavramına sağlayıcı gözünden kısa bir giriş. (eklenme: 2026-08)
- Sentence Transformers: semantic search: bir veritabanı olmadan anlamsal aramanın nasıl yapıldığı. (eklenme: 2026-08)
- FAISS wiki: guidelines for choosing an index: hangi ölçekte hangi indeks türünün gerektiği. (eklenme: 2026-08)
- MTEB: Massive Text Embedding Benchmark: embedding modellerinin karşılaştırması; kendi verinizde ölçmenin yerini tutmaz. (eklenme: 2026-08)
Okumaya devam et
2026-10-06
AI engineer olarak takip etmeye değer kaynaklar: neyi, ne zaman okumalı?
Bu alanda her gün yeni bir yazı, yeni bir model, yeni bir araç çıkıyor ve hepsini takip etmeye çalışmak, hiçbirini öğrenmemenin en hızlı yolu. Gerçekten işe yarayan bir avuç kaynak ve her birini öğrenmenin hangi aşamasında okumanın anlamlı olduğu.
2026-10-05
Yapay zeka çağında mühendis olmak: kod ucuzladı, yapı ucuzlamadı
Kod yazmak hiç bu kadar hızlı olmamıştı. Ama hızlı üretilen kod, altındaki yapı neyse onu büyütür. Neden mühendislik bugün daha az değil daha çok gerekiyor ve neyde derinleşmek gerekiyor.
2026-10-02
Bir AI uygulamasını yayına almak: maliyet tavanı, önbellek, izleme ve model değişikliği
Sıradan bir web uygulamasında her istek aşağı yukarı aynı maliyettedir. Dil modeli içeren bir uygulamada değildir. Yayına alırken maliyeti sınırlamak, önbelleği güvenle kullanmak, doğru şeyleri izlemek ve sağlayıcı bir modeli emekliye ayırdığında hazırlıklı olmak.
2026-09-30
AI engineer portföyü: işe alımda işe yarayan bir proje neye benzer?
Bir sohbet botu demosu artık kimseyi etkilemiyor. Bir AI projesini inandırıcı yapan altı işaret, her biri farklı bir beceriyi gösteren beş proje fikri ve projeyi iki dakikada okutan bir README.
2026-09-27
Prompt injection ve kötüye kullanım: bir AI uygulamasında sunucu neden tek doğruluk kaynağıdır?
Bir dil modeli içeren uygulama, sıradan bir web uygulamasının bütün güvenlik sorunlarını taşır ve yenilerini ekler. Prompt injection'ın neden tamamen önlenemediği, zararın nasıl sınırlandığı, uç noktanın korunması ve modelin çıktısına neden güvenilmediği.
2026-09-23
Bir LLM uygulaması için ilk test kümenizi kurmak: değerlendirme (eval) rehberi
Prompt'u değiştirdiniz ve cevaplar daha iyi görünüyor. Gerçekten mi? İlk test kümesini kurmak, taban çizgisi almak, ortalamanın gizlediğini görmek, bir modelin başka bir modeli puanlamasının sınırları ve yayındaki sistemi izlemek.
2026-09-19
Fine-tuning ne zaman yapılır, ne zaman zaman kaybıdır?
Bir modeli kendi verinizle eğitmek çekici bir fikir. Çoğu zaman yanlış araç. Fine-tuning'in neyi öğrettiği ve neyi öğretmediği, prompt ve RAG ile karşılaştırması, veri kalitesi, sızıntı, LoRA ve açık modellerde lisans.
2026-09-14
AI engineer kursu seçerken sorulacak 7 soru
Bir yapay zeka mühendisliği eğitimine para ve aylar vermeden önce sorulması gereken yedi soru. Her birinin kısa cevabı ve satın almadan önce müfredatta kontrol edebileceğiniz somut işaret.
2026-09-09
Görsel ve ses girdili yapay zeka: testte görünmeyen maliyetler ve hatalar
Bir fotoğrafı ya da ses kaydını modele vermek, metin göndermekle aynı şey değil. İstek boyutu, okunamayan görseller, sessizlikte uydurulan cümleler, saniyeler süren üretim ve her turda yeniden ödenen bir görsel.
2026-09-04
Agent'a ne zaman ihtiyacınız yoktur? Araç kullanan bir sistemi güvenle kurmak ve durdurmak
"Agent" bugün en çok istenen ve en kolay yanlış kurulan şey. Sabit bir iş akışıyla agent arasındaki fark, araç tanımlarının neden kritik olduğu, döngüyü durdurmanın yolları ve geri alınamayan işlemleri korumak.
2026-08-31
RAG neden yanlış cevap verir? Hataların çoğu modelde değil, getirmede
Belgelerinizle cevap veren bir sistem yanlış söylediğinde ilk şüphelenilen model olur. Çoğu zaman suçlu, modele verilen parçadır. Hatanın yerini bulmak, uydurmayı sınırlamak, kaynak göstermek ve doğru ölçmek.
2026-08-26
Yapay zeka mühendisi nasıl olunur? Model eğitmeden, ürün kurarak bir yol haritası
Arama sonuçlarındaki yol haritalarının çoğu başka bir mesleği tarif ediyor. Bugün işe alınan AI engineer'ın gerçekten ne bildiği, hangi sırayla öğrenildiği ve her aşamanın neyle "bitti" sayıldığı.
2026-08-17
Prompt'u kod gibi yönetmek: sürüm, şablon, şema ve test
Sohbet penceresinde işe yarayan prompt, bir uygulamanın içinde sessizce bozulur. Prompt'u depoda tutmak, kullanıcı girdisini talimattan ayırmak, cevabı şemayla doğrulamak ve bir değişikliği ölçerek yayına almak.
2026-08-12
LLM API'leri ilk gerçek trafikte neden bozulur? Hız sınırı, yeniden deneme ve zaman aşımı
Geliştirirken hiç görmediğiniz üç hata, ilk yoğun saatte aynı anda gelir. 429 ile 5xx'i ayırmak, doğru yeniden deneme, zaman aşımı ve sağlayıcı çöktüğünde ürünün ayakta kalması.
2026-08-07
AI engineer olmak için matematik gerekli mi?
İnsanları daha başlamadan durduran altı sorunun dürüst cevabı: matematik, diploma, makine öğrenmesi, Python, donanım ve para. Önce kısa cevap, sonra gerekçe.
2026-08-07
AI engineer, makine öğrenmesi mühendisi değildir
"Yapay zeka mühendisi nasıl olunur" diye arayın; ilk sayfa size lineer cebir, CNN ve eğitim döngüsü öğretir. O başka bir meslek. İşin gerçekte ne olduğu ve neyi atlayabileceğiniz.