Senior
Co je to přístup BERT-as-a-reranker?
sobes.tech AI
Odpověď od AI
BERT-jako-re-ranker — je přístup v oblasti vyhledávání informací, při kterém se předem natrénovaný model BERT používá k přehodnocení (přeřazení) seznamu dokumentů získaných v první fázi vyhledávání. Nejprve tradiční vyhledávač (například BM25) vrátí sadu relevantních dokumentů pro dotaz. Poté BERT analyzuje páry dotaz-dokument, hodnotí jejich relevanci s ohledem na kontext a sémantiku, a dokumenty v seznamu přeuspořádá, čímž zlepší kvalitu řazení.
Tento přístup umožňuje zvýšit přesnost vyhledávání, zejména u složitých dotazů, kde je důležitý hluboký kontext. Nicméně, vyžaduje značné výpočetní zdroje, a proto se často aplikuje pouze na nejlepších výsledcích první fáze.
Příklad použití:
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
query = "aplikace strojového učení"
documents = ["Úvod do ML", "Průvodce hlubokým učením", "Recepty na vaření"]
# Předběžné vyhledávání vrací dokumenty
# Nyní BERT hodnotí relevanci každého dokumentu
scores = []
for doc in documents:
inputs = tokenizer.encode_plus(query, doc, return_tensors='pt')
outputs = model(**inputs)
score = outputs.logits.softmax(dim=1)[0][1].item() # pravděpodobnost relevance
scores.append((doc, score))
# Seřadíme dokumenty podle skóre sestupně
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)