Sobes.tech
Senior

Mi az a BERT-as-a-reranker megközelítés?

sobes.tech MI

Válasz az MI-től

BERT-ként-újrakereső — ez egy megközelítés az információkeresésben, ahol egy előzetesen betanított BERT-modellt használnak a keresés első szakaszában kapott dokumentumok listájának újraértékelésére (újrarendezésére). Először egy hagyományos keresőmotor (például BM25) adja vissza a kéréshez releváns dokumentumokat. Ezután a BERT elemzi a kérés-dokument párokat, értékelve azok relevanciáját a kontextus és a szemantika figyelembevételével, és újrarendezi a dokumentumokat a listában, javítva a rangsorolás minőségét.

Ez a megközelítés lehetővé teszi a keresés pontosságának növelését, különösen összetett kérdések esetén, ahol mély kontextus fontos. Azonban jelentős számítási erőforrásokat igényel, ezért gyakran csak az első szakasz legjobb eredményeire alkalmazzák.

Használati példa:

from transformers import BertTokenizer, BertForSequenceClassification
import torch

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')

query = "gép tanulási alkalmazások"
documents = ["ML bevezetése", "Deep learning útmutató", "Főzési receptek"]

# Az előzetes keresés dokumentumokat ad vissza
# Most a BERT értékeli minden dokumentum relevanciáját
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()  # relevancia valószínűség
    scores.append((doc, score))

# Dokumentumok rendezése a pontszám szerint csökkenő sorrendben
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)