Clasificación de texto con BERT
Transformers de HuggingFace, AutoTokenizer, AutoModelForSequenceClassification y ajuste fino.
Clasificación de texto con BERT es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Los límites de los embeddings estáticos
Word2Vec y GloVe asignan a cada palabra un único vector fijo. Pero "bank" tiene significados diferentes en "river bank" y "savings bank". Los modelos contextuales, como BERT, resuelven este problema.
Qué es BERT
BERT es un modelo transformer que lee una oración completa de una vez y produce embeddings sensibles al contexto. Tras preentrenarse con grandes cantidades de texto, puede ajustarse para tareas como la clasificación.
La biblioteca transformers de Hugging Face
La biblioteca transformers proporciona acceso sencillo a BERT y a miles de modelos preentrenados, con clases coherentes para tokenizadores y 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 carga el tokenizador correcto para un modelo. Divide el texto en tokens de subpalabras y los asigna a los ID que espera el modelo.
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
print(tokenizer.tokenize("unbelievable"))
# subwords like ["un", "##bel", "##ievable"]AutoModelForSequenceClassification
AutoModelForSequenceClassification carga BERT con un cabezal de clasificación encima, que genera una puntuación por clase para toda la secuencia.
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained(
"distilbert-base-uncased-finetuned-sst-2-english"
)Tokenización de la entrada
Llame al tokenizador con su texto y los parámetros truncation, padding y return_tensors para obtener tensores listos para el modelo. La truncación limita las entradas largas y el padding alinea las longitudes del lote.
inputs = tokenizer(
"This movie was fantastic!",
truncation=True,
padding=True,
return_tensors="pt",
)
print(inputs["input_ids"].shape)Los tokens especiales
BERT añade automáticamente tokens especiales: [CLS] al principio (su estado oculto resume la secuencia) y [SEP] entre oraciones o después de ellas. El clasificador utiliza la representación de [CLS].
Ejecución del modelo
Pase las entradas tokenizadas al modelo para obtener los logits, las puntuaciones de clase sin procesar y sin normalizar.
import torch
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
print(logits)De logits a predicciones
Aplique softmax a los logits para obtener probabilidades y, después, argmax para obtener el índice de la clase predicha. Asigne ese índice a una etiqueta.
import torch
probs = torch.softmax(logits, dim=-1)
pred = torch.argmax(probs, dim=-1).item()
print(model.config.id2label[pred])Ajuste fino para su tarea
Para un conjunto de datos personalizado, realice un ajuste fino de BERT entrenando el cabezal de clasificación (y, opcionalmente, el modelo completo) con sus ejemplos etiquetados. La API de Trainer gestiona el ciclo de entrenamiento.
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()El atajo pipeline
Para realizar inferencias rápidas, el asistente pipeline integra la tokenización, la ejecución y la decodificación en una sola llamada, ideal para crear prototipos.
from transformers import pipeline
clf = pipeline("sentiment-analysis")
print(clf("I love this product!"))
# [{"label": "POSITIVE", "score": 0.99...}]Comprobación rápida
Compruebe sus conocimientos sobre BERT.
Resumen
Resumen: BERT produce embeddings sensibles al contexto mediante transformers. Utilice AutoTokenizer para tokenizar con truncation/padding/return_tensors, y AutoModelForSequenceClassification para obtener logits. Convierta los logits aplicando softmax y después argmax. Realice un ajuste fino con Trainer o cree prototipos rápidamente con pipeline.
Preguntas frecuentes
¿La lección «Clasificación de texto con BERT» es gratis?
Sí — el texto completo de «Clasificación de texto con BERT» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Clasificación de texto con BERT»?
Transformers de HuggingFace, AutoTokenizer, AutoModelForSequenceClassification y ajuste fino. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Clasificación de texto con BERT»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Word2Vec: Skip-gram y CBOW
- Embeddings de GloVe y FastText
- Clasificación de texto con BERT
- Similitud semántica y embeddings de oraciones