Adafactor mit Accelerator
Du hast bereits mit Adafactor und dem Trainer einen Proof of Concept erstellt, um dein Übersetzungsmodell mit reduziertem Speicherbedarf zu trainieren. Jetzt möchtest du deine Trainingsschleife mit Accelerator anpassen. Baue die Trainingsschleife so, dass sie Adafactor verwendet!
Die Funktion compute_optimizer_size() ist vordefiniert. Einige Trainingsobjekte wurden bereits geladen: model, train_dataloader und accelerator.
Diese Übung ist Teil des Kurses
Effizientes KI-Modelltraining mit PyTorch
Anleitung zur Übung
- Übergebe die Modellparameter an
Adafactor, wenn du denoptimizerdefinierst. - Übergib den Optimizer-Status, um die Größe auszugeben.
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")