Reranking
Reranking er en teknik, hvor en indledende liste af kandidater (ofte fra en retriever) omrangordnes af en mere avanceret model for at forbedre relevans og præcision.
Kort fortalt
Reranking betyder at tage en grov søgeresultatliste og bruge en smartere model til at sætte de bedste resultater øverst.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Proces hvor en sekundær, mere nøjagtig model omrangordner en allerede hentet liste af dokumenter eller svar for at forbedre relevansen i retrieval-systemer.
- I RAG-pipelinen bruges en BERT-baseret reranker til at omrangordne de top-50 dokumenter fra BM25-retrieveren, før de sendes til LLM-generatoren.
- Reranking med en cross-encoder giver typisk højere præcision end blot at stole på en bi-encoders cosine-lighed.
Hvornår bruges det
Reranking anvendes typisk i Retrieval-Augmented Generation (RAG) systemer og søgemaskiner. Efter en hurtig retriever har hentet et sæt kandidater (f.eks. top-100), omrangordner en dyrere, men mere præcis reranker (ofte en cross-encoder) disse for at præsentere de mest relevante for brugeren eller for en downstream-generator.
Formel
score(q, d) = f(q, d) hvor f er en cross-encoder eller anden kompleks model, der beregner relevans.Kodeeksempel
from sentence_transformers import CrossEncoder
model = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')
query = "Hvad er reranking?"
documents = ["Reranking omrangordner resultater.", "En anden tekst."]
pairs = [[query, doc] for doc in documents]
scores = model.predict(pairs)
ranks = sorted(range(len(scores)), key=lambda i: scores[i], reverse=True)Eksempel på brug af cross-encoder til reranking med Sentence-Transformers. Modellen scorer query-dokument-par og resultaterne omrangordnes efter score.
Oprindelse
Fra engelsk 'rerank', sammensat af 're-' (igen) og 'rank' (rangordne).
Afledte ord
2Kilder
2- ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks