Transformers documentation
Kernel untuk pelatihan
Kernel untuk pelatihan
Kernel kustom menargetkan operasi tertentu seperti perkalian matriks, perhatian, dan normalisasi untuk menjalankannya lebih cepat. Menggabungkan beberapa operasi ke dalam satu kernel mengurangi penggunaan pita memori dengan membaca dan menulis memori GPU lebih sedikit kali, serta memangkas overhead peluncuran per operasi.
Kernel Hub
Hub menyediakan kernel komunitas yang dapat dimuat dengan KernelConfig. Teruskan config ke kernel_config di from_pretrained(). Setelah kernel dimuat, kernel tersebut aktif untuk pelatihan. Baca panduan Memuat kernel untuk semua opsi yang tersedia.
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 menggabungkan lapisan seperti RMSNorm, RoPE, SwiGLU, CrossEntropy, dan FusedLinearCrossEntropy menjadi kernel Triton tunggal. Kompatibel dengan FlashAttention, FSDP, dan DeepSpeed, serta meningkatkan throughput pelatihan multi-GPU sambil mengurangi penggunaan memori, sehingga membuat kosakata, ukuran batch, dan panjang konteks yang lebih besar menjadi lebih layak.
pip install liger-kernel
Setel use_liger_kernel=True di TrainingArguments untuk mem-patch lapisan model yang sesuai dengan kernel Liger.
Lihat halaman patching untuk daftar lengkap model yang didukung.
from transformers import TrainingArguments
training_args = TrainingArguments(
...,
use_liger_kernel=True
)Untuk mengontrol lapisan mana yang akan di-patch, berikan liger_kernel_config sebagai dict. Opsi yang tersedia bervariasi tergantung model dan mencakup: rope, swiglu, cross_entropy, fused_linear_cross_entropy, rms_norm, dan sebagainya.
from transformers import TrainingArguments
training_args = TrainingArguments(
...,
use_liger_kernel=True,
liger_kernel_config={
"rope": True,
"cross_entropy": True,
"rms_norm": False,
"swiglu": True,
}
)Langkah selanjutnya
- Lihat panduan Attention backends untuk detail tentang kernel seperti FlashAttention yang mengurangi penggunaan memori.
- Lihat panduan torch.compile untuk mempelajari cara mengompilasi jalur maju dan mundur untuk seluruh langkah pelatihan Anda.