Pelatihan mixed precision dengan PyTorch dasar
Anda akan menggunakan tipe data floating point presisi rendah untuk mempercepat pelatihan model terjemahan bahasa Anda. Misalnya, tipe data floating point 16-bit (float16) hanya berukuran setengah dari padanan 32-bit (float32). Hal ini mempercepat komputasi perkalian matriks dan konvolusi. Ingat bahwa ini melibatkan penskalaan gradien dan casting operasi ke floating point 16-bit.
Beberapa objek sudah dimuat: dataset, model, dataloader, dan optimizer.
Latihan ini merupakan bagian dari kursus
Pelatihan Model AI Efisien dengan PyTorch
Instruksi latihan
- Sebelum loop, definisikan scaler untuk gradien menggunakan
torch.amp.GradScaler. - Di dalam loop, ubah operasi ke tipe data floating point 16-bit menggunakan
torch.autocastsebagai context manager. - Di dalam loop, skalakan loss dan panggil
.backward()untuk membuat gradien yang telah diskalakan.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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
scaler.____(loss).backward()
scaler.step(optimizer)
scaler.update()
optimizer.zero_grad()