Sobes.tech
Senior

Ի՞նչ է BERT-as-a-reranker մոտեցումը։

sobes.tech AI

Պատասխան AI-ից

BERT-որպես-վերակարգիչ — սա տեղեկատվական որոնման մոտեցում է, որտեղ նախապատրաստված BERT մոդելը օգտագործվում է առաջին փուլում ստացված փաստաթղթերի ցանկը վերանայելու (վերակարգավորելու) համար: Նախ, ավանդական որոնիչը (օրինակ՝ BM25) վերադարձնում է հարցման համար համապատասխան փաստաթղթերի հավաքածու: Այնուհետև, BERT-ը վերլուծում է հարցում-փաստաթուղթ զույգերը, գնահատում դրանց համապատասխանությունը՝ հաշվի առնելով կոնտեքստը և սեմանտիկան, և վերակազմավորում փաստաթղթերի ցանկը՝ բարելավելով դասակարգման որակը:

Այս մոտեցումը թույլ է տալիս բարձրացնել որոնման ճշգրտությունը, հատկապես բարդ հարցումների դեպքում, որտեղ կարևոր է խորը կոնտեքստը: Սակայն, այն պահանջում է զգալի հաշվարկային ռեսուրսներ, ուստի հաճախ կիրառվում է միայն առաջին փուլում լավագույն արդյունքների վրա:

Օգտագործման օրինակ՝

from transformers import BertTokenizer, BertForSequenceClassification
import torch

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

query = "մեքենայական ուսուցման կիրառություններ"
documents = ["ML-ի ներկայացում", "խոր ուսուցման ուղեցույց", "Խոհարարական ռեցեպտներ"]

# Նախնական որոնումը վերադարձնում է փաստաթղթեր
# Հիմա, BERT-ը գնահատում է յուրաքանչյուր փաստաթղթի համապատասխանությունը
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()  # համապատասխանության հավանականություն
    scores.append((doc, score))

# Փաստաթղթերը դասակարգում ենք՝ նվազող ըստ գնահատականի
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)