Apprentissage par transfert pour la classification de texte

Deep Learning pour le texte avec PyTorch

Shubham Jain

Instructor

Qu’est-ce que le transfer learning ?

Apprentissage par transfert

"- Utiliser les connaissances préexistantes d'une tâche pour une tâche connexe

  • Gagne du temps
  • Partager l'expertise
  • Réduit le besoin de grandes quantités de données
  • Un professeur d'anglais commence à enseigner l'histoire {{5}}"
Deep Learning pour le texte avec PyTorch

Mécanismes de l'apprentissage par transfert

"Apprentissage par transfert I"

Deep Learning pour le texte avec PyTorch

Mécanismes de l'apprentissage par transfert

"Apprentissage par transfert II"

Deep Learning pour le texte avec PyTorch

Mécanismes de l'apprentissage par transfert

"Apprentissage par transfert II"

Deep Learning pour le texte avec PyTorch

Mécanismes de l'apprentissage par transfert

"Apprentissage par transfert III"

Deep Learning pour le texte avec PyTorch

"Modèle pré-entraîné : BERT"

"- Représentations Encodées Bidirectionnelles par Transformeurs

Analyse de sentiment Bert

  • Entraîné pour la modélisation du langage
  • Plusieurs couches de transformeurs
  • Pré-entraîné sur de grands corpus de textes {{4}}"
Deep Learning pour le texte avec PyTorch

"Pratique : mise en œuvre de BERT"

texts = ["J'adore ça !", 
         "C'est terrible.", 
         "Expérience incroyable !", 
         "Ce n'est pas ma tasse de thé."]
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 pour le texte avec PyTorch

Affinage 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\"Époque : {epoch+1}, Perte : {loss.item()}\")

out Époque : 1, Perte : 0.7061821222305298{{5}}"

Deep Learning pour le texte avec PyTorch

Évaluation sur un nouveau texte

"`python text = \"J'ai passé une journée géniale !\" 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 = 'positif' if torch.argmax(predictions) > 0 else 'négatif' print(f\"Texte : {text}\nSentiment : {predicted_label}\")

out Texte : J'ai passé une journée formidable ! Sentiment : positif{{5}}"

Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...