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 dieoptimizer
definierst. - Gib den Optimierungsstatus ein, um die Größe zu drucken.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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")