ऑप्टिमाइज़र का आकार निकालें
आप एक मॉडल को ट्रेन करने के लिए अलग-अलग ऑप्टिमाइज़र्स की जाँच कर रहे हैं, और निष्पक्ष तुलना के लिए आपको किसी ऑप्टिमाइज़र की मेमोरी खपत को मापना है. टेस्ट के तौर पर, आपने DistilBERT मॉडल और AdamW ऑप्टिमाइज़र लोड किया है ताकि आप मेमोरी उपयोग को माप सकें. compute_optimizer_size फंक्शन लिखिए जो किसी ऑप्टिमाइज़र का आकार निकाले.
AdamW optimizer सीधे परिभाषित किया गया है (Trainer के बिना), और ट्रेनिंग पूरी हो चुकी है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण
अभ्यास निर्देश
forलूप में हरtensorके एलिमेंट्स की संख्या और प्रत्येक का आकार निकालें.- मेगाबाइट्स में
optimizerका कुल आकार निकालें. optimizer.stateपर उपयुक्त मेथड का उपयोग करके ऑप्टिमाइज़र का state dictionary एक्सेस करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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")