CommencezCommencez gratuitement

Apprentissage par transfert avec BERT

Chez PyBooks, l'entreprise a décidé de tirer parti de la puissance de BERT, un modèle Transformer préentraîné, pour l'analyse des sentiments. BERT a démontré des performances remarquables sur diverses tâches de NLP, ce qui en fait un excellent choix pour ce cas d'usage.

Votre tâche consiste à mettre en place un flux de base en utilisant le modèle BERT de la bibliothèque transformers pour une classification binaire des sentiments.

Les éléments suivants ont été importés pour vous : BertTokenizer, BertForSequenceClassification, torch. Les données d'exemple texts et les labels correspondants sont aussi préchargés.

Cette activité fait partie du cours

Apprentissage profond pour le texte avec PyTorch

Voir le cours

Instructions de l’exercice

  • Chargez le tokenizer et le modèle bert-base-uncased adaptés à une classification binaire.
  • Tokenisez votre jeu de données et préparez-le pour le modèle, en vous assurant qu'il retourne des tenseurs PyTorch à l'aide de l'argument return_tensors.
  • Configurez l'optimiseur en utilisant les paramètres du modèle.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Load the BERT tokenizer and model
tokenizer = BertTokenizer.from_pretrained('____')
model = BertForSequenceClassification.from_pretrained('____', num_labels=____)

# Tokenize your data and return PyTorch tensors
inputs = tokenizer(____, padding=True, truncation=True, return_tensors="____", max_length=32)
inputs["labels"] = torch.tensor(labels)

# Setup the optimizer using model parameters
optimizer = torch.optim.AdamW(____, lr=0.00001)
model.train()
for epoch in range(2):
    outputs = model(**inputs)
    loss = outputs.loss
    loss.backward()
    optimizer.step()
    optimizer.zero_grad()
    print(f"Epoch: {epoch+1}, Loss: {loss.item()}")
Modifier et exécuter le code