Mulai sekarangMulai gratis

Adafactor dengan Accelerator

Anda telah membuat bukti konsep Adafactor dengan Trainer untuk melatih model penerjemahan bahasa dengan kebutuhan memori yang lebih rendah. Sekarang Anda ingin menyesuaikan loop pelatihan menggunakan Accelerator. Bangun loop pelatihan yang menggunakan Adafactor!

Fungsi compute_optimizer_size() telah didefinisikan sebelumnya. Beberapa objek pelatihan telah dimuat: model, train_dataloader, dan accelerator. Adafactor telah diimpor dari torch.optim.

Latihan ini merupakan bagian dari kursus

Pelatihan Model AI Efisien dengan PyTorch

Lihat Kursus

Instruksi latihan

  • Teruskan parameter model ke Adafactor saat mendefinisikan optimizer.
  • Teruskan state optimizer untuk mencetak ukurannya.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# Pass the model parameters to Adafactor
optimizer = Adafactor(params=____.____())
model, optimizer, train_dataloader = accelerator.prepare(model, optimizer, train_dataloader)

for batch in train_dataloader:
    inputs, targets = batch["input_ids"], batch["labels"]
    outputs = model(inputs, labels=targets)
    loss = outputs.loss
    accelerator.backward(loss)
    optimizer.step()
    optimizer.zero_grad()

# Pass in the optimizer state
total_size_megabytes, total_num_elements = compute_optimizer_size(optimizer.state.____())
print(f"Number of optimizer parameters: {total_num_elements:,}\nOptimizer size: {total_size_megabytes:.0f} MB")  
Edit dan Jalankan Kode