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
Anleitung zur Übung
- Definiere vor der Schleife einen Skalierer für die Farbverläufe mit einer Klasse aus der
torchBibliothek. - In der Schleife musst du die Operationen mithilfe eines Kontextmanagers aus der Bibliothek
torchin 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()