Pemeringkatan Ulang dengan Cross-Encoder
Ambil 50 teratas dengan embedding murah, lalu beri peringkat ulang 5 teratas menggunakan cross-encoder yang lebih lambat untuk presisi lebih tinggi.
Pemeringkatan Ulang dengan Cross-Encoder adalah pelajaran AI Agents gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Agents, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Agents mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Mengapa Melakukan Pemeringkatan Ulang?
Kemiripan embedding adalah tahap awal yang cepat dan kasar. Sering kali, proses ini mengambil potongan yang memiliki KEYWORDS yang sama dengan query, tetapi sebenarnya tidak relevan dengan QUESTION.
Pemeringkat ulang menerima pasangan (query, potongan) dan menghitung skor relevansi yang jauh lebih tepat.
Enkoder Ganda vs Enkoder Silang
Dua arsitektur untuk kemiripan teks:
- Enkoder ganda — menyematkan query dan potongan secara terpisah, lalu menghitung kosinus. Cepat (vektor dibuat sekali dan digunakan kembali), tetapi kurang akurat.
- Enkoder silang — menjalankan (query, potongan) secara bersamaan melalui model. Lambat (untuk setiap pasangan), tetapi jauh lebih akurat.
Pengambilan Dua Tahap
Pola yang menggabungkan keduanya:
- Enkoder ganda mengambil 50 kandidat teratas dengan cepat
- Enkoder silang melakukan pemeringkatan ulang hingga tersisa 5 teratas
- 5 teratas dimasukkan ke dalam instruksi LLM
Anda mendapatkan kecepatan enkoder ganda sekaligus presisi enkoder silang.
Menggunakan Cohere Rerank
Enkoder silang untuk produksi yang paling mudah digunakan:
import cohere
co = cohere.Client(COHERE_KEY)
results = co.rerank(
model='rerank-multilingual-v3.0',
query='What is the refund policy?',
documents=top_50_chunks,
top_n=5
)
for r in results.results:
print(r.index, r.relevance_score, top_50_chunks[r.index])Pemeringkat Ulang Sumber Terbuka
BGE Reranker adalah pilihan OSS terkemuka:
from sentence_transformers import CrossEncoder
model = CrossEncoder('BAAI/bge-reranker-base')
pairs = [(query, chunk) for chunk in candidates]
scores = model.predict(pairs)
ranked = [c for _, c in sorted(zip(scores, candidates), reverse=True)][:5]Voyage Rerank
import voyageai
vo = voyageai.Client(api_key=VOYAGE_KEY)
res = vo.rerank(
query=query,
documents=candidates,
model='rerank-2',
top_k=5
)Kapan Pemeringkatan Ulang Membantu
- Daftar kandidat yang panjang (50–200)
- Perbedaan relevansi yang samar
- Kueri yang mencakup negasi atau perbandingan
- Kasus multibahasa
Kapan Tidak Membantu
- Kumpulan kandidat yang sudah sempit (5 teratas dari enkoder ganda)
- Kueri dengan waktu tunda yang sangat kritis dan taruhan rendah
Kompromi Biaya
Enkoder silang menjalankan satu inferensi untuk setiap pasangan. Melakukan pemeringkatan ulang terhadap 50 kandidat berarti 50 panggilan model (murah dengan Cohere/Voyage, tetapi lebih lambat jika dihosting sendiri).
Sediakan 50–200 kandidat untuk pemeringkatan ulang; jumlah yang lebih besar jarang sepadan.
Integrating into LangChain
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import CohereRerank
compressor = CohereRerank(top_n=5)
retriever = ContextualCompressionRetriever(
base_compressor=compressor,
base_retriever=vector_retriever
)Integrating into LlamaIndex
from llama_index.postprocessor.cohere_rerank import CohereRerank
rerank = CohereRerank(top_n=5)
query_engine = index.as_query_engine(
similarity_top_k=20,
node_postprocessors=[rerank]
)Pemeringkatan Ulang yang Memperhatikan Keberagaman
Terkadang Anda menginginkan hasil yang beragam, bukan hanya hasil dengan skor tertinggi (yang mungkin hampir duplikat). MMR (Relevansi Marginal Maksimal) menyeimbangkan skor dengan keberagaman:
from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)Pola Dua Tahap
Mengapa menggunakan enkoder ganda + enkoder silang, bukan hanya salah satunya?
Ringkasan
Enkoder ganda mengambil 50 hasil, lalu enkoder silang melakukan pemeringkatan ulang hingga tersisa 5. Gunakan Cohere atau Voyage dalam produksi; gunakan BGE OSS jika menghosting sendiri. Akurasi meningkat secara signifikan dengan tambahan biaya yang sedang.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pemeringkatan Ulang dengan Cross-Encoder” gratis?
Ya — teks lengkap “Pemeringkatan Ulang dengan Cross-Encoder” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Agents, upgrade ke CoddyKit PRO. Kursus AI Agents mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Pemeringkatan Ulang dengan Cross-Encoder”?
Ambil 50 teratas dengan embedding murah, lalu beri peringkat ulang 5 teratas menggunakan cross-encoder yang lebih lambat untuk presisi lebih tinggi. Kamu berlatih AI Agents dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AI Agents?
Tidak diperlukan pengalaman sebelumnya. AI Agents di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Pemeringkatan Ulang dengan Cross-Encoder” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Agents ini?
Ya. Setiap pelajaran AI Agents menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pemeringkatan Ulang dengan Cross-Encoder
- HyDE: Embedding Dokumen Hipotetis
- Pengambilan Multi-Vektor (ColBERT)
- Evaluasi RAG (RAGAS, Recall@K)