Transformers documentation

Kernel untuk pelatihan

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

and get access to the augmented documentation experience

to get started

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.
Update on GitHub