Mulai sekarangMulai gratis

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

Lihat Kursus

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.autocast sebagai 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()
Edit dan Jalankan Kode