Hitung ukuran optimizer
Anda sedang mengeksplorasi berbagai optimizer untuk melatih sebuah model, dan Anda perlu mengukur penggunaan memori optimizer untuk perbandingan yang objektif. Sebagai uji coba, Anda telah memuat model DistilBERT dan optimizer AdamW sehingga Anda dapat mengukur penggunaan memori. Tulis fungsi compute_optimizer_size untuk menghitung ukuran sebuah optimizer.
optimizer AdamW telah didefinisikan secara langsung (tanpa Trainer), dan pelatihan telah selesai.
Latihan ini merupakan bagian dari kursus
Pelatihan Model AI Efisien dengan PyTorch
Instruksi latihan
- Hitung jumlah elemen dan ukuran setiap
tensordalamforloop. - Hitung total ukuran
optimizerdalam megabyte. - Akses kamus status optimizer menggunakan metode yang sesuai pada
optimizer.state.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
def compute_optimizer_size(optimizer_state):
total_size_megabytes, total_num_elements = 0, 0
for params in optimizer_state:
for name, tensor in params.items():
tensor = torch.tensor(tensor)
# Compute number of elements and size of each tensor
num_elements, element_size = tensor.____(), tensor.____()
total_num_elements += num_elements
# Compute the total size in megabytes
total_size_megabytes += ____ * ____ / (1024 ** 2)
return total_size_megabytes, total_num_elements
# 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")