Cross-Encoder (Çapraz Kodlayıcı)

Sorgu-belge çiftini tek bir Transformer geçişinde birlikte işleyerek hassas alaka puanı üreten yeniden sıralama (reranking) modelidir; RAG pipeline'larının ikinci aşamasında kullanılır.

Cross-Encoder (Çapraz Kodlayıcı), bir sorgu ile bir belgeyi tek bir girdi dizisi olarak birleştirip aynı Transformer geçişinde işleyen ve ikili arasındaki alaka düzeyine doğrudan bir puan atayan yeniden sıralama (reranking) modelidir. Bi-encoder mimarisinde sorgu ve belge ayrı ayrı vektöre dönüştürülüp benzerlikleri kosinüs mesafesiyle ölçülürken, cross-encoder iki metni [SEP] tokenıyla birleştirir ve BERT ya da RoBERTa tabanlı bir kodlayıcıdan tek seferde geçirir. Bu düzenek, dikkat mekanizmasının sorgudaki her tokenı belgedeki her tokenla karşılaştırmasına izin verir; alaka puanı genellikle [CLS] tokenının temsili üzerine oturtulan küçük bir sınıflandırma katmanından elde edilir. Tarihsel olarak bu yaklaşım, 2019'da Nogueira ve Cho'nun MS MARCO pasaj sıralama görevinde BERT'i doğrudan sorgu-pasaj çiftleri üzerinde ince ayarlamasıyla yaygınlaştı. Sonradan "monoBERT" olarak anılan bu model, BM25'e göre MRR@10 metriğinde çarpıcı bir sıçrama gösterdi ve iki aşamalı arama mimarisinin standart parçası hâline geldi. Ardından Sentence-Transformers kütüphanesi CrossEncoder sınıfını ekleyerek bu modelleri birkaç satır Python koduyla kullanılabilir kıldı. Modern bilgi erişimi ve RAG (Retrieval-Augmented Generation) sistemlerinde cross-encoder, "retrieve-then-rerank" olarak adlandırılan iki aşamalı düzenin ikinci katmanında çalışır. Birinci aşamada BM25 ya da bir bi-encoder, milyonlarca belge arasından milisaniyeler içinde 50 ile 200 arasında aday getirir; ikinci aşamada cross-encoder bu küçük kümeyi sorguyla birlikte yeniden değerlendirip nihai sıralamayı belirler. Büyük dil modeline yalnızca en alakalı birkaç parçanın iletilmesi, halüsinasyon oranını düşürür ve bağlam penceresini verimli kullandırır. Temel avantajı, sorgu ile belge arasındaki ince bağlamsal etkileşimi tam dikkat matrisiyle yakalayabilmesidir. "Python nedir?" sorusu için "Python programlama dili" ile "piton yılanı" belgelerini ayırt etmek, iki metindeki ipuçlarını birlikte okumayı gerektirir; bağımsız vektörlerle çalışan bi-encoder bu ayrımı çoğu zaman kaçırır. Bedeli ise hesaplama maliyetidir: belgeler önceden indekslenemez, her sorgu-belge çifti için ayrı bir ileri geçiş gerekir ve 512 token sınırı uzun belgelerin parçalanmasını zorunlu kılar. Bu nedenle cross-encoder tüm katalog üzerinde değil, yalnızca daraltılmış aday kümesi üzerinde kullanılır. ms-marco-MiniLM-L-6-v2, BGE-Reranker-v2-m3 ve Cohere Rerank API günümüzde en yaygın tercih edilen uygulamalardır.

compare_arrows Bi-Encoder ile Farkı

Bilgi erişimi sistemlerinde iki temel kodlama stratejisi vardır. Bi-encoder (ör. Sentence-BERT) sorguyu ve belgeyi ayrı ayrı kodlayarak gizli uzayda embedding vektörleri üretir; alaka skoru bu iki vektörün kosinüs benzerliğidir. Bu yaklaşım hızlıdır çünkü belgeler önceden indekslenebilir; sorgu geldiğinde yalnızca sorgu kodlanır ve ANN (Approximate Nearest Neighbor) araması yapılır. Cross-encoder ise sorgu ve belgeyi BERT'in [SEP] tokenıyla birleştirerek tek bir dizi oluşturur ve her çift için sıfırdan bir forward pass çalıştırır. Böylece dikkat mekanizması sorgu ile belge arasındaki tam etkileşimi hesaplar: "Paris" kelimesinin "şehir" bağlamında mı yoksa "Paris Hilton" bağlamında mı geçtiği gibi nüanslar doğru şekilde değerlendirilebilir. Özetle cross-encoder çok daha yüksek doğruluk sunar, karşılığında çok daha yüksek hesaplama maliyeti ister.

account_tree Retrieve-Then-Rerank Pipeline

Modern RAG ve kurumsal arama sistemleri iki aşamalı bir mimari benimsemiştir. Birinci aşama (retrieval): BM25, FAISS veya Elasticsearch ile büyük belge koleksiyonu arasından hızla 50-200 aday getirilir. Bu aşama milisaniyeler içinde tamamlanmalıdır çünkü arama uzayı milyonlarca belge olabilir. İkinci aşama (reranking): cross-encoder bu küçük aday kümesini sorguyla birlikte yeniden değerlendirir ve nihai sıralamayı belirler. MS MARCO veri kümesinde yapılan karşılaştırmalarda, yalnızca BM25 kullanan sistemlere göre retrieve-then-rerank mimarisi MRR@10 metriğinde tipik olarak 10-20 puan iyileşme gösterir. Sıralanan ilk birkaç parça büyük dil modeline bağlam olarak verilir; böylece modelin alakasız metinle dolması ve halüsinasyon üretmesi azalır. Pratik bir örnek: LangChain ve LlamaIndex kütüphaneleri, Cohere Rerank API veya yerel cross-encoder modellerini bu pipeline'a birkaç satırla entegre etmeye olanak tanır.

model_training Popüler Cross-Encoder Modelleri

  • check_circle ms-marco-MiniLM-L-6-v2: Sentence-Transformers kütüphanesinin en yaygın kullanılan reranker modeli; MS MARCO veri kümesinde eğitilmiş, 6 katmanlı, hızlı ve ücretsiz. Yerel RAG sistemleri için ilk tercih.
  • check_circle BGE-Reranker (BAAI): Pekin Yapay Zeka Akademisi'nin geliştirdiği çok dilli reranker serisi; BGE-Reranker-v2-m3 sürümü BEIR benchmark'larında en yüksek performans gösterenler arasında yer alır ve Türkçe dahil çok dilli destek sunar.
  • check_circle Cohere Rerank API: API tabanlı servis; özellikle İngilizce ve çok dilli arama için tasarlandı. Kurumsal RAG uygulamalarında sıfır altyapı yüküyle yüksek kaliteli reranking; kullanım başına ücretlendirilir.
  • check_circle Jina Reranker: 8192 token'a kadar uzun belge desteği olan reranker; özellikle uzun dokümantasyon veya hukuki metin arama senaryolarında tercih edilir.

Cross-Encoder, Bi-Encoder ve BM25 Karşılaştırması

text_fields BM25 (TF-IDF)

Kelime frekansı tabanlı, anlamsal anlayış yok. Milisaniyelerde sonuç verir. Tam eşleşmede güçlü, eş anlamlılarda zayıf.

call_split Bi-Encoder

Semantik anlayış var, belgeler önceden indekslenebilir. Hızlı ANN araması. Sorgu-belge etkileşimi sınırlı.

join_inner Cross-Encoder

Tam cross-attention, en yüksek doğruluk. Her çift için ayrı forward pass gerektirdiğinden yavaş. Reranking aşaması için ideal.

hub Hibrit (BM25 + CE)

BM25 aday getirir, cross-encoder yeniden sıralar. En iyi pratik denge; production RAG sistemlerinde yaygın standart.

warning Sınırlamalar ve Pratik İpuçları

Cross-encoder kullanımında dikkat edilmesi gereken başlıca noktalar vardır. Gecikme kısıtı: 100 aday için çoğu cross-encoder GPU üzerinde 50-200 ms harcar; bu, gerçek zamanlı arama için kabul edilebilir bir süredir ama aday sayısı binlere çıktığında sorun yaratır. Maksimum token limiti: BERT tabanlı modeller genellikle 512 token ile sınırlıdır; uzun belgelerin parçalara (chunk) bölünmesi ve her parçanın ayrı puanlanması gerekir. Eğitim verisi: Türkçe için özelleştirilmiş cross-encoder sayısı hâlâ sınırlıdır; çok dilli BGE-Reranker veya çeviri ile artırılmış veri en pratik başlangıç noktasıdır. Puan kalibrasyonu: farklı modellerin skorları doğrudan karşılaştırılamaz, eşik değerleri kendi veri kümenizde belirlenmelidir. İpucu: Sentence-Transformers kütüphanesinin CrossEncoder sınıfıyla yalnızca birkaç satır Python koduyla yerel model çalıştırılabilir.

help Sıkça Sorulan Sorular

  • check_circle Cross-encoder ne zaman kullanmak gerekir? Retrieval doğruluğu kritik olduğunda (hukuki, tıbbi, finansal arama) ve 100-200 adayı yeniden sıralamak için ek gecikme kabul edilebilir olduğunda. Yalnızca bi-encoder ile yetinen sistemlerde MRR kayıpları belirgin olabilir.
  • check_circle Hangi kütüphane ile cross-encoder kullanabilirim? sentence-transformers kütüphanesinin CrossEncoder sınıfı en yaygın seçenektir: from sentence_transformers import CrossEncoder; model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2'). LangChain ve LlamaIndex entegrasyonları da mevcuttur.
  • check_circle Cross-encoder gecikmesini nasıl azaltabilirim? Aday sayısını 50-100 ile sınırlandırın, daha küçük (MiniLM) modeller kullanın, GPU çıkarımı ve toplu işleme (batch) uygulayın. Cohere API gibi bulut çözümleri altyapı yükünü ortadan kaldırır.
  • check_circle Türkçe RAG için hangi cross-encoder önerilir? BGE-Reranker-v2-m3 (BAAI) çok dillidir ve Türkçeyi destekler. Alternatif olarak paraphrase-multilingual-mpnet-base-v2 üzerine Türkçe veriyle ince ayar yapılabilir.
  • check_circle Cross-encoder ile LLM tabanlı reranking arasında fark var mı? LLM tabanlı reranking (ör. RankGPT) daha derin anlayış sunar ama çok daha pahalıdır. Cross-encoder, maliyet-doğruluk dengesinde production sistemleri için pratik optimum noktasıdır.