MulaiMulai sekarang secara gratis

Akumulasi gradien dengan Accelerator

Anda sedang melatih sebuah model bahasa untuk menyederhanakan terjemahan dengan memparafrasekan kalimat kompleks, tetapi GPU Anda kehabisan memori. Akumulasi gradien memungkinkan model berlatih secara efektif pada batch yang lebih besar dengan menggunakan batch kecil yang muat di memori. Anda memilih menulis loop pelatihan secara eksplisit agar dapat melihat strukturnya, sehingga Anda menggunakan Accelerator. Perhatikan bahwa latihan ini sebenarnya berjalan di CPU, tetapi kodenya tetap sama untuk GPU.

model, train_dataloader, optimizer, dan lr_scheduler telah didefinisikan sebelumnya.

Latihan ini adalah bagian dari kursus

Pelatihan Model AI Efisien dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Konfigurasikan Accelerator() untuk menggunakan akumulasi gradien dengan dua langkah.
  • Siapkan context manager Accelerator untuk mengaktifkan akumulasi gradien pada model.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Configure Accelerator
accelerator = ____(____=____)
model, optimizer, train_dataloader, lr_scheduler = accelerator.prepare(model, optimizer, train_dataloader, lr_scheduler)
for batch in train_dataloader:
    # Set up an Accelerator context manager
    with ____.____(____):
        inputs, targets = batch["input_ids"], batch["labels"]
        outputs = model(inputs, labels=targets)
        loss = outputs.loss
        accelerator.backward(loss)
        optimizer.step()
        lr_scheduler.step()
        optimizer.zero_grad()
        print(f"Loss = {loss}")
Edit dan Jalankan Kode