Sobes.tech
Middle — Senior

BERT-i təsnifat tapşırığı üçün necə fine-tune etmək olar? Çıxışdan nə götürmək lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

BERT-in təsnifat tapşırığı üçün incə tənzimləməsi zamanı adətən xüsusi [CLS] tokeninin çıxışı götürülür, bu model tərəfindən bütün ardıcıllıq haqqında məlumatların toplanması üçün istifadə olunur.

Əsas addımlar:

  1. BERT üzərinə təsnifat qatını əlavə edin — adətən, bu, BERT-in son qatından [CLS] tokeninə uyğun olan vektoru alan tam əlaqəli qatdır.

  2. Giriş məlumatları BERT-ə [CLS] tokeni ilə başlanğıcda verilir.

  3. BERT-in son gizli qatından [CLS] embeddingini çıxarın. Bu vektor, məsələn, 768 ölçülü (əsas model üçün), bütün ardıcıllıq haqqında sıxılmış məlumatı ehtiva edir.

  4. Bu vektoru təsnifatçıya göndərin (məsələn, linear + softmax çox sinifli təsnifat üçün).

  5. Bütün modeli (BERT + təsnifatçı) birlikdə məqsədli tapşırıq üçün öyrədin, uyğun itki funksiyasından istifadə etməklə (məsələn, CrossEntropyLoss).

PyTorch nümunəsi:

from transformers import BertModel, BertTokenizer
import torch.nn as nn

class BertClassifier(nn.Module):
    def __init__(self, bert_model_name, num_classes):
        super().__init__()
        self.bert = BertModel.from_pretrained(bert_model_name)
        self.classifier = nn.Linear(self.bert.config.hidden_size, num_classes)

    def forward(self, input_ids, attention_mask):
        outputs = self.bert(input_ids=input_ids, attention_mask=attention_mask)
        cls_output = outputs.last_hidden_state[:, 0, :]  # [CLS] token
        logits = self.classifier(cls_output)
        return logits

Beləliklə, təsnifat üçün xüsusi olaraq BERT-in son qatından [CLS] tokeninin çıxışı götürülür.