Adafactor mit Accelerator
Du hast einen Proof-of-Concept von Adafactor mit Trainer demonstriert, um dein Sprachübersetzungsmodell mit reduzierten Speicheranforderungen zu trainieren. Jetzt möchtest du deine Trainingsschleife mit Accelerator anpassen. Baue die Trainingsschleife auf, um Adafactor zu verwenden!
Die Funktion compute_optimizer_size() ist vordefiniert. Einige Trainingsobjekte sind bereits geladen: model, train_dataloader, und accelerator.
Diese Übung ist Teil des Kurses
Effizientes KI-Modelltraining mit PyTorch
Anleitung zur Übung
- Übergib die Modellparameter an
Adafactor, wenn du dieoptimizerdefinierst. - Gib den Optimierungsstatus ein, um die Größe zu drucken.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Pass the model parameters to Adafactor
optimizer = ____(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)
for batch in train_dataloader:
inputs, targets = batch["input_ids"], batch["labels"]
outputs = model(inputs, labels=targets)
loss = outputs.loss
accelerator.backward(loss)
optimizer.step()
optimizer.zero_grad()
# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(____.____.values())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")