Classificação de texto com BERT
Transformers da HuggingFace, AutoTokenizer, AutoModelForSequenceClassification e ajuste fino.
Classificação de texto com BERT é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Os limites das representações vetoriais estáticas
Word2Vec e GloVe atribuem um vetor fixo a cada palavra. Mas uma mesma palavra pode ter significados diferentes em "margem do rio" e "banco de poupança". Modelos contextuais como BERT resolvem esse problema.
O que é BERT
BERT é um modelo baseado em transformadores que lê uma frase inteira de uma vez e produz representações vetoriais contextuais. Pré-treinado com uma enorme quantidade de texto, ele pode ser ajustado para tarefas como classificação.
A biblioteca de transformadores da Hugging Face
A biblioteca transformers oferece acesso fácil ao BERT e a milhares de modelos pré-treinados, com classes consistentes para tokenizadores e modelos.
from transformers import AutoTokenizer, AutoModelForSequenceClassification
name = "distilbert-base-uncased-finetuned-sst-2-english"
tokenizer = AutoTokenizer.from_pretrained(name)
model = AutoModelForSequenceClassification.from_pretrained(name)AutoTokenizer
AutoTokenizer carrega o tokenizador correto para um modelo. Ele divide o texto em unidades de subpalavras e as mapeia para os identificadores que o modelo espera.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
print(tokenizer.tokenize("unbelievable"))
# subwords like ["un", "##bel", "##ievable"]AutoModelForSequenceClassification
AutoModelForSequenceClassification carrega o BERT com uma camada de classificação sobre ele, produzindo uma pontuação por classe para toda a sequência.
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased-finetuned-sst-2-english"
)Tokenizando a entrada
Chame o tokenizador no seu texto com truncation, padding e return_tensors para obter tensores prontos para o modelo. O truncamento limita entradas longas; o preenchimento alinha os comprimentos dos lotes.
inputs = tokenizer(
"This movie was fantastic!",
truncation=True,
padding=True,
return_tensors="pt",
)
print(inputs["input_ids"].shape)As unidades especiais
O BERT adiciona automaticamente unidades especiais: [CLS] no início (o seu estado oculto resume a sequência) e [SEP] entre ou depois das frases. O classificador lê a representação de [CLS].
Executando o modelo
Passe as entradas tokenizadas ao modelo para obter pontuações brutas, isto é, as pontuações de classe não normalizadas.
import torch
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
print(logits)Das pontuações às previsões
Aplique softmax às pontuações para obter probabilidades e depois use argmax para obter o índice da classe prevista. Mapeie esse índice para um rótulo.
import torch
probs = torch.softmax(logits, dim=-1)
pred = torch.argmax(probs, dim=-1).item()
print(model.config.id2label[pred])Ajuste fino para a sua tarefa
Para um conjunto de dados personalizado, ajuste o BERT treinando a camada de classificação (e, opcionalmente, o modelo inteiro) com os seus exemplos rotulados. A API Trainer gerencia o ciclo de treinamento.
from transformers import Trainer, TrainingArguments
args = TrainingArguments(output_dir="out", num_train_epochs=3)
trainer = Trainer(model=model, args=args, train_dataset=train_ds)
trainer.train()O atalho do fluxo de processamento
Para inferência rápida, o auxiliar pipeline reúne tokenização, execução e decodificação em uma única chamada, ideal para criar protótipos.
from transformers import pipeline
clf = pipeline("sentiment-analysis")
print(clf("I love this product!"))
# [{"label": "POSITIVE", "score": 0.99...}]Verificação rápida
Teste os seus conhecimentos sobre BERT.
Recapitulação
Recapitulação: BERT produz representações vetoriais contextuais por meio de transformadores. Use AutoTokenizer para tokenizar com truncation/padding/return_tensors e AutoModelForSequenceClassification para obter pontuações brutas. Converta as pontuações usando softmax e depois argmax. Faça o ajuste fino com Trainer ou crie protótipos rapidamente com pipeline.
Perguntas Frequentes
A aula “Classificação de texto com BERT” é grátis?
Sim — o texto completo de “Classificação de texto com BERT” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Classificação de texto com BERT”?
Transformers da HuggingFace, AutoTokenizer, AutoModelForSequenceClassification e ajuste fino. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Classificação de texto com BERT”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Word2Vec: Skip-gram e CBOW
- Embeddings GloVe e FastText
- Classificação de texto com BERT
- Similaridade semântica e embeddings de sentenças