Aprendizaje por transferencia para la clasificación de textos

Deep Learning para texto con PyTorch

Shubham Jain

Instructor

¿Qué es el aprendizaje por transferencia?

Aprendizaje por transferencia

"- Utilizar conocimientos previos de una tarea en una tarea relacionada

  • Ahorra tiempo
  • Compartir experiencia
  • Reduce la necesidad de grandes cantidades de datos
  • Un profesor de inglés empieza a enseñar Historia {{5}}"
Deep Learning para texto con PyTorch

Mecánica del aprendizaje por transferencia

"Aprendizaje por transferencia I"

Deep Learning para texto con PyTorch

Mecánica del aprendizaje por transferencia

"Aprendizaje por transferencia II"

Deep Learning para texto con PyTorch

Mecánica del aprendizaje por transferencia

"Aprendizaje por transferencia II"

Deep Learning para texto con PyTorch

Mecánica del aprendizaje por transferencia

"Aprendizaje por transferencia III"

Deep Learning para texto con PyTorch

"Modelo preentrenado : BERT"

"- Representaciones Encodificadoras Bidireccionales de Transformadores

Análisis de sentimiento con BERT

  • Entrenado para el modelado del lenguaje
  • Múltiples capas de transformadores
  • Preentrenado con grandes volúmenes de texto {{4}}"
Deep Learning para texto con PyTorch

"Práctica: implementación de BERT"

texts = ["¡Me encanta esto!", 
         "Esto es terrible.", 
         "¡Experiencia increíble!", 
         "No es lo mío."]
labels = [1, 0, 1, 0]

import torch from transformers import BertTokenizer, BertForSequenceClassification
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertForSequenceClassification.from_pretrained('bert-base-uncased', num_labels=2)
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt", max_length=32) inputs["labels"] = torch.tensor(labels)
Deep Learning para texto con PyTorch

Ajuste fino de BERT

"`python optimizer = torch.optim.AdamW(model.parameters(), lr=0.00001) model.train()


----CODE_GLUE----
```python
for epoch in range(1):
    outputs = model(**inputs)

loss = outputs.loss loss.backward()
optimizer.step() optimizer.zero_grad()
print(f\"Época: {epoch+1}, Pérdida: {loss.item()}\")

out Época: 1, Pérdida: 0.7061821222305298{{5}}"

Deep Learning para texto con PyTorch

Evaluando sobre texto nuevo

"`python text = \"¡He tenido un día increíble!\" input_eval = tokenizer(text, return_tensors=\"pt\", truncation=True, padding=True, max_length=128)


----CODE_GLUE----
```python
outputs_eval = model(**input_eval)

predictions = torch.nn.functional.softmax(outputs_eval.logits, dim=-1)
predicted_label = 'positivo' if torch.argmax(predictions) > 0 else 'negativo' print(f\"Texto: {text}\nSentimiento: {predicted_label}\")

out Texto: ¡Tuve un día increíble! Sentimiento: positivo{{5}}"

Deep Learning para texto con PyTorch

Es hora de la práctica.

Deep Learning para texto con PyTorch

Preparing Video For Download...