Transformers documentation

أنوية التدريب

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

أنوية التدريب

تستهدف النوى المخصصة عمليات محددة مثل ضرب المصفوفات والانتباه والتطبيع لتنفيذها بشكل أسرع. يؤدي دمج عدة عمليات في نواة واحدة إلى تقليل استخدام عرض نطاق ذاكرة القراءة والكتابة من خلال تقليل عدد مرات القراءة والكتابة من ذاكرة وحدة معالجة الرسوميات، كما يقلل من تكلفة إطلاق كل عملية على حدة.

أنوية Hub

يستضيف Hub نواةً مجتمعية يمكنك تحميلها باستخدام KernelConfig. مرّر الإعداد إلى kernel_config في from_pretrained(). بمجرد تحميل النواة، تصبح نشطة للتدريب. اقرأ دليل تحميل النواة للاطلاع على جميع الخيارات المتاحة.

from transformers import AutoModelForCausalLM, KernelConfig

kernel_config = KernelConfig(
    kernel_mapping={
        "RMSNorm": "kernels-community/liger-kernels:LigerRMSNorm",
    }
)
model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen3-0.6B",
    use_kernels=True,
    kernel_config=kernel_config,
)

Liger

يجمع Liger Kernel بين طبقات مثل RMSNorm وRoPE وSwiGLU وCrossEntropy وFusedLinearCrossEntropy في نواة Triton واحدة. وهو متوافق مع FlashAttention وFSDP وDeepSpeed، ويحسّن معدل إنتاجية التدريب على عدة وحدات GPU مع تقليل استهلاك الذاكرة، مما يجعل استخدام مجموعات مفردات أكبر، وحجم دفعات أكبر، وأطوال سياق أطول أكثر قابلية للتطبيق.

pip install liger-kernel

اضبط use_liger_kernel=True في TrainingArguments لتعديل طبقات النموذج المقابلة باستخدام نواة Liger.

راجع صفحة إصلاح العيوب للحصول على قائمة كاملة بالنماذج المدعومة.

from transformers import TrainingArguments

training_args = TrainingArguments(
    ...,
    use_liger_kernel=True
)

للتحكم في الطبقات التي سيتم تطبيق التصحيحات عليها، مرّر liger_kernel_config كقاموس. تختلف الخيارات المتاحة حسب النموذج وتشمل: rope، swiglu، cross_entropy، fused_linear_cross_entropy، rms_norm، وغيرها.

from transformers import TrainingArguments

training_args = TrainingArguments(
    ...,
    use_liger_kernel=True,
    liger_kernel_config={
        "rope": True,
        "cross_entropy": True,
        "rms_norm": False,
        "swiglu": True,
    }
)

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

  • راجع دليل واجهات الانتباه الخلفية للحصول على تفاصيل حول النوى مثل FlashAttention التي تقلل من استهلاك الذاكرة.
  • اطّلع على دليل torch.compile لمعرفة كيفية تجميع المسارين الأمامي والخلفي لخطوة التدريب بأكملها.
Update on GitHub