Hugging Face Accelerate ile Verimli Eğitim
accelerate.Accelerator, cihazdan bağımsız eğitim, gradyan biriktirme, DeepSpeed entegrasyonu.
Hugging Face Accelerate ile Verimli Eğitim, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Tekdüze Kod Sorunu
Cihaz yerleştirme, DDP kurulumu ve karma hassasiyeti elle yazmak uzun ve hataya açıktır. Hugging Face Accelerate, bu tekdüze kodu ortadan kaldırır: aynı betik, kod değişikliği olmadan CPU'da, tek GPU'da, birçok GPU'da veya hatta TPU'larda çalışır.
Accelerator Nesnesi
Kütüphanenin merkezinde Accelerator bulunur. Betiğinizin başında bir tane oluşturursunuz; ortamı algılar ve cihazları, dağıtık kurulumu ve hassasiyeti sizin için yönetir.
from accelerate import Accelerator
accelerator = Accelerator()
device = accelerator.deviceNesneleri Hazırlama
accelerator.prepare, modelinizi, iyileştiricinizi ve veri yükleyicinizi alarak mevcut kuruluma göre yapılandırılmış sürümlerini döndürür: doğru cihaza taşınmış, gerektiğinde DDP içine sarılmış ve veri yükleyicisi süreçler arasında bölümlenmiş olur.
model, optimizer, dataloader = accelerator.prepare(
model, optimizer, dataloader
)prepare Ne Yapar
Arka planda prepare, normalde elle yapacağınız işleri yönetir: cihaz aktarımını, DDP ile sarmalamayı, dağıtık örneklemeyi ve karma hassasiyet kancalarının eklenmesini. Tek bir çağrı, düzinelerce satırın yerini alır.
Elle .to(device) Yok
Hazırlanmış veri yükleyicisi zaten doğru cihazdaki yığınları ürettiği için elle yazılan x.to(device) çağrılarını kaldırırsınız. Aynı döngü her yerde çalışır.
for batch in dataloader:
inputs, labels = batch # already on device
outputs = model(inputs)
loss = loss_fn(outputs, labels)accelerator.backward
loss.backward() yerine accelerator.backward(loss) çağrısını yapınız. Bu çağrı, dağıtık ve karma hassasiyetli eğitim için doğru yolu (gradyan ölçekleme dâhil) otomatik olarak kullanır.
optimizer.zero_grad()
accelerator.backward(loss)
optimizer.step()Tam Bir Eğitim Döngüsü
Eksiksiz Accelerate döngüsü dikkat çekici ölçüde temizdir ve cihazdan bağımsızdır.
accelerator = Accelerator()
model, optimizer, dataloader = accelerator.prepare(model, optimizer, dataloader)
for epoch in range(epochs):
for batch in dataloader:
inputs, labels = batch
outputs = model(inputs)
loss = loss_fn(outputs, labels)
optimizer.zero_grad()
accelerator.backward(loss)
optimizer.step()Yapılandırma ile Karma Hassasiyet
Koda dokunmadan, Accelerator'ı oluştururken veya CLI yapılandırması üzerinden ayarlayarak FP16/BF16'yı etkinleştirirsiniz. Accelerate daha sonra autocast ve gradyan ölçeklemeyi sizin için yönetir.
accelerator = Accelerator(mixed_precision="fp16")Kaydetme için unwrap_model
prepare sonrasında model DDP içine sarılmış olabilir. Kaydetmeden önce accelerator.unwrap_model(model) çağrısını yaparak temel, sade modeli elde ediniz; böylece denetim noktası temiz ve taşınabilir olur.
unwrapped = accelerator.unwrap_model(model)
accelerator.save(unwrapped.state_dict(), "model.pt")Cihazlar Arasında Çalıştırma
Aynı betiği accelerate launch komutuyla çalıştırırsınız. Bu komut, yapılandırmanızı (işlem sayısı, makine sayısı, hassasiyet) okur ve süreçleri başlatır; tek GPU, çoklu GPU ve çok düğümlü durumları saydam biçimde yönetir.
accelerate config # one-time interactive setup
accelerate launch train.pyAccelerate'in Avantajları
Accelerate, saydam çoklu cihaz yönetimi sağlar: tek bir temiz döngü yazar ve kodu yeniden yazmadan bir dizüstü bilgisayarın CPU'sundan çok düğümlü bir GPU kümesine ölçeklenirsiniz. Daha önce öğrendiğiniz DDP ve AMP kavramlarının üzerine kuruludur; yalnızca altyapı ayrıntılarını gizler.
Hızlı Kontrol
Accelerate bilginizi sınayın.
Özet
Hugging Face Accelerate ile verimli eğitimi öğrendiniz:
Accelerator()ortamı algılar ve yönetiracc.prepare(model, optimizer, dataloader)mevcut cihazlar için her şeyi birbirine bağlaracc.backward(loss)dağıtık ve karma hassasiyetli geri yayılımı yönetiracc.unwrap_modelkayıt için yalın bir model sağlar- Tek bir betik, CPU'dan çok düğümlü GPU'ya saydam biçimde ölçeklenir
Sıkça Sorulan Sorular
“Hugging Face Accelerate ile Verimli Eğitim” dersi ücretsiz mi?
Evet — “Hugging Face Accelerate ile Verimli Eğitim” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Hugging Face Accelerate ile Verimli Eğitim” dersinde ne öğreneceğim?
accelerate.Accelerator, cihazdan bağımsız eğitim, gradyan biriktirme, DeepSpeed entegrasyonu. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Hugging Face Accelerate ile Verimli Eğitim” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- DataParallel ile Çoklu GPU Eğitimi
- DistributedDataParallel (DDP)
- AMP ile Karışık Hassasiyet Eğitimi
- Hugging Face Accelerate ile Verimli Eğitim