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. 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'.

Afledte ord

2