Transformers documentation
أنوية التدريب
أنوية التدريب
تستهدف النوى المخصصة عمليات محددة مثل ضرب المصفوفات والانتباه والتطبيع لتنفيذها بشكل أسرع. يؤدي دمج عدة عمليات في نواة واحدة إلى تقليل استخدام عرض نطاق ذاكرة القراءة والكتابة من خلال تقليل عدد مرات القراءة والكتابة من ذاكرة وحدة معالجة الرسوميات، كما يقلل من تكلفة إطلاق كل عملية على حدة.
أنوية 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 لمعرفة كيفية تجميع المسارين الأمامي والخلفي لخطوة التدريب بأكملها.