Metin gömmeleri (embedding) nedir, nasıl çalışır? [+örnekler]
Bu rehber, metin gömmelerinin ne olduğunu, metni anlamı yakalayan vektörlere nasıl dönüştürdüğünü ve gömme modellerinin arama, RAG ve diğer gerçek dünya kullanım senaryoları için nasıl seçileceğini, değerlendirileceğini ve uygulanacağını açıklar.

Metin gömmelerinin (text embeddings) temel kavramına aşinaysanız ama onları nasıl işe koşacağınızı merak ediyorsanız doğru yerdesiniz. Vektörleri, tokenizasyonu ve benzerlik hesaplamasını inceleyecek, gömme modellerini değerlendirme konusunun derinliklerine dalacak ve size gerçek dünyadan kullanım örnekleri göstereceğiz.
Metin gömmeleri nedir?
Metin gömmeleri, kelimelerin, cümlelerin veya belgelerin anlamsal içeriğini ve aralarındaki ilişkileri yakalayan sayısal temsillerdir. Bunlar, metni makine öğrenimi algoritmalarının işleyip karşılaştırabileceği sayı dizileri olan vektörlere dönüştüren gömme modelleri tarafından üretilir.
ML mühendisleri, yazılım uygulamalarının kelimeler ve cümleler arasındaki ilişkileri tanımasına yardımcı olmak için metin gömmelerini kullanır; bu da büyük hacimli verileri aramayı, kategorize etmeyi ve analiz etmeyi kolaylaştırır.
Diyelim ki her gün binlerce destek talebi alıyorsunuz. Müşteriler akla gelebilecek her türlü sorunu bildiriyor, ancak sizin bu talepleri kategorize edip etiketlemeniz gerekiyor. Bu süreci otomatikleştirmenin bir yolu, her talebi bir vektöre dönüştürmek için önceden eğitilmiş bir metin gömme modeli kullanmaktır.
Örneğin, iki müşteri şu mesajları gönderiyor:
- “Aboneliğim için benden iki kez ücret alındı”: [0.21, -0.47, 0.83, ...]
- “Hesabımda mükerrer bir ödeme var”: [0.19, -0.45, 0.80, ...]
Bunlar basitleştirilmiş, temsili vektörlerdir.
Müşteriler farklı kelimeler kullansa da aynı sorunu anlatıyor. Gömme modeli, bu mesajların vektörlerini matematiksel bir uzayda birbirine yakın konumlandırarak bu ilişkiyi yakalar. Her iki talep de kategorize edilir ve faturalandırma ekibine yönlendirilir.
İş dünyasında metin gömmelerinin kullanım alanları
Metin gömmeleri, aşağıdakiler de dahil olmak üzere çeşitli doğal dil işleme (NLP) görevlerinde kullanılır:
- Anlamsal arama: İlgili bilgileri anlama dayalı olarak bulma. Delivery Hero, market alışverişi yapan müşterilerin ilgili ürünleri bulmasına yardımcı olmak için anahtar kelime aramasının yanı sıra ürün ve sorgu gömmelerini kullanır. Örneğin, “az yağlı yoğurt” araması, birebir ifade eşleşmesi olmasa bile Yunan yoğurdunu veya %0,5 yağ içeren yoğurdu öne çıkarabilir.
- Metin sınıflandırma: Spam e-postaları belirlemek veya belgeleri konuya göre ayırmak gibi metinleri kategorize etme. MindCraft.ai, kurumsal belgeleri kategorize etmek ve GDPR uyumluluğu için hassas bilgileri tespit etmek amacıyla transformer tabanlı metin gömmelerini ve makine öğrenimini kullanan bir belge sınıflandırma sistemi geliştirdi.
- Kümeleme: Örüntüleri belirlemek için benzer belgeleri veya metin parçalarını gruplama. Doczy.ai, sözleşme metinlerini gömmelere dönüştürür ve farklı sözleşmeler benzer yükümlülükleri farklı ifadelerle dile getirse bile anlamsal olarak ilişkili maddeleri ve kavramları gruplandırır.
- Erişimle zenginleştirilmiş üretim (RAG): Bir LLM'in daha doğru ve bağlama duyarlı yanıtlar üretmek için kullanabileceği ilgili bilgileri getirme. Ring, uluslararası pazarlarda müşterilerin sorularına yanıt üretmeden önce ilgili destek belgelerini getirmek için çok dilli bir RAG sohbet botunda Amazon Titan metin gömmelerini kullanır.
- Öneri sistemleri: Metinsel benzerliklere dayanarak ilgili makaleleri, ürünleri veya diğer içerikleri önerme. LinkedIn'in JUDE sistemi, iş önerilerini iyileştirmek için iş tanımlarının ve üye profillerinin LLM tarafından üretilen metin gömmelerini kullanır ve böylece adayların geçmişleri ile açık pozisyonlar arasındaki ilişkileri yakalar.
- Adlandırılmış varlık tanıma (NER): Metindeki kişi, kuruluş ve yer adlarının belirlenmesine ve sınıflandırılmasına yardımcı olma. Amazon Health Services, müşteri sorgularındaki hastalık, semptom, ilaç ve tedavi gibi tıbbi kavramları belirlemek için NER kullanır. Bu bilgiyi, sorguları ilgili sağlık ürün ve hizmetleriyle eşleştirmek için gömme tabanlı benzerlik aramasıyla birleştirir.
- Makine çevirisi: Metinleri diller arasında çeviren modelleri destekleme. Transglot, benzer anlamlara sahip, daha önce çevrilmiş pasajları belirlemek için anlamsal çeviri belleğinde metin gömmelerini kullanır ve böylece yerelleştirme iş akışlarının mevcut çevirileri yeniden kullanmasına yardımcı olur.
Metin gömmeleri nasıl çalışır?
Peki bir gömme modeli, bir metin parçasına hangi sayısal değerleri atayacağına nasıl karar verir ve neden ona güvenmeliyiz?
Her şey eğitimle başlar. Gömme modelleri, kelimelerin birlikte nasıl kullanıldığına dair örüntüleri arayarak büyük metin koleksiyonlarından öğrenir. Örneğin, Word2Vec gibi geleneksel modeller, bir kelimeyi çevresindeki kelimelerden tahmin ederek ya da tam tersini yaparak öğrenir. Modern, erişim odaklı modeller ise genellikle karşıtlı öğrenme (contrastive learning) kullanır. Bu modeller, ilgili sorgu-belge çiftlerine ilgisiz olanlara kıyasla daha yüksek benzerlik puanları atayacak şekilde eğitilir.
Model eğitildikten sonra ona yeni bir metin parçası verdiğinizde şunlar olur:
- Tokenizasyon. Model önce metni token adı verilen daha küçük parçalara ayırır. Bunlar kelimelerin tamamı, kelime parçaları veya noktalama işaretleri olabilir. Her token, modelin sözcük dağarcığından sayısal bir kimlik alır; bu kimlik tek başına herhangi bir anlam taşımaz.
- Kodlama ve havuzlama. Model, bu token'ları eğitim sırasında öğrendiği örüntüleri kullanarak işler ve bir vektör üretir. Vektördeki her sayıya koordinat veya bileşen denir; boyut ise bu sayının vektörün konumunu tanımladığı eksendir. Her değer, metnin gömme uzayı olarak bilinen matematiksel bir uzaydaki konumuna katkıda bulunur.
- Benzerlik hesaplaması. İlgili metni bulmak için bir erişim sistemi, sorgu gömmesini kosinüs benzerliği veya nokta çarpımı gibi bir benzerlik ölçüsü kullanarak belge gömmeleriyle karşılaştırır.
Örneğin çevrimiçi mağazalar, bir kullanıcının sorgusuyla eşleşen ürünleri bu şekilde listeler.
Kelime, cümle ve belge gömmeleri arasındaki fark nedir?
Temel fark, her bir gömmenin tek bir vektörde ne kadar metni temsil ettiğidir. Hangi bilgiyi yakalamak istediğinize bağlı olarak tek tek kelimeler, tam cümleler veya belgelerin tamamı için gömmeler oluşturabilirsiniz.
- Kelime gömmeleri, tek tek kelimeler arasındaki ilişkileri yakalar; örneğin “arıza” ve “kesinti” kavramlarının birbiriyle ilişkili olduğunu tanır.
- Cümle gömmeleri, aynı fikri farklı kelimelerle ifade etseler bile cümlelerin bütün anlamını kavrar.
- Belge gömmeleri, her cümle için ayrı bir vektör oluşturmak yerine belgenin tamamını tek bir vektörle temsil eder. Bu, genel konuyu korumaya ve aynı konuyu ele alan diğer belgeleri bulmaya yardımcı olur; ancak ayrıntılara erişmek daha zor (hatta imkânsız) olabilir.
Ne kadar ayrıntıya inmelisiniz? Doğru düzey, verilerinize ve neyi başarmaya çalıştığınıza bağlıdır.
Daha büyük belgeler için yaygın bir uygulama, metni daha küçük parçalara bölmek ve her biri için ayrı bir gömme oluşturmaktır. Bu sayede belgenin genel anlamını VE belge gömmesi sırasında kaybolabilecek belirli ayrıntıları elde edersiniz.
Parça boyutu, gömmelerin kalitesini ne kadar etkiler?
Oldukça fazla. Rahul Kumar'a (Xenoss Yapay Zekâ Mühendisliği Başkan Yardımcısı) göre asıl zorluk, önemli bağlamı kaybetmeden tek bir fikri bütünüyle yakalayan bir parça boyutu bulmaktır. Kumar bu ödünleşimi şöyle açıklıyor:
“Parça boyutu, bir gömmenin ne kadar anlamsal bağlam taşıyacağını belirler. Daha büyük bir parça vektöre daha fazla bağlam kazandırır, ancak aynı zamanda daha fazla konuyu tek bir vektörde ortalamış olur. Üç konuyu kapsayan bir parça ortada bir yere düşer ve hiçbiriyle iyi eşleşmez. Daha küçük bir parça anlamı net tutar; fakat onu bulunabilir kılan bağlamı kaybedebilir.”
Bu nedenle Kumar, tek bir sabit boyuta bağlı kalmak yerine içeriğe göre bir parçalama stratejisi seçmeyi öneriyor. Kendi ifadesiyle: “Örtüşmeli sabit boyutlu parçalama yalnızca e-postalar veya kazınmış web sayfaları gibi tekdüze metinler için uygundur.”
Sözleşmeler veya politikalar gibi yapılandırılmış belgeler için yapıyı dikkate alan özyinelemeli bölme daha uygundur. Anlamsal parçalama ise metni konunun veya anlamın değiştiği yerlerden böldüğü için transkriptlerde iyi sonuç verebilir.
Metin gömmeleri ile anahtar kelime araması karşılaştırması
Basitçe anahtar kelimelerle arama yapabilecekken neden metin gömmelerini kullanmalısınız? Çünkü anahtar kelime araması terimlerin eşleşmesine dayanırken gömme tabanlı anlamsal arama, sorgu ve belge farklı kelimeler kullansa bile ilgili bilgileri bulabilir.
Ancak anlamsal benzerlik her zaman alakalılık anlamına gelmez. AI Builder Academy'nin kurucusu Shaw Talebi, bu sınırlamayı bir özgeçmiş arama sistemi üzerinden gösteriyor. Talebi'nin örneğinde “Apache Airflow deneyimine sahip veri mühendisi” araması yapıldığında ilk beş sonuçtan yalnızca biri Apache Airflow'dan bahsediyordu ve o da üçüncü sıradaydı; oysa veri kümesindeki diğer üç özgeçmişte de bu beceri yer alıyordu.
Bu, anlamsal aramanın kavramsal olarak ilişkili bilgileri bulmak için yararlı olduğu, ancak teknik beceriler, ürün tanımlayıcıları veya hata kodları gibi kesin gereksinimleri gözden kaçırabileceği anlamına gelir.
Rahul Kumar bu sorunu çözmek için erişim sisteminin nerede yetersiz kaldığına göre bir erişim yaklaşımı seçilmesini öneriyor:
- Hibrit arama (anahtar kelime eşleştirmenin anlamsal aramayla birleşimi), sorgular SKU'lar, hata kodları veya yasal atıflar gibi kesin terimler içerdiğinde varsayılan seçenektir.
- Yeniden sıralayıcılar, getirilen bağlamdan üretilen yanıtlarda olduğu gibi yalnızca ilk birkaç sonucun önemli olduğu durumlarda maliyetlerini hak eder.
- Graf tabanlı erişim, yanıt birbirine bağlı birden fazla veri kaynağına yayıldığında işe yarar.
Kumar, ekibinin bu yaklaşımları nasıl uygulamaya koyduğunu da paylaştı. Ekip, bir projede BM25 anahtar kelime aramasını ve vektör aramasını yan yana çalıştırmış, sonuçları karşılıklı sıra birleştirme (RRF) yöntemiyle birleştirmiş ve en iyi 124 sonucu yeniden sıralayıp 6'ya indirmek için bir LLM kullanmış.
Kumar şöyle ekliyor: “Vektör aramasının benzer gizil uzayları bulduğu, ardından iki atlamalı bir graf yürüyüşünün yapıldığı graf öncelikli erişime geçmek, sıralama kalitesini (nDCG) 0,58'den 0,67'ye çıkardı ve p90 erişim süresini 19 saniyeden 3 saniyenin altına indirdi.”
Metin gömme modeli türleri
Tüm gömme modelleri genel olarak aynı işi yapar: metindeki ilişkileri öğrenir. Ancak eğitildikleri iş, dikkate aldıkları bilgiler ve ele almak üzere tasarlandıkları görevler bakımından farklılık gösterirler.
Statik kelime gömme modelleri
Geleneksel kelime gömme modelleri, büyük metin koleksiyonlarındaki kelime kullanım örüntülerine dayanarak kelimelerin yoğun sayısal temsillerini öğrenir. Bu gömmeler statiktir; yani her kelime, belirli bir bağlamdaki anlamından bağımsız olarak aynı vektörü alır.
İyi bilinen iki yöntem şunlardır:
- Word2Vec: 2013'te Google tarafından geliştirilen bu yöntem, iki mimari kullanarak komşu kelimelerden temsiller öğrenir: bir kelimeyi komşularından tahmin eden Sürekli Kelime Torbası (CBOW) ve verilen bir kelimeden komşu kelimeleri tahmin eden skip-gram.
- GloVe (Global Vectors for Word Representation): 2014'te Stanford'da geliştirilen bu yöntem, kelimeler arasındaki ilişkileri öğrenmek için kelimelerin birlikte geçme istatistiklerini kullanır.
Bağlamsal dil modelleri
Statik gömmelerin aksine genel amaçlı dil modelleri, çevredeki metne bağlı olarak değişen bağlamsal temsiller üretir. Bu, modellerin aynı kelimenin farklı anlamlarını ayırt etmesine yardımcı olur.
- BERT (2018, Google): Bir token'ın her iki tarafındaki kelimeleri dikkate almak için çift yönlü öz dikkat (self-attention) kullanır. Örneğin, “I deposited money at the bank” (“Bankaya para yatırdım”) ve “I sat on the bank of a river” (“Nehir kıyısına oturdum”) cümlelerindeki “bank” kelimesi için farklı temsiller üretir.
- GPT (2018, OpenAI): Bir sonraki token'ı tahmin ederken önceki metni hesaba katan transformer tabanlı temsiller kullanır. GPT modelleri öncelikle dil üretimi için tasarlanmıştır.
Cümle ve belge gömme modelleri
Bu modeller, tek tek cümlelerden paragraflara ve belgelerin tamamına kadar daha uzun metin parçalarını vektör olarak temsil eder.
- Doc2Vec: Word2Vec tarzı öğrenmeyi cümlelere, paragraflara ve belgelere genişletir. İlgili makaleleri gruplamaya veya belgeleri konuya göre sınıflandırmaya yardımcı olabilir.
- Universal Sentence Encoder (USE): Anlamsal benzerlik ve metin sınıflandırma için cümlelerin ve kısa paragrafların sabit uzunluklu temsillerini üretmek amacıyla 2018'de Google tarafından geliştirilmiştir.
- Sentence-BERT (SBERT, 2019): Darmstadt Teknik Üniversitesi'nde Nils Reimers ve Iryna Gurevych tarafından geliştirilen bu model, Google'ın BERT modeli üzerine kuruludur ve yaygın olarak anlamsal arama, açımlama (paraphrase) tespiti ve kümeleme için kullanılır.
- pplx-embed-v1 (2026, Perplexity): Gerçek dünyada, web ölçeğinde erişim için geliştirilmiş son teknoloji bir metin gömme modeli olan bu aile, nedensel bir dil modelini çift yönlü bir kodlayıcıya dönüştürmek için difüzyon tabanlı ön eğitim kullanır. Bağımsız olarak kodlanan sorgular ve belgeler için yoğun gömmeler üretir ve depolama maliyetlerini azaltmak için nicemleme farkındalıklı eğitimden yararlanır. 4B INT8 modelimiz, çok dilli MTEB erişim karşılaştırma testinde 69,66 nDCG@10 puanına ulaştı; Google'ın gemini-embedding-001 modeli ise 67,71 puan aldı.
- pplx-embed-context-v1 (2026, Perplexity): Belge parçalamadaki yaygın bir sorunu ele alır: Pasajlar, çevrelerindeki metinden ayrıldıklarında anlamlarını yitirebilir. Geç parçalama (late chunking) yöntemini kullanan model, bağlamsallaştırılmış token temsillerini havuzlayarak ayrı parça gömmelerine dönüştürmeden önce belgeyi bütün olarak işler. 4B modelimiz ConTEB'de 81,96 nDCG@10 puanına ulaşırken voyage-context-3 79,45 puan aldı.
- pplx-embed-v2-context (2026, Perplexity): Bağlamsal erişimi bir adım öteye taşır. Yalnızca yanıtı içeren pasajı bulmak üzere eğitilmek yerine, o yanıtı açıklamaya veya doğrulamaya yardımcı olan destekleyici pasajları belirlemeyi öğrenir. Model, eğitim sırasında bir bağlam sıkıştırma modelinden damıtılan alakalılık sinyallerini kullanır; çıkarım sırasında ise bu öğretmen modele ihtiyaç duymaz. 9B önizleme modelimiz, context-bench'te 10 sonuçta %45,5 yanıt geri çağırma (recall) ve %40,6 kanıt geri çağırma oranına ulaştı.
Perplexity'nin modelleri, gömmelerin büyük ölçekte depolanmasına da olanak tanır. Modeller INT8 ve ikili (binary) gömmeler üretir; bu da FP32'ye kıyasla depolama gereksinimlerini sırasıyla 4 kat ve 32 kat azaltır.
Model | Boyutlar | Bağlam | MRL | Nicemleme | Talimat | Havuzlama |
pplx-embed-v1-0.6B | 1024 | 32K | Evet | INT8/BINARY | Hayır | Ortalama |
pplx-embed-v1-4B | 2560 | 32K | Evet | INT8/BINARY | Hayır | Ortalama |
pplx-embed-context-v1-0.6B | 1024 | 32K | Evet | INT8/BINARY | Hayır | Ortalama |
pplx-embed-context-v1-4B | 2560 | 32K | Evet | INT8/BINARY | Hayır | Ortalama |
pplx-embed modellerinin boyutları, bağlam uzunluğu, nicemleme ve havuzlama yapılandırması
Yoğun, seyrek ve çoklu vektör gömmeleri
Özellikle anlamsal arama açısından anlaşılmaya değer bir ayrım daha var. Gömme modelleri, metni nasıl temsil ettikleri ve alakalılığı nasıl hesapladıkları konusunda farklılık gösterebilir.
- Yoğun gömmeler: Metni, değerlerin çoğunun sıfırdan farklı olduğu kompakt vektörlerle temsil eder.
- Seyrek gömmeler: Önemli terimlerle ilişkilendirilmiş öğrenilmiş ağırlıklara sahip, çoğunlukla sıfır değerli vektörler kullanır. SPLADE (2021) gibi modeller, ilgili belgelerin bulunmasında hangi terimlerin önemli olduğunu öğrenir.
- Çoklu vektör gömmeleri: Bir metin parçası için birden fazla vektör tutarak sorgular ile belgeler arasında daha ayrıntılı karşılaştırmalar yapılmasına olanak tanır. ColBERT (2020) gibi modeller, bu temsilleri daha ayrıntılı sorgu-belge karşılaştırmaları için kullanır.
- Birden fazla yaklaşımı birleştiren modeller: BGE-M3 (2024), BAAI tarafından geliştirilmiştir ve aynı model içinde yoğun, seyrek ve çoklu vektör erişimini destekler.
Metin gömme modeli nasıl seçilir ve değerlendirilir
MTEB gibi herkese açık karşılaştırma testleri iyi bir başlangıç noktasıdır. Bunları, dillerinizi, girdi uzunluklarınızı ve dağıtım gereksinimlerinizi destekleyen iki veya üç modeli kısa listeye almak için kullanın. Ancak henüz bir kazanan seçmeyin. Bu modelleri kendi verileriniz üzerinde test etmenin önemini ne kadar vurgulasak azdır.
İşte pratik bir değerlendirme iş akışı:
- Bir test veri kümesi oluşturun. İlk değerlendirme kümesi olarak 50-100 temsili arama sorgusu toplayın (daha fazlasına ihtiyacınız olabilir) ve bunlara açımlamalar, teknik terminoloji ve birebir hata kodları gibi zorlu durumları da dahil edin. Her sorgu için hangi belgelerin veya pasajların ilgili yanıtları içerdiğini belirleyin. Bu alakalılık etiketleri, temel doğrunuz (ground truth) olur.
- Erişim kalitesini ölçün. Her modeli aynı değerlendirme veri kümesiyle test edin; belge hazırlama ve erişim koşullarını karşılaştırılabilir tutarken sorgu biçimlendirme, normalleştirme ve benzerlik puanlamasıyla ilgili modele özgü gereksinimlere uyun. Ardından Sentence Transformers kütüphanesindeki InformationRetrievalEvaluator aracını kullanarak aşağıdaki metrikleri hesaplayın:
- Recall@k: İlk k sonuç arasında yer alan ilgili pasajların oranını verir.
- MRR: İlk ilgili sonucun sıralamada ne kadar üstte yer aldığını ölçer.
- nDCG@k: İlk k sonucun ilgililik düzeylerine göre ne kadar iyi sıralandığını ölçer.
- Gecikme ve işlem hacmini kıyaslayın. Her modelin bir sorguyu gömmeye dönüştürmesinin ne kadar sürdüğünü ölçün; ideal olarak gerçekçi yük altında medyan (p50) ve 95. yüzdelik (p95) gecikme değerlerini raporlayın.
- Depolama ve işletim maliyetlerini hesaplayın. Vektör depolama ihtiyacı; gömme sayısına, gömmelerin boyutlarına ve sayısal hassasiyete bağlıdır. Örneğin 768 boyutlu bir milyon FP32 gömme, dizinleme ek yükü hariç yaklaşık 3,1 GB ham vektör depolama alanı gerektirir. Depolama gereksinimlerini azaltmak için vektörleri daha düşük sayısal hassasiyete kuantize edebilirsiniz. Örneğin FP32’den INT8’e geçmek, ham vektör depolama alanını kabaca 4 kat azaltır. Ancak sıkıştırma erişim kalitesini etkileyebileceğinden, bu ödünleşimi kontrol etmek için değerlendirmelerinizi yeniden çalıştırın.
Son olarak tüm sonuçları yan yana karşılaştırın: erişim metrikleri, p95 gecikmesi, işlem hacmi, depolama ve maliyet. Üretim kısıtlarınız dahilinde kalite gereksinimlerinizi karşılayan modeli seçin.
LLM yerine ne zaman gömme kullanmalısınız?
Belge analizinden karmaşık akıl yürütmeye kadar her şeyi LLM’ler üstlenirken, tüm metninizi bir modele verip gerisini ona bırakmak oldukça cazip gelebilir. Ancak bunun faturasını ödemekten muhtemelen pek memnun kalmazsınız.
Ayrıca LLM’ler değerlendirme yapma ve metin oluşturma konusunda daha iyidir, ancak tek bir isteme sığdırabildikleri bilgi miktarıyla sınırlıdır. Gömmeler ise ucuz, hızlı ve tutarlıdır; milyonlarca öğe üzerinde çalışabilir.
“Gömmeler; arama, öneriler (‘buna benzer daha fazlası’), tekrarlanan destek talepleri gibi yinelenen içerikleri tespit etme ve büyük hacimli içeriği konuya göre gruplama konusunda öne çıkar. Farklı dillerde de güçlü performans gösterirler. Görev akıl yürütme gerektirdiğinde ise LLM öne çıkar: özetleme, seçenekleri karşılaştırma veya bir yanıt yazma. Gerçek sistemlerin çoğu, her biri iyi olduğu kısmı üstlenecek şekilde ikisine birden ihtiyaç duyar” diyerek sözlerini tamamlıyor Kumar.
Geliştiricilerin metin gömmeleri konusunda yaptığı hatalar
Geliştiricilerin genellikle neleri gözden kaçırdığını öğrenmek için Rahul Kumar ve Xibeijia Guan (Ahrefs veri bilimcisi) ile konuştum. Dikkat edilmesi gereken altı hatanın altını çizdiler:
- Metin ön işlemeyi atlamak. Girdi verileri HTML, gezinme menüleri, reklamlar veya başka alakasız içerikler barındırıyorsa, kalıp metinlerin temizlenmesi gibi ön işleme adımları gereksiz bilgileri ayıklayarak gömme kalitesini artırmaya yardımcı olabilir.
- Modelin maksimum girdi uzunluğunu göz ardı etmek. Farklı modellerin farklı token sınırları ve kırpma davranışları vardır. Sınırı aşan metin kırpılabilir ve bu da önemli bilgilerin kaybolmasına yol açabilir.
- Modele özgü gereksinimlere uymamak. Bazı gömme modelleri query: ve passage: gibi belirli önekler ya da farklı görevler için farklı talimatlar gerektirir. Bu gereksinimlere uyulmaması erişim performansını düşürebilir.
- Uyumsuz bir benzerlik ölçüsü kullanmak. Kosinüs benzerliği ve nokta çarpımı her zaman birbirinin yerine kullanılamaz. Gömmelerin normalleştirilmiş olup olmadığını kontrol edin ve model ile vektör dizini için önerilen puanlama yöntemini kullanın.
- Konusal benzerliği ilgililikle karıştırmak. Dar kapsamlı alanlara ait koleksiyonlarda pek çok belge, aynı soruyu yanıtlamadan anlamsal olarak birbirine benzeyebilir. Başarısız sorguları ve sıralama dağılımlarını inceleyin. Kullanıcıların kesin bilgiye ihtiyaç duyduğu durumlarda sözcüksel veya hibrit erişimi, yeniden sıralamayı ve meta veri filtrelerini test edin.
- Gömme normalleştirmesini göz ardı etmek. Farklı gömme modelleri normalleştirilmiş veya normalleştirilmemiş vektörler üretebilir. Kullandığınız benzerlik metriğine bağlı olarak gömmelerin normalleştirilmiş olup olmadığını ve ek normalleştirme gerekip gerekmediğini kontrol edin.
Metin gömmeleri hakkında SSS
1. Metin gömmelerini nasıl oluşturabilirim?
En basit yaklaşım, önceden eğitilmiş bir gömme modeli kullanmaktır. Örneğin Python’ın Sentence Transformers kütüphanesiyle all-MiniLM-L6-v2 gibi bir modeli yükleyebilir, metninizi model.encode() yöntemine aktarabilir ve karşılığında sayısal bir vektör elde edebilirsiniz. Alternatif olarak gömmeleri bir API aracılığıyla da oluşturabilirsiniz.
Anlamsal arama veya RAG için genellikle belgelerinizi parçalara ayırır, her parça için bir gömme oluşturur ve vektörleri aranabilir bir dizinde depolarsınız.
2. Metin için en iyi gömme modelleri hangileridir?
Ne geliştirdiğinize bağlı olarak göz önünde bulundurmaya değer birkaç model var:
- Perplexity’nin pplx-embed-v1 modeli: Büyük ölçekli yoğun erişim için tasarlanmıştır; vektör depolama gereksinimlerini azaltan INT8 ve ikili gömmeler sunar.
- Perplexity’nin pplx-embed-context-v1 modeli: Tek tek parçaların, çevrelerindeki bağlam olmadan anlamını yitirdiği uzun belgelerden pasaj getirmek için kullanışlıdır.
- all-MiniLM-L6-v2: Hafif, yerel anlamsal arama, kümeleme ve cümle benzerliği görevleri için uygundur. Kompakt 384 boyutlu vektörler üretir ancak 256 kelime parçasından uzun girdileri kırpar.
- BGE-M3: Çok dilli RAG ve hibrit erişim için kullanışlıdır. 100’den fazla dili destekler; yoğun, seyrek ve çok vektörlü temsilleri bir araya getirir.
- Qwen3-Embedding: Çok dilli arama, kod erişimi ve göreve özgü gömmeler için güçlü bir aday. Talimat desteğine sahip, açık ağırlıklı 0.6B, 4B ve 8B modeller sunar.
- OpenAI’ın text-embedding-3-large modeli: Bir modeli kendiniz barındırmak istemediğinizde anlamsal arama ve belge erişimi için API tabanlı bir seçenek. 3.072 boyuta kadar destekler; depolama alanından tasarruf etmek için bu sayıyı azaltabilirsiniz.
- Google’ın Gemini Embedding modelleri: Yönetilen erişim uygulamaları için kullanışlıdır. Gemini Embedding 2 ayrıca ortak bir gömme uzayında metin, görsel, ses, video ve PDF’ler genelinde arama yapmayı destekler.
3. Bir LLM’i gömme modeli olarak kullanabilir miyim?
Evet, ancak genel amaçlı bir LLM ile gömmeler için optimize edilmiş bir LLM arasında fark vardır. LLM’ler metnin dahili vektör temsillerini üretir; bunları çıkarıp havuzlama (pooling) yoluyla tek bir gömmede birleştirebilirsiniz. Ancak bu vektörler, ek eğitim olmadan anlamsal arama için her zaman işe yaramayabilir.
Örneğin Qwen3-Embedding, gömme ve erişim görevleri için ek olarak eğitilmiş bir LLM omurgası kullanır. Dolayısıyla bir LLM’i gömme oluşturacak şekilde uyarlayabilseniz de genellikle özel bir gömme modeli daha pratik bir başlangıç noktasıdır.