Bi-Encoder (Çift Kodlayıcı)

Sorgu ve belgeyi bağımsız olarak vektöre dönüştüren çift-kule sinir ağı; büyük ölçekli semantik aramada retrieval bileşeni.

Bi-encoder (çift kodlayıcı), iki ayrı metin parçasını birbirinden bağımsız olarak kodlayan ve her birini sabit boyutlu bir vektör temsiline dönüştüren çift kule (two-tower) sinir ağı mimarisidir. Semantik arama, soru-cevap ve RAG sistemlerinin retrieval aşamasında temel yapı taşı olarak kullanılır; sorgu ile belge aynı vektör uzayında temsil edilir ve alaka düzeyi bu iki vektör arasındaki geometrik yakınlıkla ölçülür. Mimari genellikle ağırlıkları paylaşan iki transformer kulesinden oluşur ve bu yönüyle Siyam ağı (siamese network) ailesine girer. Sorgu ve belge ayrı ayrı işlenir; token çıktıları ortalama havuzlama (mean pooling) ya da [CLS] token'ı ile tek bir vektöre indirgenir. Benzerlik kosinüs benzerliği veya iç çarpımla hesaplanır. Belgeler korpus hazırlanırken bir kez kodlanır ve FAISS, pgvector ya da Milvus gibi vektör veritabanlarına indekslenir. Yeni bir sorgu geldiğinde yalnızca sorgu vektörü anlık üretilir; yaklaşık en yakın komşu (ANN) araması milisaniyeler içinde en yakın belgeleri döndürür. Bi-encoder'ın en kritik avantajı bu asimetrik hesaplama modelidir: milyonlarca belge için vektörler tek seferde üretilip saklanır, çevrimiçi gecikme yalnızca sorgu kodlamasını kapsar. Bu özellik onu büyük ölçekli üretim sistemleri için vazgeçilmez kılar. Doğruluk tarafında ise cross-encoder'ın gerisinde kalır. Cross-encoder sorgu-belge çiftini tek bir ileri geçişte birlikte işleyip token düzeyinde çapraz dikkat uygular; bu nedenle nüanslı anlam ilişkilerini daha iyi yakalar, ancak her çift için yeniden hesaplama gerektirir. Retrieve-then-rerank boru hattında bi-encoder ilk aşamada geniş bir aday kümesi getirir, cross-encoder ikinci aşamada bu adayları hassas biçimde yeniden sıralar. Eğitimde kontrastif öğrenme teknikleri kullanılır: MultipleNegativesRankingLoss (MNRL), triplet loss, in-batch negatives ve zor negatif madenciliği (hard negative mining). Sentence-BERT (SBERT, 2019) bu alanın öncü çalışmasıdır; Dense Passage Retrieval (DPR) yaklaşımı ise sorgu ve belge için ayrı kuleler kullanarak açık alan soru-cevap sistemlerinde standart haline gelmiştir. Günümüzde E5, BGE, GTE ve Nomic Embed gibi modeller MTEB kıyaslamalarında öne çıkar; multilingual-e5 ve bge-m3 gibi çok dilli sürümler Türkçe dahil onlarca dili destekler.

Bi-Encoder Nedir?

Bi-encoder, iki ayrı metin parçasını (sorgu ve belge) bağımsız olarak kodlayan ve her birini sabit boyutlu bir vektör temsiline dönüştüren çift kule sinir ağı mimarisidir. Her kule genellikle BERT benzeri bir transformer modelden oluşur ve girdiyi bağımsız olarak işler; iki vektör arasındaki benzerlik kosinüs benzerliği veya iç çarpım ile hesaplanır. Bu mimari semantik arama, bilgi erişimi ve soru-cevap sistemlerinde temel retrieval bileşeni olarak kullanılır. Cross-encoder ile kıyaslandığında bi-encoder çok daha hızlıdır: belgeler önceden vektöre dönüştürülerek FAISS veya pgvector gibi vektör veritabanlarında indekslenir, sorgu geldiğinde yalnızca sorgu vektörü hesaplanır ve yaklaşık en yakın komşu araması (ANN) ile milisaniyeler içinde sonuç döndürülür. Bu ön hesaplama avantajı bi-encoder'ı milyonlarca belgeden oluşan büyük ölçekli korpuslarda pratik kılar. Doğruluk açısından bi-encoder, token düzeyinde çapraz dikkat mekanizmasından yoksun olduğu için cross-encoder kadar hassas değildir; ancak retrieve-then-rerank boru hattında ilk aşamayı oluşturarak kaliteli bir aday kümesi sunar, ikinci aşamadaki cross-encoder bu adayları hassas sıralama için değerlendirir. Sentence-BERT (SBERT), bi-encoder yaklaşımını NLP literatürüne kazandıran öncü çalışmadır.

Çalışma Prensibi

Bi-encoder mimarisinde iki kule aynı veya farklı ağırlıklara sahip olabilir; çoğunlukla paylaşılan ağırlıklar (siamese network) tercih edilir. Eğitim aşamasında kontrastif öğrenme devreye girer: pozitif çiftler (ilgili sorgu-belge çiftleri) vektör uzayında birbirine yaklaştırılırken negatif çiftler uzaklaştırılır. In-batch negatives, triplet loss veya MultipleNegativesRankingLoss (MNRL) gibi kayıp fonksiyonları sıkça kullanılır; zor negatif madenciliği ile modelin yüzeysel benzerliğe kanmaması hedeflenir. Çıkarım aşamasında belge kümesi bir kez kodlanarak saklanır (çevrimdışı indeksleme); yeni bir sorgu geldiğinde yalnızca sorgu vektörü anlık üretilir ve vektör veritabanında yaklaşık en yakın komşu araması yapılır. Bu asimetrik hesaplama yükü, gerçek zamanlı sistemlerde belirleyici bir verimlilik avantajı yaratır. Alan odaklı ince ayar (domain-specific fine-tuning) ile bi-encoder modelleri tıbbi, hukuki veya teknik alanlara özgü kelime dağarcığını ve anlam ilişkilerini öğrenerek genel amaçlı modellerin çok üzerinde başarım elde edebilir.

Retrieve-then-Rerank Boru Hattındaki Rolü

  • check_circle 1. Aday Üretimi (Bi-encoder): Tüm korpustan en yakın top-k belgeyi (örneğin k=100) milisaniyeler içinde getirir. Hız önceliktir, hassasiyet ikinci plandadır.
  • check_circle 2. Hassas Sıralama (Cross-encoder): Bi-encoder'ın döndürdüğü k adayı sorgu ile birlikte token düzeyinde işler ve daha yüksek doğrulukla nihai sıralamayı üretir.
  • check_circle 3. Vektör İndeksleme: Belge vektörleri FAISS veya pgvector'da saklanır. Belgeler çevrimdışı indekslendiği için sorgular anında yanıt alır.
  • check_circle 4. Hibrit Arama Entegrasyonu: BM25 gibi seyrek (sparse) retrieval yöntemleriyle birleştirilerek hem kelime eşleşmesi hem de anlam benzerliği yakalanır.

Avantajlar ve Kısıtlamalar

  • check_circle Hız: Belgeler önceden vektörlendiğinden sorgu başına hesaplama yalnızca sorgu kodlamasından oluşur; büyük ölçekli sistemlerde vazgeçilmezdir.
  • check_circle Ölçeklenebilirlik: Milyonlarca belgelik korpuslarda ANN araması ile gecikme korpus boyutundan neredeyse bağımsız kalır.
  • check_circle Bağlam Sınırlılığı: Sorgu ve belge arasında token düzeyinde çapraz dikkat olmadığından nüanslı anlam ilişkileri kaçabilir; cross-encoder bu boşluğu kapatır.
  • check_circle Eğitim Verisi Bağımlılığı: Yüksek kaliteli alaka etiketleri olmadan ince ayar etkisiz kalabilir; alan verisi kritiktir.

Öne Çıkan Bi-Encoder Modelleri

hub SBERT (Sentence-BERT)

Bi-encoder yaklaşımının temel referans modeli; Siyam ağ yapısıyla eğitilmiştir.

language E5 (Microsoft)

Çok dilli destek ve yüksek MTEB skoru; kurumsal RAG sistemlerinde yaygın.

public GTE (Alibaba)

Genel metin gömme modeli; açık kaynak ve rekabetçi performans.

science BGE (BAAI)

Pekin Yapay Zeka Akademisi tarafından geliştirilen yüksek kaliteli çok dilli gömme modeli; bge-m3 sürümü yoğun ve seyrek aramayı birlikte destekler.

Sık Sorulan Sorular

  • check_circle Bi-encoder ile cross-encoder arasındaki temel fark nedir? Bi-encoder sorgu ve belgeyi bağımsız kodlar, hızlıdır ama daha az hassastır. Cross-encoder ikisini birlikte işler, daha doğrudur fakat her sorgu-belge çifti için yeniden hesaplama gerektirir.
  • check_circle Bi-encoder hangi durumlarda tercih edilmeli? Büyük ölçekli korpuslarda gerçek zamanlı arama gerektiğinde bi-encoder kaçınılmazdır. Milyonlarca belgeden milisaniyeler içinde aday getirmek için ideal yapıdır.
  • check_circle Bi-encoder eğitmek için ne kadar veriye ihtiyaç var? Alan odaklı ince ayar için binlerce ilgili sorgu-belge çifti yeterli olabilir. MNRL kaybı ile in-batch negatives kullanıldığında eğitim verimliliği artar.
  • check_circle RAG sisteminde bi-encoder nasıl konumlanır? RAG boru hattının retrieval aşamasında bi-encoder kullanılır: kullanıcı sorgusunu vektöre çevirir, vektör veritabanında en yakın belgeleri getirir, ardından LLM bu belgeleri bağlam olarak kullanır.
  • check_circle Türkçe için iyi bi-encoder modeli var mı? multilingual-e5-large, bge-m3 ve paraphrase-multilingual-mpnet-base-v2 Türkçe dahil 50 üzeri dili destekler. Özelleştirilmiş Türkçe veri setiyle ince ayar yapılması performansı belirgin biçimde artırır.