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
Instructions de l’exercice
- Chargez le tokenizer et le modèle
bert-base-uncasedadapté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()}")