linkedin/Liger-Kernel
Efficient Triton Kernels for LLM Training
해결하는 문제
Liger Kernel은 대규모 언어 모델(LLM) 학습과 관련된 높은 메모리 사용량과 계산 오버헤드를 해결합니다. 특히 일반적인 레이어와 손실 함수에서의 성능 저하 지점을 타겟으로 하여, 메모리 부족(OOM) 오류가 발생하지 않도록 더 긴 컨텍스트 길이, 더 큰 배치 크기, 더 큰 어휘를 처리할 수 있게 합니다.
작동 방식
Liger Kernel은 표준 PyTorch 구현을 대체하는 최적화된 Triton 커널 모음입니다. 커널 융합, 인플레이스 대체, 청크 처리 기법을 사용하여 메모리 사용량을 줄이고 처리 속도를 높입니다. 다음과 같은 방식으로 통합할 수 있습니다:
- 자동 패치: 지원되는 모델에 최적화를 자동 적용하는 래퍼 클래스(
AutoLigerKernelForCausalLM) - 모델 전용 API: Hugging Face 모델을 몽키패치하는 함수 (예:
apply_liger_kernel_to_llama) - 사용자 정의 조합: 사용자 정의 모델 아키텍처 내에서 독립된 모듈로 사용 가능한 개별 커널
Triton, cuTile, CuTe DSL (NVIDIA Hopper 및 Blackwell 아키텍처용) 등 여러 백엔드를 지원합니다.
대상 사용자
LLM 학습 또는 피니튜닝을 수행하는 AI 연구자 및 엔지니어, 특히 Hugging Face 생태계, PyTorch FSDP, Microsoft DeepSpeed를 사용하는 사용자들.
주요 특징
- 성능 향상: 다중 GPU 학습의 처리 속도를 최대 20% 향상시키고, 메모리 사용량을 최대 60% 감소시킵니다.
- 학습 후 최적화: DPO, ORPO, SimPO 등에 특화된 커널로 메모리 사용량을 최대 80% 줄일 수 있습니다.
- 광범위한 호환성: Flash Attention, PyTorch FSDP, DeepSpeed, Axolotl 및 LLaMA-Factory와 같은 다양한 트레이너 프레임워크와 호환됩니다.
- 하드웨어 지원: NVIDIA (CUDA), AMD (ROCm), Ascend NPU와 호환됩니다.
- 정확한 계산: 엄격한 유닛 테스트와 수렴 테스트를 통해 근사치가 아닌 정확한 결과를 보장합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트