Transformers documentation
çeviri: torch.compile ile çıkarım
çeviri: torch.compile ile çıkarım
torch.compile, PyTorch kodunu çıkarımı önemli ölçüde hızlandıran optimize edilmiş çekirdeklere derler. Bu özellik, kodu grafiklere derlemek için TorchDynamo'ya ve grafikleri optimize edilmiş çekirdeklere daha da derlemek için TorchInductor'a dayanır. Güçlü bir optimizasyon aracıdır ve birçok durumda yalnızca tek bir satır kod eklemeyi gerektirir.
Bir modeli torch.compile ile sarmalayarak derleyin ve optimize edilmiş modeli döndürün.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("google/gemma-2b", device_map="auto")
compiled_model = torch.compile(model)Modelin derlenmesi gerektiği için torch.compile'e yapılan ilk çağrı yavaştır. Derlenmiş modele yapılan sonraki çağrılar, tekrar derleme gerektirmediği için çok daha hızlıdır.
Derleme sürecini özelleştirmek için birkaç parametre bulunmaktadır. Bunlardan daha önemli olan ikisi aşağıda listelenmiştir. Parametrelerin tam listesi için torch.compile belgeleri'ne başvurun.
Modlar
mode parametresi, derleme için çeşitli performans seçenekleri sunar. Kullanım senaryonuza en uygun olanı bulmak için farklı modları deneyin.
default, hız ve bellek arasında dengeli bir seçenektir.reduce-overhead, biraz daha fazla bellek kullanımı pahasına Python tarafındaki yükü azaltır, ancak daha hızlı olabilir.max-autotuneen hızlı performansı sunar ancak derleme süresi daha uzundur.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("google/gemma-2b", device_map="auto")
compiled_model = torch.compile(model, mode="reduce-overhead")Fullgraph
Fullgraph, performansı en üst düzeye çıkarmak için tüm modeli tek bir grafikte derlemeye çalışır. torch.compile, bir grafik kırılması (graph break) ile karşılaştığında hata fırlatır; bu, modelin tek bir grafikte derlenemeyeceği anlamına gelir.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("google/gemma-2b", device_map="auto")
compiled_model = torch.compile(model, mode="reduce-overhead", fullgraph=True)Benchmarks
Farklı görme görevlerinde, aynı görüntü üzerinde çeşitli GPU'lar ve parti boyutları için torch.compile etkinleştirildiğinde ve devre dışı bırakıldığında ortalama çıkarım süresini milisaniye cinsinden karşılaştıran performans ölçümleri için aşağıdaki tabloya bakın.
Aşağıdaki tabloda Alt küme seçeneğini seçerek farklı GPU'lar arasında geçiş yapabilir, PyTorch nightly 2.1.0dev üzerindeki ve reduce-overhead modu etkinleştirilmiş torch.compile ile yapılan kıyaslamaları görüntüleyebilirsiniz.
Sonraki adımlar
- Eğitim için torch.compile kullanmayı öğrenmek için torch.compile for training rehberine bakın.