Embedding'ler, modern doğal dil işleme (NLP) ve bilgi erişim (IR) sistemlerinin temel yapı taşlarından biridir. Metin, görüntü, ses gibi yapılandırılmamış verilerin yoğun (dense) sayısal vektör temsillerine dönüştürülmesi sürecine embedding denir. Bu rapor, embedding kavramını temelden ele alarak MTEB (Massive Text Embedding Benchmark) çerçevesindeki görev türlerini, değerlendirme metriklerini ve liderlik tablosu dinamiklerini hiyerarşik biçimde incelemektedir.
Embedding, bir veri parçasının (kelime, cümle, paragraf veya doküman) sabit uzunlukta, sürekli ve yoğun bir vektör uzayında temsil edilmesidir. Matematiksel olarak bir embedding fonksiyonu şu şekilde tanımlanır:
f: X → ℝ^d
Burada X girdi uzayını (örneğin tüm olası cümleler kümesi), d ise vektör boyutunu (dimension) temsil eder. Sonuç olarak her metin parçası, d boyutlu bir reel sayı vektörüne dönüştürülür.
Klasik metin temsillerinden (bag-of-words, TF-IDF) farklı olarak embedding'ler anlamsal (semantic) ilişkileri yakalar. "Köpek" ve "kedi" kelimeleri, vektör uzayında birbirine yakın konumlanırken "köpek" ve "ekonomi" birbirinden uzak düşer.
Embedding'ler aşağıdaki temel kullanım alanlarında kritik rol oynar:
Bir embedding modelinin ürettiği vektörün eleman sayısıdır. Yaygın boyutlar 384, 768, 1024 ve 4096'dır. Daha yüksek boyut genellikle daha zengin temsil kapasitesi sunar ancak bellek ve hesaplama maliyetini artırır.
İki vektör arasındaki yakınlığı ölçmek için kullanılan fonksiyonlardır:
[-1, 1]. En yaygın kullanılan metriktir.Tek bir modelin, vektörün ilk k boyutunun kesilmesiyle farklı boyutlarda kullanılabilir embedding'ler üretmesini sağlayan bir eğitim tekniğidir. Örneğin 1024 boyutlu bir modelin ilk 256 boyutu da anlamlı ve kullanılabilir bir temsil oluşturur. Bu, depolama ve hız optimizasyonu için önemli esneklik sağlar.
Bazı modern modeller (E5-Mistral, GTE-Qwen2 vb.) encode işlemi sırasında bir talimat (instruction/prompt) alır. "Retrieve relevant documents for the query:" gibi bir önek ile modelin görev bağlamını anlaması sağlanır. Bu yaklaşım, aynı modelin farklı görevlerde daha iyi performans göstermesine yardımcı olur.
Embedding vektörlerinin float32'den daha düşük hassasiyetli veri tiplerine (float16, int8, binary) dönüştürülmesidir. Bellek kullanımını ve arama süresini düşürür, performans kaybı genellikle sınırlı kalır.