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.