reranker
En reranker er en sekundær model, der tager en liste af kandidater fra en indledende søgning og omrangere dem efter relevans ved hjælp af en mere præcis, men langsommere, metode.
Kort fortalt
En reranker forbedrer søgeresultater ved at genrangere dem med en mere præcis model, der tager bedre hensyn til konteksten.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- riːˈræŋkər
Betydninger
1- 1
En model eller komponent i et informationssøgnings- eller RAG-system, der tager en liste af kandidater fra en indledende søgning og omrangere dem ved at beregne en mere nøjagtig relevansscore for hver, ofte ved brug af en cross-encoder eller en anden avanceret model.
- Efter den indledende søgning med embeddings blev en reranker baseret på BERT brugt til at placere de mest relevante dokumenter øverst. — Oprettet til eksempel
- Rerankeren forbedrede præcisionen med 15% ved at genrangere top-100 dokumenterne. — Oprettet til eksempel
Hvornår bruges det
I RAG-systemer anvendes en reranker efter en hurtig indledende søgning (f.eks. med embeddings) for at øge præcisionen. Den gennemgår typisk top-k dokumenter og rangerer dem igen med en cross-encoder eller lignende model, hvilket forbedrer kvaliteten af de dokumenter, der sendes til LLM'en.
Kodeeksempel
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_name = "cross-encoder/ms-marco-MiniLM-L-6-v2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
def rerank(query, documents):
pairs = [[query, doc] for doc in documents]
inputs = tokenizer(pairs, padding=True, truncation=True, return_tensors="pt")
scores = model(**inputs).logits.squeeze(-1).detach().numpy()
ranked = sorted(zip(scores, documents), key=lambda x: x[0], reverse=True)
return [doc for _, doc in ranked]Eksempel på brug af en cross-encoder reranker fra Hugging Face. Modellen 'cross-encoder/ms-marco-MiniLM-L-6-v2' tager en query og en liste af dokumenter og returnerer dem sorteret efter relevans.
Oprindelse
Sammensat af det engelske præfiks 're-' (igen) og 'ranker' (en der rangerer), dannet efter mønster af 're-rank'.