Model budama tekniklerini uygulama

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Sergiy Tkachuk

Director, GenAI Productivity

Ne zaman budama yapılır?

$$

  • 📱 Modelleri edge veya gömülü sistemlere dağıtırken yararlı

$$

  • ➕ Bileşik verimlilik için niceleme ile birleştirilebilir

$$

  • ⚡ Gecikme veya model boyutunu azaltmak öncelikse kullanın
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Model budama nedir?

$$

  • Sinir ağlarında daha az önemli bağlantıları kaldırır
  • Depolama ve hesaplamada verimli seyrek modeller üretir
  • Yaygın bir yaklaşım: L1 yapısız budama

budama örneği

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Model budama nedir?

import torch.nn.utils.prune as prune

prune.l1_unstructured(model.fc, name="weight",
                      amount=0.4)

print(model.fc.weight.data)
tensor([[ 0.25, -0.13,  0.05,  0.70],
        [-0.88,  0.31, -0.02,  0.44]]) # Budama öncesi


tensor([[ 0.25, -0.13,  0.00,  0.70],
        [ 0.00,  0.31,  0.00,  0.44]]) # Budama sonrası (ağırlıkların %40'ı 0)
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Budama maskelerini anlama

$$

  • Budama, hedeflenen her ağırlık tensörüne ikili bir maske ekler.

$$

  • Maske = 1 --> ağırlık korunur.
  • Maske = 0 --> ileri geçişte ağırlık 0 yapılır.

$$

  • Maske kaldırılana kadar ağırlıklar bellekte tutulur.
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Budamayı kalıcı kılma

  • Varsayılan olarak, budanan ağırlıklar özgün tensörün parçası kalır
  • Budamayı kalıcı kılmak için yeniden parametrelendirmeleri kaldırın
  • Seyrek katmanı sıfırlanmış ağırlıklı standart katmana dönüştürür
Sequential(
  (fc): Linear(
    in_features=128, out_features=64,
    bias=True
    (weight): PrunedParam()
  )
) # prune.remove öncesi
import torch.nn.utils.prune as prune

prune.remove(model.fc, 'weight')

# Print model structure
print(model)

Sequential(
  (fc): Linear(in_features=128,
               out_features=64,
               bias=True)
) # prune.remove sonrası
PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Budamanın etkisini değerlendirme

  • Özgün ve budanmış model başarımını karşılaştırın
  • Doğrulukta küçük düşüş, boyut/bellekte büyük kazançlar beklenir
  • Dağıtım için ödün kabul edilebilir mi değerlendirin

budama modeli ödün grafiği

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Haydi pratik yapalım!

PyTorch Lightning ile Ölçeklenebilir AI Modelleri

Preparing Video For Download...