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.