LoslegenKostenlos starten

Adafactor mit Accelerator

Du hast einen Proof-of-Concept von Adafactor mit Trainer gezeigt, um dein Übersetzungsmodell mit geringerem 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 sind bereits geladen: model, train_dataloader und accelerator. Adafactor wurde aus torch.optim vorab importiert.

Diese Übung ist Teil des Kurses

<Kurs>Effizientes KI-Modelltraining mit PyTorch</Kurs>
Kurs ansehen

Übungsanweisungen

  • Übergib beim Definieren des optimizer die Modellparameter an Adafactor.
  • Übergib den Optimizerzustand, um die Größe auszugeben.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Pass the model parameters to Adafactor
optimizer = Adafactor(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(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Code bearbeiten und ausführen