Optimize edici boyutunu hesapla
Bir modeli eğitmek için farklı optimize edicileri inceliyorsun ve nesnel bir karşılaştırma için bir optimize edicinin bellek kullanımını nicelleştirmen gerekiyor. Test olarak, bellek kullanımını ölçebilmek için bir DistilBERT modeli ve AdamW optimize edicisi yükledin. Bir optimize edicinin boyutunu hesaplamak için compute_optimizer_size fonksiyonunu yaz.
AdamW optimizer doğrudan ( Trainer olmadan) tanımlandı ve eğitim tamamlandı.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Verimli AI Model Eğitimi
Egzersiz talimatları
fordöngüsünde hertensoriçin eleman sayısını ve her birinin boyutunu hesapla.optimizerın toplam boyutunu megabayt cinsinden hesapla.- Optimize edici durum sözlüğüne,
optimizer.stateüzerinde uygun yöntemi kullanarak eriş.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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")