Transformers documentation
Eğitim için torch.compile
Eğitim için torch.compile
torch.compile, PyTorch kodunu daha hızlı çalışması için füzyonlu çekirdeklere derler. Eğitim için hem ileri hem de geri geçişi birlikte izler ve bunları optimize edilmiş çekirdeklere derler; bu sayede bireysel op başlatma maliyetini azaltır ve bellek bant genişliği kullanımını kesmek için işlemleri füzyonlar.
Bunu etkinleştirmek için TrainingArguments içinde torch_compile=True değerini ayarlayın. Eğitim, yalnızca ileri geçişi derleyen çıkarımın aksine hem ileri hem de geri geçişi derler. Derleme ilk eğitim adımında gerçekleştiğinden, bu adımın sonraki adımlara kıyasla belirgin şekilde daha yavaş olmasını bekleyin.
from transformers import TrainingArguments
args = TrainingArguments(
...,
torch_compile=True,
torch_compile_backend="inductor",
torch_compile_mode="reduce-overhead",
)Arka uç
Arka uç belirtilmediğinde, TrainingArguments donanımınıza göre bir arka uç seçer. Çoğu CPU ve GPU'da varsayılan, AOTAutograd ile Triton çekirdeklerine derlenen ve çoğu eğitim iş yüküne uygun olan inductor'dır. Intel Gaudi (HPU) üzerinde varsayılan hpu_backend'dir. AWS Trainium ve Inferentia (Neuron) üzerinde varsayılan neuron'dur.
Sabit şekilli girdiler için cudagraphs kullanın.
Derleme modu
torch.compile modu seçmenize yardımcı olmak için aşağıdaki tabloyu kullanın.
| mode | açıklama |
|---|---|
| default | derleme süresi ile çalışma süresi arasında denge |
| reduce-overhead | ekstra bellek maliyeti karşılığında CUDA grafikleri kullanarak Python/CPU yükünü azaltır |
| max-autotune | derleme sırasında birden çok çekirdek uygulamasını test eder ve en hızlısını seçer (derleme süresi daha uzun) |
| max-autotune-no-cudagraphs | CUDA grafikleri olmadan max-autotune ile aynı |
Sonraki adımlar
- fullgraph derleme ve çıkarım (inference) ölçümleriyle ilgili ayrıntılar için torch.compile for inference kılavuzuna bakın.