LoslegenKostenlos loslegen

Gemischtes Präzisionstraining mit grundlegendem PyTorch

Du wirst Fließkommadatentypen mit geringer Genauigkeit verwenden, um das Training für dein Sprachübersetzungsmodell zu beschleunigen. Zum Beispiel sind 16-Bit-Gleitkommadatentypen (float16) nur halb so groß wie ihre 32-Bit-Gegenstücke (float32). Das beschleunigt die Berechnungen von Matrixmultiplikationen und Faltungen. Erinnere dich daran, dass dies die Skalierung von Gradienten und Casting-Operationen in 16-Bit-Gleitkomma beinhaltet.

Einige Objekte wurden bereits vorgeladen: dataset, model, dataloader, und optimizer.

Diese Übung ist Teil des Kurses

Effizientes KI-Modelltraining mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Definiere vor der Schleife einen Skalierer für die Farbverläufe mit einer Klasse aus der torch Bibliothek.
  • In der Schleife musst du die Operationen mithilfe eines Kontextmanagers aus der Bibliothek torch in den 16-Bit-Gleitkommadatentyp umwandeln.
  • In der Schleife skalierst du den Verlust und rufst .backward() auf, um skalierte Gradienten zu erstellen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Define a scaler for the gradients
scaler = torch.amp.____()
for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    # Casts operations to mixed precision
    with torch.____(device_type="cpu", dtype=torch.____):
        outputs = model(inputs, labels=targets)
        loss = outputs.loss
    # Compute scaled gradients
    ____.____(loss).____()
    scaler.step(optimizer)
    scaler.update()
    optimizer.zero_grad()
Code bearbeiten und ausführen