Pemeringkatan Semula dengan Pengekod Silang
Dapatkan 50 teratas menggunakan embedding murah, kemudian susun semula 5 teratas dengan pengekod silang yang lebih perlahan untuk ketepatan lebih tinggi.
Pemeringkatan Semula dengan Pengekod Silang ialah pelajaran Ejen AI percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Ejen AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Sebahagian daripada pelajaran ini belum diterjemahkan dan dipaparkan dalam bahasa Inggeris.
Mengapa Menyusun Semula Kedudukan?
Keserupaan pembenaman ialah langkah pertama yang pantas dan kasar. Kaedah ini sering mengambil pecahan yang berkongsi KEYWORDS dengan query tetapi sebenarnya tidak berkaitan dengan QUESTION.
Pemeringkat semula mengambil pasangan (query, pecahan) dan mengira skor kerelevanan yang jauh lebih tepat.
Pengekod Dwi berbanding Pengekod Silang
Dua seni bina untuk keserupaan teks:
- Pengekod dwi — membenamkan query dan pecahan secara berasingan, kemudian mengira kosinus. Pantas (vektorkan sekali dan gunakan semula), tetapi kurang tepat.
- Pengekod silang — menjalankan (query, pecahan) bersama-sama melalui model. Perlahan (bagi setiap pasangan), tetapi jauh lebih tepat.
Pengambilan Dua Peringkat
Pola yang menggabungkan kedua-duanya:
- Pengekod dwi mendapatkan 50 calon teratas dengan pantas
- Pengekod silang menyusun semula kedudukan kepada 5 teratas
- 5 teratas dimasukkan ke dalam gesaan LLM
Anda memperoleh kelajuan pengekod dwi serta ketepatan pengekod silang.
Menggunakan Cohere Rerank
Pengekod silang untuk pengeluaran 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 Semula Sumber Terbuka
Pemeringkat Semula BGE ialah pilihan OSS yang 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
)Apabila Penyusunan Semula Kedudukan Membantu
- Senarai calon yang panjang (50-200)
- Perbezaan kerelevanan yang halus
- Query yang mengandungi penafian atau perbandingan
- Kes berbilang bahasa
Apabila Ia Tidak Membantu
- Set calon yang sudah kecil (5 teratas daripada pengekod dwi)
- Query yang kritikal terhadap kependaman dan berisiko rendah
Pertukaran Kos
Pengekod silang menjalankan satu inferens bagi setiap pasangan. Menyusun semula kedudukan 50 calon bermakna 50 panggilan model (murah dengan Cohere/Voyage, tetapi lebih perlahan jika dihoskan sendiri).
Peruntukkan 50-200 calon untuk penyusunan semula; jumlah yang lebih besar jarang berbaloi.
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]
)Penyusunan Semula Kedudukan Berasaskan Kepelbagaian
Kadang-kadang anda mahukan hasil yang pelbagai, bukan sekadar hasil dengan skor tertinggi (yang mungkin hampir sama). MMR (kerelevanan marginal maksimum) mengimbangi skor dengan kepelbagaian:
from langchain.vectorstores import Chroma
results = store.max_marginal_relevance_search(query, k=5, fetch_k=20, lambda_mult=0.5)Pola Dua Peringkat
Mengapa menggunakan pengekod dwi + pengekod silang dan bukannya satu sahaja?
Imbas Kembali
Pengekod dwi mendapatkan 50 hasil, manakala pengekod silang menyusun semula kedudukannya kepada 5. Gunakan Cohere atau Voyage dalam persekitaran pengeluaran; BGE OSS jika dihoskan sendiri. Peningkatan ketepatan yang ketara dengan kos tambahan yang sederhana.
Pelajari Ejen AI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 60
- Pelajaran
- 239
Soalan Lazim
Adakah pelajaran “Pemeringkatan Semula dengan Pengekod Silang” percuma?
Ya — teks penuh “Pemeringkatan Semula dengan Pengekod Silang” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Ejen AI, tingkat taraf kepada CoddyKit PRO. Kursus Ejen AI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pemeringkatan Semula dengan Pengekod Silang”?
Dapatkan 50 teratas menggunakan embedding murah, kemudian susun semula 5 teratas dengan pengekod silang yang lebih perlahan untuk ketepatan lebih tinggi. Anda berlatih Ejen AI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Ejen AI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Ejen AI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Pemeringkatan Semula dengan Pengekod Silang” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Ejen AI ini?
Ya. Setiap pelajaran Ejen AI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pemeringkatan Semula dengan Pengekod Silang
- HyDE: Embedding Dokumen Hipotesis
- Pengambilan Berbilang Vektor (ColBERT)
- Penilaian RAG (RAGAS, Recall@K)