Sobes.tech
Senior

Čo je prístup BERT-as-a-reranker?

sobes.tech AI

Odpoveď od AI

BERT-ako-rebríček — je prístup v oblasti vyhľadávania informácií, pri ktorom sa predtrénovaný model BERT používa na prehodnotenie (preusporiadanie) zoznamu dokumentov získaných v prvom štádiu vyhľadávania. Najskôr tradičný vyhľadávač (napríklad BM25) vráti súbor relevantných dokumentov pre dopyt. Následne BERT analyzuje páry dopyt-dokument, hodnotí ich relevantnosť s prihliadnutím na kontext a sémantiku, a dokumenty v zozname preusporiada, čím zlepší kvalitu radenia.

Tento prístup umožňuje zvýšiť presnosť vyhľadávania, najmä pre zložité dopyty, kde je dôležitý hlboký kontext. Vyžaduje však značné výpočtové zdroje, preto sa často aplikuje iba na najlepšie výsledky prvého štádia.

Príklad použitia:

from transformers import BertTokenizer, BertForSequenceClassification
import torch

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

query = "aplikácie strojového učenia"
documents = ["Úvod do ML", "Príručka pre hlboké učenie", "Recepty na varenie"]

# Predbežné vyhľadávanie vracia dokumenty
# Teraz BERT hodnotí relevantnosť 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()  # pravdepodobnosť relevantnosti
    scores.append((doc, score))

# Zoradíme dokumenty podľa skóre zostupne
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)