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.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

학습용 커널

커스텀 커널은 행렬 곱셈, 어텐션, 정규화와 같은 특정 연산을 더 빠르게 실행하도록 설계됩니다. 여러 연산을 단일 커널로 융합하면 GPU 메모리를 읽고 쓰는 횟수를 줄여 메모리 대역폭 사용량을 낮추고, 연산별 런치 오버헤드를 절감합니다.

Hub 커널

Hub에는 KernelConfig로 로드할 수 있는 커뮤니티 커널이 호스팅됩니다. 설정을 from_pretrained()의 kernel_config에 전달하세요. 커널이 로드되면 학습에 활성화됩니다. 사용 가능한 모든 옵션에 대해서는 커널 로드 가이드를 참조하세요.

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

TrainingArguments에서 use_liger_kernel=True를 설정하면 해당 모델 레이어에 Liger의 커널이 적용됩니다.

지원되는 모델의 전체 목록은 패칭 페이지를 참조하세요.

from transformers import TrainingArguments

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

패치할 레이어를 제어하려면 liger_kernel_config를 dict로 전달하세요. 사용 가능한 옵션은 모델에 따라 다르며, 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과 같은 커널에 대한 자세한 내용은 Attention backends 가이드를 참고하세요.
  • 전체 학습 단계의 forward pass와 backward pass를 컴파일하는 방법을 배우려면 torch.compile 가이드를 참조하세요.
Update on GitHub