Gömme Modeli Seçimi ve Vektör Veritabanları
Gömme modeliyle vektör deposu kardeş görünür ama değildir: biri geri alınamaz bir kilitlenme, öbürü bir taşıma işi. Aradaki farkı ölçen basit bir hesap var.
- Seviye
- Orta
- Ön koşul
- RAG Nedir ve Hangi Problemi Çözer? · Belge Parçalama (Chunking) Stratejileri (isteğe bağlı)
- Okuma süresi
- ~11 dakika
Bu iki karar her mimari şemada yan yana durur. Aynı kutunun içinde, aynı ok üzerinde, aynı büyüklükte. İnsan da onları aynı ağırlıkta iki seçim sanır ve zamanının çoğunu depoyu karşılaştırmaya harcar.
Oysa biri yanlış çıkarsa bir öğleden sonrada geri alınır. Öbürü yanlış çıkarsa, o güne kadar hesapladığınız her sayı çöpe gider.
Bu yazı ikisini ayırmak için. Hangi soruların gerçekten pahalı olduğunu, ve pahalı olup olmadığını nasıl hesaplayacağınızı anlatıyor.
İki karardan biri geri alınabilir, öbürü alınamaz
Vektör deposunu değiştirmek bir taşıma işidir. Elinizdeki sayılar durur; onları yeni depoya yükler, dizini yeniden kurar, bağlantı ayarını değiştirirsiniz. Sıkıcıdır, bir gün sürer, ve hiçbir bilgi kaybolmaz.
Gömme modelini değiştirmek bir taşıma işi değildir. Yeni model, eski modelin ürettiği sayılarla aynı dili konuşmaz. Eski sayıların hiçbiri kullanılamaz; külliyatın tamamı baştan işlenir. Daha kötüsü, geçiş sırasında iki modelin çıktısını karıştıramazsınız: karışık bir dizinde arama yapmak, sonuçları rastgele sıralamakla aynı şeydir.
Bu asimetri kararların ağırlığını belirler. Depo seçimi işletme kararıdır; yanılırsanız bedelini bir kez ödersiniz. Gömme modeli seçimi kilitlenme kararıdır; yanılırsanız bedelini külliyatınızın büyüklüğü kadar ödersiniz ve her büyüdüğünde biraz daha artar.
Buna rağmen ilgi ters dağılıyor. Depo karşılaştırmaları kolay yazılır, çünkü ölçülebilir özellikleri vardır. Gömme modeli çoğu zaman bir sıralama listesinin en üstünden seçilir ve tek soru sorulur: hangisi daha iyi. Bu, en pahalı kararı en ucuz yöntemle vermektir.
Sezgi: oturma planını kim yapıyor
Devasa bir salon düşünün ve her metin parçası için bir koltuk. Salonu düzenleyen kişinin tek kuralı var: benzer konulardan söz eden metinler birbirine yakın otursun. İade koşulları bir köşede, kargo süreleri onun yanında, personel izin kuralları salonun öbür ucunda.
Bu düzenlemeyi yapan gömme modelidir. Koltuk numarası, yani sayı dizisi, o düzenlemenin çıktısıdır.
Vektör deposu ise salonun görevlisidir. Tek işi çok hızlı cevap vermek: “şu koltuğa en yakın oturan beş kişiyi getir.” Görevli kimin nereye oturacağına karar vermez, oturma planına da bakmaz. Yalnızca mesafe ölçer.
Buradan iki sonuç çıkıyor. Görevliyi değiştirmek kolaydır, çünkü plan yerinde kalır. Düzenleyiciyi değiştirmek ise bütün salonu boşaltıp herkesi yeniden oturtmaktır — ve iki düzenleyicinin koltuk numaraları birbirini tutmaz.
Benzetme şurada bozuluyor: gerçek bir salonda oturan kişiye “neden buradasın” diye sorabilirsiniz. Burada soramazsınız. Koltuk numarasının içinde hangi kelimenin, hangi anlamın etkili olduğu okunabilir bir şey değil. Elinizde yalnızca mesafe var, gerekçe yok.
Gömme modeli nedir ve neyle karıştırılıyor
Gömme modeli, bir metin parçasını sabit uzunlukta bir sayı dizisine çeviren modeldir. Ürettiği diziye gömme (embedding) deniyor. Dizinin tek işlevi şudur: anlamca yakın iki metnin dizileri de birbirine yakın çıkar, uzak olanların uzak.
Terim Türkçe’de iki ayrı şeyle karışıyor ve ikisi de bu sitede karşınıza çıkabilir. Günlük dilde gömme, duvara gömülü dolabı anlatır. İngilizce embedded ise gömülü sistemler demektir: bir cihazın içine yerleştirilmiş, tek işi olan küçük bilgisayar. Buradaki gömme ikisiyle akraba değil. Kastedilen tek şey, metnin anlamının sayılardan oluşan bir uzaya yerleştirilmesi.
Gömme modeli, cevabı yazan dil modeliyle de aynı şey değildir. Dil modeli metin üretir; gömme modeli metin üretmez, yalnızca ölçer. İkisi ayrı ayrı seçilir ve aynı üreticiden olmak zorunda değildir.
Dizinin uzunluğuna vektör boyutu deniyor ve bu sayı sonradan değişmez. Boyut, depolama alanını ve her aramanın maliyetini doğrudan belirler.
Gömme modelini seçerken sorulacak dört şey
Sıralama listelerinin ölçtüğü şey, sizin külliyatınız değil. Aşağıdaki dört soru ise tam olarak sonradan düzeltemeyeceğiniz şeyleri ölçüyor. Dördü de kendi verinizle, birkaç saatte sınanır.
Türkçe’de gerçekten çalışıyor mu? Elle yirmi cümle çifti yazın: onu anlamca yakın olmalı, onu uzak. Sonra modelden hepsinin gömmesini isteyin ve mesafelere bakın. Yakın olması gerekenler yakın çıkıyorsa model işinizi görür. Bu sınamayı yapmadan bir modelin Türkçe’de nasıl davrandığı bilinemez.
Girdi sınırı parçalarınızı kesiyor mu? Her gömme modelinin kabul ettiği bir üst uzunluk var ve bu uzunluk kelimeyle değil token ile sayılıyor. Türkçe metin, aynı uzunluktaki İngilizce metne göre daha çok token’a bölünür; ekler ayrı parçalara ayrıldığı için tek bir kelime birkaç token harcayabilir. Sonuç şu: İngilizce külliyat için güvenli bilinen bir parça boyu, aynı sayıda karakterle Türkçe’de sınırı aşabilir. Aşınca da çoğu araç hata vermez, metni sessizce kırpar — ve parçanızın sonu gömmeye hiç girmez. En uzun parçanızı verip çıktının kırpılıp kırpılmadığını sınayın. → Belge Parçalama (Chunking) Stratejileri
Vektör boyutu neye mal oluyor? Boyut büyüdükçe depolama ve arama maliyeti büyür, ve boyutu sonradan küçültemezsiniz. Küçük külliyatlarda fark önemsiz; milyonlarca parçada baskın kalem hâline gelir.
Modele nasıl erişiyorsunuz? İki seçenek var: üreticinin sunucusuna istek göndermek, ya da modeli kendi ortamınızda çalıştırmak. Fark hız ya da fiyat değil, süreklilik. Erişiminizi kaybederseniz yeni parçaları eski dizinle aynı düzende gömemezsiniz; o andan itibaren dizin donar. Kendi ortamınızda çalışan bir model bu riski taşımaz, karşılığında işletme yükü getirir.
Vektör deposu bir ürün değil, bir kurulum sınıfı
Okurun ilk sorusu genellikle “hangi vektör veritabanı” oluyor. Bu soru bir adım erken. Önce sorulacak olan şu: zaten işlettiğiniz bir veritabanı var mı?
Piyasadaki seçenekler tek bir listeye dizilebilecek türden değil, çünkü üç ayrı kurulum sınıfına ait ve sınıflar arasındaki fark ürünler arasındaki farktan büyük.
Eklenti. Var olan bir veritabanının içine kurulur ve vektör aramayı o veritabanının bir özelliği hâline getirir. Ayrı bir ürün, ayrı bir sunucu, ayrı bir yedekleme yordamı yoktur. PostgreSQL işletenler için pgvector bu sınıfın örneğidir; kurulduğunda vektörler öbür tablolarınızla aynı yerde, aynı yedekte, aynı yetkilendirmenin altında durur.
Kendi sunucunuzda çalışan motor. Vektör araması için tasarlanmış bağımsız bir sunucu yazılımıdır; kaynak kodu açıktır, kendiniz kurar ve işletirsiniz. Üreticileri genellikle aynı yazılımın yönetilen bir sürümünü de satar, yani bu sınıfta kalıp işletme yükünü devretme imkânı vardır.
Yalnızca yönetilen hizmet. Kendi sunucunuza kurulmaz; üreticinin işlettiği altyapıda kullanılır. pinecone bu sınıfın örneğidir. İşletme yükü sıfıra yakındır, karşılığında veriniz sizin işletmediğiniz bir yerde durur ve taşınma yolu üreticinin verdiği araçlarla sınırlıdır.
Sınıf seçildikten sonra ürün seçimi çok daha küçük bir karardır. Sınıfın kendisi ise üç şeyi belirler: işletme yükünü kimin taşıdığını, verinin nerede durduğunu, ve gerektiğinde nereye taşınabileceğini. Zaten bir PostgreSQL işletiyorsanız birinci sınıf çoğu zaman en az yeni parça ekleyendir; işletecek kimseniz yoksa üçüncü sınıf en az yeni sorumluluk getirendir.
Yeniden gömme maliyeti testi
Kararın ne kadar ağır olduğunu tartışmak yerine hesaplayın. Tek çarpım yeterli:
parça sayısı × bir parçayı gömmenin bedeli = bir tam yeniden gömmenin bedeli
Bedel para ya da süre cinsinden olabilir; ikisi de aynı soruyu cevaplar. Çıkan sayı kararın sınıfını söylüyor.
Sonuç bir öğleden sonraysa karar geri alınabilir. Uzun uzun karşılaştırma okumayın; iki aday modelle yirmi cümlelik sınamayı yapın, birini seçin, yanılırsanız değiştirirsiniz.
Sonuç bir bütçe kalemiyse karar kilitlenmedir. Dört soruyu tek tek yanıtlamak, kendi verinizle sınamak ve seçimi yazılı gerekçeyle kaydetmek bu sayının yanında ucuz kalır.
Aynı hesabı depo için yaptığınızda ortaya çıkan asimetri sayıya dönüşür: depo değişiminde gömme adımı hiç tekrarlanmaz, çünkü sayılar elinizde. Depo değişiminin bedeli her zaman bir yükleme işidir; gömme modeli değişiminin bedeli ise yukarıdaki çarpımın kendisidir.
Bu test aynı zamanda ne zaman yeniden bakılacağını da söylüyor. Külliyatınız on kat büyüdüğünde çarpım da on kat büyür — yani bugün geri alınabilir olan karar, yarın kilitlenmeye dönüşebilir. Sayıyı külliyat büyüdükçe yeniden hesaplayın.
Sınırlar ve yanlış anlamalar
İyi bir gömme modeli, doğru getirim garantisi değildir. Model doğru çalışsa bile soru ile cevap farklı biçimde yazılmış olabilir ve arama yanlış parçayı getirebilir. Bu başarısızlığın kendi kalıpları var. → Benzerlik Araması: Neden Bazen Alakasız Sonuç Gelir?
Depo seçimi cevabın doğruluğunu değiştirmez. Aynı sayılarla aynı sorguyu çalıştıran iki depo aynı komşuları bulur. Değişen şey hız, işletme yükü ve verinin nerede durduğudur. “Depoyu değiştirince cevaplar düzelir” beklentisi yanlış katmana bakıyor.
Sıralama listeleri sizin işinizi ölçmüyor. Bir modelin ortalama başarısı, sizin belge türünüzde ve sizin dilinizde nasıl davrandığını söylemez. Yirmi cümlelik kendi sınamanız, herhangi bir listeden daha bilgilendiricidir.
Tam eşleşme isteyen sorgular bu yöntemin zayıf yanı. Bir ürün kodu, bir sipariş numarası ya da bir özel ad arandığında anlam benzerliği yanlış yerlere bakabilir; sayılar bu tür sorguları kelimenin kendisi olarak değil, anlamı olarak görür.
Boyut büyütmek kaliteyi büyütmez. Daha uzun vektör daha isabetli sonuç anlamına gelmiyor; yalnızca daha fazla yer ve daha fazla hesap demek.
Bu konuda anlaşmazlık: Vektör deposu ayrı bir bileşen mi olmalı, yoksa var olan veritabanının bir özelliği mi?
Görüş A → Vektör araması kendine özgü bir iştir. Buna göre tasarlanmış bağımsız bir motor daha hızlıdır ve dizin davranışı üzerinde daha çok ayar sunar. (Savunanlar: ayrı motor tarafı) Görüş B → İkinci bir veri deposu, ikinci bir tutarlılık, yedekleme ve yetkilendirme problemi demektir. Vektörleri asıl verinin yanında tutmak bu üçünü ortadan kaldırır. (Savunanlar: tek veritabanı tarafı) Durum → 2026 ortası itibarıyla uzlaşma yok. Karar veri hacmine ve ekibin hâlihazırda işlettiği altyapıya bağlı.
Özet
Gömme modeliyle vektör deposu şemada yan yana durur ama ağırlıkları eşit değil. Depo değişimi bir taşıma işidir ve hiçbir bilgi kaybettirmez; gömme modeli değişimi külliyatın tamamını baştan işletir, çünkü iki modelin ürettiği sayılar birbiriyle karşılaştırılamaz.
Gömme modelini seçerken sorulacak dört şey sonradan düzeltilemeyenlerdir: Türkçe’de nasıl davrandığı, girdi sınırının parçalarınızı kesip kesmediği, vektör boyutunun maliyeti ve erişimin sürekliliği. Dördü de kendi verinizle birkaç saatte sınanır.
Depo tarafında ilk soru “hangi ürün” değil, “zaten işlettiğim bir veritabanı var mı”. Seçenekler üç kurulum sınıfına ayrılır — eklenti, kendi sunucunuzdaki motor, yalnızca yönetilen hizmet — ve sınıf seçimi ürün seçiminden daha çok şey belirler.
Kararın ağırlığını tartışmak yerine hesaplayın: parça sayısı çarpı bir parçayı gömmenin bedeli. Sonuç bir öğleden sonraysa karar geri alınabilir; bir bütçe kalemiyse kilitlenmedir ve zamanı hak eder.
Sık sorulanlar
Gömme (embedding) ne demek?
Bir metin parçasının, anlamını temsil eden sabit uzunlukta bir sayı dizisine çevrilmesidir. Diziler öyle üretilir ki anlamca yakın metinlerin dizileri de birbirine yakın düşer.
Gömme modeli ile dil modeli farklı mı?
Farklı. Dil modeli metin üretir, gömme modeli üretmez — yalnızca metni ölçüp sayıya çevirir. İkisi ayrı seçilir ve aynı üreticiden olmaları gerekmez.
Gömme modelini sonradan değiştirebilir miyim?
Değiştirebilirsiniz ama eski sayıların hiçbiri kullanılamaz; külliyatın tamamı yeniden işlenir. Geçiş sırasında iki modelin çıktısı aynı dizinde karıştırılamaz.
Hangi vektör veritabanını seçmeliyim?
Bu soru bir adım erken. Önce hangi kurulum sınıfında olduğunuza karar verin: mevcut veritabanınıza eklenti mi, kendi sunucunuzda motor mu, yönetilen hizmet mi. Sınıf belli olduğunda ürün seçimi küçük bir karara iner.
Vektör boyutu büyük olan model daha mı iyi?
Hayır. Büyük boyut daha çok depolama ve daha pahalı arama demek; isabet garantisi vermiyor. Boyut bir kalite ölçüsü değil, bir maliyet kalemidir.
Türkçe için ayrı bir gömme modeli mi gerekiyor?
Şart değil, ama sınamak şart. Yirmi cümle çifti yazıp yakın olması gerekenlerin gerçekten yakın çıktığını kontrol etmek, bir modelin Türkçe’de işinizi görüp görmediğini gösteren en ucuz testtir.