BERT-as-a-reranker yondashuvi nima?
sobes.tech AI
AIdan javob
BERT-ya-reranker — bu axborot qidiruvda yondashuv bo‘lib, unda oldindan o‘qitilgan BERT modeli topilgan hujjatlar ro‘yxatini qayta baholash (qayta tartiblash) uchun ishlatiladi. Avvalo, an’anaviy qidiruv dvigateli (masalan, BM25) so‘rov uchun muhim bo‘lgan hujjatlar to‘plamini qaytaradi. Keyin, BERT so‘rov-hujjat juftliklarini tahlil qiladi, ularning muhimligini kontekst va semantikani hisobga olgan holda baholaydi va hujjatlarni ro‘yxatda qayta tartibga soladi, reyting sifatini yaxshilash uchun.
Ushbu yondashuv, ayniqsa, chuqur kontekst muhim bo‘lgan murakkab so‘rovlar uchun qidiruv aniqligini oshirish imkonini beradi. Biroq, bu katta hisoblash resurslarini talab qiladi, shuning uchun odatda faqat birinchi bosqichning eng yuqori natijalariga qo‘llaniladi.
Foydalanish misoli:
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')
query = "mashinalarni o‘qitish ilovalari"
documents = ["ML ga kirish", "Deep learning bo‘yicha qo‘llanma", "Ovqat pishirish retseptlari"]
# Oldindan qidiruv hujjatlarni qaytaradi
# Endi BERT har bir hujjatning muhimligini baholaydi
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() # muhimlik ehtimoli
scores.append((doc, score))
# Hujjatlarni ballariga ko‘ra kamayish tartibida saralash
reranked = sorted(scores, key=lambda x: x[1], reverse=True)
print(reranked)