Transformers documentation

çeviri: torch.compile ile çıkarım

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ç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-autotune en 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

Update on GitHub