LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Übergebe die Modellparameter an Adafactor, wenn du den optimizer definierst.
  • Ü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")  
Code bearbeiten und ausführen