Sobes.tech
Middle

Használható-e a BERT egy osztályozóval együtt az osztályozási feladathoz?

sobes.tech MI

Válasz az MI-től

Igen, a BERT széles körben használják osztályozókkal együtt szövegosztályozási feladatokhoz. Általában egy előre betanított BERT modellt vesznek, átengedik rajta a bemeneti szöveget, kinyerik a beágyazásokat (például a CLS token kimeneti rétegéből), majd ezeket az beágyazásokat egy osztályozóra — például egy teljesen összekapcsolt rétegre softmax-szal a többosztályos osztályozáshoz — adják be.

Példa Pythonban a transformers könyvtár használatával:

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

class BertClassifier(nn.Module):
    def __init__(self, pretrained_model_name='bert-base-uncased', num_classes=2):
        super().__init__()
        self.bert = BertModel.from_pretrained(pretrained_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

Így a BERT mint egy erőteljes jellemzők kinyerő működik, a klasszifikátor pedig egy réteg, amely ezek alapján oldja meg a osztályozási feladatot.