Boucles d'entraînement avant et après l'Accélérateur
Vous souhaitez modifier une boucle d'apprentissage PyTorch afin d'utiliser Accelerator
pour votre modèle de langage afin de simplifier les traductions en utilisant l'ensemble de données MPRC de paraphrases de phrases. Mettez à jour la boucle d'apprentissage pour préparer votre modèle à l'apprentissage distribué.
Certaines données ont été préchargées :
accelerator
est une instance deAccelerator
train_dataloader
,optimizer
,model
, etlr_scheduler
ont été définis et préparés à l'aide deAccelerator
Cet exercice fait partie du cours
Entraînement efficace de modèles d'IA avec PyTorch
Instructions
- Mettez à jour les lignes
.to(device)
afin qu'Accelerator gère le placement des périphériques. - Modifiez le calcul du gradient pour utiliser
Accelerator
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
for batch in train_dataloader:
optimizer.zero_grad()
inputs, targets = batch["input_ids"], batch["labels"]
# Update the lines so Accelerator handles device placement
inputs = inputs.to(device)
targets = targets.to(device)
outputs = model(inputs, labels=targets)
loss = outputs.loss
# Modify the gradient computation to use Accelerator
____.backward(____)
optimizer.step()
lr_scheduler.step()