Sobes.tech
Senior

Kas yra BERT-as-a-reranker požiūris?

sobes.tech AI

Atsakymas iš AI

BERT-ka-ka-ruošiamas — tai požiūris į informacijos paiešką, kuriame iš anksto apmokytas BERT modelis naudojamas pervertinti (perrikiuoti) pirmojo etapo paieškoje gautą dokumentų sąrašą. Pirmiausia, tradicinė paieškos mašina (pvz., BM25) grąžina atitinkančius dokumentus užklausai. Tada BERT analizuoja užklausos ir dokumento poras, įvertindamas jų atitiktį, atsižvelgiant į kontekstą ir semantiką, ir perrikiuoja dokumentus sąraše, pagerindamas reitingo kokybę.

Šis požiūris leidžia padidinti paieškos tikslumą, ypač sudėtingų užklausų atvejais, kur svarbus gilus kontekstas. Tačiau jis reikalauja reikšmingų skaičiavimo išteklių, todėl dažnai taikomas tik pirmojo etapo geriausiems rezultatams.

Naudojimo pavyzdys:

from transformers import BertTokenizer, BertForSequenceClassification
import torch

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

query = "mašininio mokymosi taikymai"
documents = ["Įvadas į ML", "Gilus mokymasis vadovas", "Virimo receptai"]

# Išankstinis paieška grąžina dokumentus
# Dabar BERT įvertina kiekvieno dokumento atitiktį
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()  # atitikties tikimybė
    scores.append((doc, score))

# Rikiuojame dokumentus pagal balą mažėjimo tvarka
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)