Mis on BERT-as-a-reranker lähenemine?
sobes.tech AI
Vastus AI-lt
BERT-kui-reranker on teabeotsingu lähenemisviis, kus eelnevalt treenitud BERT-mudel kasutatakse dokumentide loendi ümberhindamiseks (rerankimiseks), mis on saadud esimese otsinguetapi tulemusena. Alguses tagastab traditsiooniline otsingumootor (näiteks BM25) asjakohaste dokumentide kogumi päringule. Seejärel analüüsib BERT päringu ja dokumendi paare, hinnates nende asjakohasust konteksti ja semantika arvestades ning ümberpaigutades dokumente nimekirjas, parandades seeläbi järjestamise kvaliteeti.
Selline lähenemine võimaldab tõsta otsingu täpsust, eriti keerukate päringute puhul, kus oluline on sügav kontekst. Kuid see nõuab märkimisväärseid arvutusressursse, mistõttu kasutatakse seda sageli ainult esimese etapi piiratud arvu parimate tulemuste jaoks.
Näide kasutamisest:
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
query = "machine learning applications"
documents = ["Intro to ML", "Deep learning tutorial", "Cooking recipes"]
# Esialgne otsing tagastab dokumendid
# Nüüd hindab BERT iga dokumendi asjakohasust
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() # asjakohasuse tõenäosus
scores.append((doc, score))
# Sorteerime dokumendid skoori järgi kahanevalt
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)