Sobes.tech
Middle — Senior

Kuidas teha BERT-i peenhäälestus klassifikatsioonitöö jaoks? Mida võtta väljundist?

sobes.tech AI

Vastus AI-lt

Selleks, et BERT-i peenhäälestamine klassifikatsiooniprobleemile sobivaks teha, kasutatakse tavaliselt [CLS] spetsiaalset tokenit, mida mudel kasutab kogu järjestuse teabe koondamiseks.

Peamised sammud:

  1. Lisada klassifikatsioonikiht BERT-i peale — tavaliselt täisühendatud kiht (lineaarne kiht), mis võtab BERT-i väljundkihist [CLS] tokeni vektori.

  2. Sisendandmed antakse BERT-ile koos [CLS] tokeniga alguses.

  3. Võtta [CLS] emba viimase varjatud kihi BERT-ist. See vektor, näiteks suurusega 768 (baasmudelil), sisaldab kogu järjestuse kokkuvõtet.

  4. Saata see vektor klassifikaatorile (näiteks lineaarne + softmax mitmeklassilise klassifikatsiooni jaoks).

  5. Treeni kogu mudelit (BERT + klassifikaator) koos sihtülesande jaoks, kasutades sobivat kaotust (näiteks CrossEntropyLoss).

Näide PyTorchis:

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

Seega võtke klassifikatsiooniks just [CLS]-tokeni väljundi viimase kihist BERT-ist.