Transformers documentation
학습용 커널
학습용 커널
커스텀 커널은 행렬 곱셈, 어텐션, 정규화와 같은 특정 연산을 더 빠르게 실행하도록 설계됩니다. 여러 연산을 단일 커널로 융합하면 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 가이드를 참조하세요.