Sobes.tech
Middle

Pode-se usar BERT juntamente com um classificador para a tarefa de classificação?

sobes.tech IA

Resposta da IA

Sim, o BERT é amplamente utilizado juntamente com classificadores para tarefas de classificação de texto. Normalmente, pega-se um modelo BERT pré-treinado, passa-se o texto de entrada por ele, obtêm-se as embeddings (por exemplo, a partir da camada de saída do token CLS), e depois alimenta-se essas embeddings a um classificador — por exemplo, uma camada totalmente conectada com softmax para classificação multiclasse.

Exemplo em Python usando a biblioteca transformers:

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, :]  # token CLS
        logits = self.classifier(cls_output)
        return logits

Assim, o BERT atua como um extrator de características poderoso, e o classificador como uma camada que resolve a tarefa de classificação com base nessas características.