Adafactor ile bellek verimli eğitim

PyTorch ile Verimli AI Model Eğitimi

Dennis Lee

Data Engineer, Amazon

Eğitim verimliliği için optimize ediciler

 

 

AdamW, Adafactor ve 8-bit Adam’ı temsil eden simgeler.

PyTorch ile Verimli AI Model Eğitimi

Optimize edici ödünleri

AdamW, Adafactor ve 8-bit Adam için parametre sayısı ile hassasiyet arasındaki ödünleri gösteren diyagram.

PyTorch ile Verimli AI Model Eğitimi

Adafactor nasıl çalışır?

 

Adafactor adımlarını gösteren diyagram.

PyTorch ile Verimli AI Model Eğitimi

Adafactor nasıl çalışır?

 

Adafactor adımlarını gösteren diyagram.

PyTorch ile Verimli AI Model Eğitimi

Adafactor nasıl çalışır?

 

Adafactor adımlarını gösteren diyagram.

 

  • EMA: üssel hareketli ortalama
  • İkinci moment: karelenmiş gradyanların EMA’sı
PyTorch ile Verimli AI Model Eğitimi

Adafactor nasıl çalışır?

 

Adafactor adımlarını gösteren diyagram.

 

  • EMA: üssel hareketli ortalama
  • İkinci moment: karelenmiş gradyanların EMA’sı
PyTorch ile Verimli AI Model Eğitimi

Adafactor belleği nasıl korur?

 

İkinci moment matrisi, sütun toplamı ve satır toplamını gösteren diyagram.

  • İkinci moment matrisini saklamayarak bellek tasarrufu sağlar
PyTorch ile Verimli AI Model Eğitimi

Adafactor belleği nasıl korur?

 

İkinci moment matrisi, sütun toplamı ve satır toplamını gösteren diyagram.

  • İkinci moment matrisini saklamayarak bellek tasarrufu sağlar
  • Bunun yerine matrisin sütun ve satır toplamlarını saklar
PyTorch ile Verimli AI Model Eğitimi

Adafactor belleği nasıl korur?

 

İkinci moment matrisi, sütun toplamı ve satır toplamını gösteren diyagram.

  • İkinci moment matrisini saklamayarak bellek tasarrufu sağlar
  • Bunun yerine matrisin sütun ve satır toplamlarını saklar
PyTorch ile Verimli AI Model Eğitimi

Adafactor belleği nasıl korur?

 

İkinci moment matrisi, sütun toplamı ve satır toplamını gösteren diyagram.

  • İkinci moment matrisini saklamayarak bellek tasarrufu sağlar
  • Bunun yerine matrisin sütun ve satır toplamlarını saklar
  • Tam matrisi sütun ve satır toplamlarını çarparak tahmin eder
PyTorch ile Verimli AI Model Eğitimi

Trainer ve Accelerator uygulaması

Accelerator ve Trainer için kullanım kolaylığı ve özelleştirme yeteneği karşılaştırma grafiği.

PyTorch ile Verimli AI Model Eğitimi

Trainer ile Adafactor’ü uygulama

training_args = TrainingArguments(output_dir="./results",
                                  evaluation_strategy="epoch",

optim="adafactor")
trainer = Trainer(model=model, args=training_args, train_dataset=train_dataset, eval_dataset=validation_dataset, compute_metrics=compute_metrics) trainer.train()
{'epoch': 1.0, 'eval_accuracy': 0.6, 'eval_f1': 0.5}
PyTorch ile Verimli AI Model Eğitimi

Accelerator ile Adafactor’ü uygulama

# Assumes PyTorch 2.5 or higher
from torch.optim import Adafactor

optimizer = Adafactor(params=model.parameters(), lr=lr)
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.71
PyTorch ile Verimli AI Model Eğitimi

Optimize edici durumunu inceleme

  • optimizer durumuna state üzerinden erişin
optimizer_state = optimizer.state.values()
  • Veya trainer üzerinden optimizer’a erişin
optimizer_state = trainer.optimizer.state.values()
print(optimizer_state)
dict_values([{'step': tensor(3.),
              'exp_avg_sq_row': tensor([1.0000e-30, 1.0000e-30, 1.0000e-30,  ...]), 
              'exp_avg_sq_col': tensor([4.6147e-11, 5.5115e-11, 1.6338e-10, ...])}, ...])
PyTorch ile Verimli AI Model Eğitimi

Adafactor’un bellek kullanımını hesaplayın

total_size_megabytes, total_num_elements = \
    compute_optimizer_size(trainer.optimizer.state.values())
print(f"Adafactor parametre sayısı: {total_num_elements:,}")
print(f"Adafactor boyutu: {total_size_megabytes:.0f} MB")
Adafactor parametre sayısı: 178,712
Adafactor boyutu: 1 MB
  • AdamW ile karşılaştırma: Adafactor çok daha az bellek kullanır!
AdamW parametre sayısı: 131,566,188
AdamW boyutu: 502 MB
PyTorch ile Verimli AI Model Eğitimi

Vamos praticar!

PyTorch ile Verimli AI Model Eğitimi

Preparing Video For Download...