Transformers documentation

torch.compile للتدريب

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

and get access to the augmented documentation experience

to get started

torch.compile للتدريب

يقوم torch.compile بتجميع كود PyTorch إلى نوى مدمجة (fused kernels) لجعله يعمل بشكل أسرع. ففي التدريب، يتتبع كلًا من المسار الأمامي والمسار العكسي معًا ويجمعهما في نوى مُحسَّنة، مما يقلل من العبء الناتج عن إطلاق العمليات الفردية ودمج العمليات لتقليل استخدام عرض نطاق الذاكرة.

اضبط torch_compile=True في TrainingArguments لتفعيله. يقوم التدريب بتجميع كل من المسار الأمامي والمسار العكسي، على عكس الاستدلال الذي يجمع المسار الأمامي فقط. يحدث التجميع في خطوة التدريب الأولى، لذا توقع أن تكون أبطأ بشكل ملحوظ من الخطوات اللاحقة.

from transformers import TrainingArguments

args = TrainingArguments(
    ...,
    torch_compile=True,
    torch_compile_backend="inductor",
    torch_compile_mode="reduce-overhead",
)

الواجهة الخلفية

عند عدم تحديد أي واجهة خلفية، يختار TrainingArguments واحدة بناءً على عتادك. على معظم وحدات المعالجة المركزية ووحدات معالجة الرسوميات، تكون القيمة الافتراضية هي inductor، والتي تُترجم إلى نوى Triton باستخدام AOTAutograd ومناسبة لمعظم أعباء العمل التدريبية. على Intel Gaudi (HPU)، تكون القيمة الافتراضية هي hpu_backend. على AWS Trainium و Inferentia (Neuron)، تكون القيمة الافتراضية هي neuron.

استخدم cudagraphs للمدخلات ذات الشكل الثابت.

وضع التجميع

استخدم الجدول أدناه للمساعدة في اختيار وضع torch.compile.

الوضعالوصف
افتراضيتوازن وقت التجميع مقابل وقت التشغيل
reduce-overheadيقلل من الأعباء الإضافية على بايثون/المعالج المركزي باستخدام رسوميات CUDA على حساب بعض الذاكرة الإضافية
max-autotuneيقوم benchmarks بتقييم عدة تنفيقات للأنوية (kernels) وقت الترجمة (compile) واختيار الأسرع (مع وقت ترجمة أطول)
max-autotune-no-cudagraphsنفس max-autotune ولكن بدون CUDA graphs

الخطوات التالية

  • راجع دليل torch.compile للاستدلال للحصول على تفاصيل حول التجميع الكامل للرسم البياني (fullgraph) ومعايير أداء الاستدلال.
Update on GitHub