AdamW के साथ संतुलित प्रशिक्षण

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

Dennis Lee

Data Engineer, Amazon

कुशल प्रशिक्षण

 

 

कोर्स में चैप्टर विषयों का आरेख, जिसमें ऑप्टिमाइज़र हाइलाइट हैं।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

प्रशिक्षण दक्षता के लिए ऑप्टिमाइज़र

 

 

तीन ऑप्टिमाइज़र दर्शाने वाला आरेख: AdamW, Adafactor, और 8-बिट Adam।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

प्रशिक्षण दक्षता के लिए ऑप्टिमाइज़र

 

 

तीन ऑप्टिमाइज़र दर्शाने वाला आरेख: AdamW, Adafactor, और 8-बिट Adam।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

प्रशिक्षण दक्षता के लिए ऑप्टिमाइज़र

 

 

तीन ऑप्टिमाइज़र दर्शाने वाला आरेख: AdamW, Adafactor, और 8-बिट Adam।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र के समझौते

AdamW, Adafactor, और 8-बिट Adam के लिए पैरामीटरों की संख्या और प्रिसिशन के बीच समझौते दिखाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र के समझौते

AdamW, Adafactor, और 8-बिट Adam के लिए पैरामीटरों की संख्या और प्रिसिशन के बीच समझौते दिखाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र के समझौते

AdamW, Adafactor, और 8-बिट Adam के लिए पैरामीटरों की संख्या और प्रिसिशन के बीच समझौते दिखाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र के समझौते

AdamW, Adafactor, और 8-बिट Adam के लिए पैरामीटरों की संख्या और प्रिसिशन के बीच समझौते दिखाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

  • ग्रेडिएंट का एक्सपोनेंशियल मूविंग एवरेज (EMA) निकालें
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

  • ग्रेडिएंट का एक्सपोनेंशियल मूविंग एवरेज (EMA) निकालें
  • स्क्वेयर्ड ग्रेडिएंट का EMA निकालें
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

  • ग्रेडिएंट का एक्सपोनेंशियल मूविंग एवरेज (EMA) निकालें
  • स्क्वेयर्ड ग्रेडिएंट का EMA निकालें
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW कैसे काम करता है?

AdamW कैसे काम करता है यह दर्शाने वाला आरेख।

  • ग्रेडिएंट का एक्सपोनेंशियल मूविंग एवरेज (EMA) निकालें
  • स्क्वेयर्ड ग्रेडिएंट का EMA निकालें
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW की मेमोरी उपयोग

AdamW की गणनाओं में शामिल मात्राएँ दिखाने वाला आरेख: पैरामीटर ग्रेडिएंट, ग्रेडिएंट का EMA, और स्क्वेयर्ड ग्रेडिएंट का EMA।

  • हर वर्ग एक पैरामीटर है, और हर रंग एक स्टेट है
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW की मेमोरी उपयोग

AdamW की गणनाओं में शामिल मात्राएँ दिखाने वाला आरेख: पैरामीटर ग्रेडिएंट, ग्रेडिएंट का EMA, और स्क्वेयर्ड ग्रेडिएंट का EMA।

  • हर वर्ग एक पैरामीटर है, और हर रंग एक स्टेट है
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW की मेमोरी उपयोग

AdamW की गणनाओं में शामिल मात्राएँ दिखाने वाला आरेख: पैरामीटर ग्रेडिएंट, ग्रेडिएंट का EMA, और स्क्वेयर्ड ग्रेडिएंट का EMA।

  • हर वर्ग एक पैरामीटर है, और हर रंग एक स्टेट है
  • प्रति पैरामीटर मेमोरी = 8 बाइट = 4 बाइट प्रति स्टेट × 2 स्टेट
  • कुल मेमोरी = प्रति पैरामीटर मेमोरी (8 बाइट) × पैरामीटरों की संख्या
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

AdamW की मेमोरी का अनुमान लगाएँ

model = AutoModelForSequenceClassification.from_pretrained(
    "distilbert-base-cased", return_dict=True)

num_parameters = sum(p.numel() for p in model.parameters()) print(f"Number of model parameters: {num_parameters:,}")
Number of model parameters: 65,783,042
estimated_memory = num_parameters * 8 / (1024 ** 2)
print(f"Estimated memory usage of AdamW: {estimated_memory:.0f} MB")
Estimated memory usage of AdamW: 502 MB
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

Trainer और Accelerator

Accelerator और Trainer के लिए कस्टमाइज़ेशन क्षमता और उपयोग में आसानी के बीच समझौता दिखाने वाला आरेख।

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

Trainer के साथ AdamW लागू करें

from torch.optim import AdamW

optimizer = AdamW(params=model.parameters())


trainer = Trainer(model=model, args=training_args, train_dataset=train_dataset, eval_dataset=validation_dataset, compute_metrics=compute_metrics, optimizers=(optimizer, lr_scheduler))
trainer.train()
{'epoch': 1.0, 'eval_accuracy': 0.7, 'eval_f1': 0.8}
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

Accelerator के साथ AdamW लागू करें

from torch.optim import AdamW

optimizer = AdamW(params=model.parameters())


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() lr_scheduler.step() optimizer.zero_grad() print(f"Loss = {loss}")
Loss = 0.7
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र स्टेट का निरीक्षण

optimizer_state = optimizer.state.values()
print(optimizer_state)
dict_values([{'step': tensor(3.),

'exp_avg': tensor([[0., 0., 0., ..., 0., 0., 0.], ...]),
'exp_avg_sq': tensor([[0., 0., 0., ..., 0., 0., 0.], ...])}, ...])
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र आकार की गणना

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)
num_elements = tensor.numel()
element_size = tensor.element_size()
total_num_elements += num_elements
total_size_megabytes += num_elements * element_size / (1024 ** 2)
return total_size_megabytes, total_num_elements
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

ऑप्टिमाइज़र आकार की गणना

total_size_megabytes, total_num_elements = \
    compute_optimizer_size(trainer.optimizer.state.values())
print(f"Number of optimizer parameters: {total_num_elements:,}")
Number of optimizer parameters: 131,566,188
print(f"Optimizer size: {total_size_megabytes:.0f} MB")
Optimizer size: 502 MB
PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

चलें अभ्यास करें!

PyTorch के साथ कुशल AI मॉडल प्रशिक्षण

Preparing Video For Download...