linkedin/Liger-Kernel
Efficient Triton Kernels for LLM Training
解决的问题
Liger Kernel 解决了训练大型语言模型 (LLM) 时面临的内存和吞吐量瓶颈。它将内存使用量降低了高达 60%,并将多 GPU 训练吞吐量提高了约 20%,从而能够在不发生内存不足 (OOM) 的情况下使用更大的 batch size、更长的 context length 和更大的词汇表。
运作原理
该项目提供了一系列优化的 Triton kernel,用于取代标准的 PyTorch 层。它利用 kernel fusion、in-place replacement 和 chunking 等技术,优化了关键 LLM 组件的前向和反向传播。它实现了与 Hugging Face 兼容的 RMSNorm、RoPE、SwiGLU 和 CrossEntropy (包含 FusedLinearCrossEntropy) 版本。此外,它还为训练后对齐和蒸馏任务 (例如 DPO、ORPO、CPO、SimPO、KTO) 提供了专用 kernel。
适用对象
专为希望在 NVIDIA (CUDA)、AMD (ROCm) 或 Ascend NPU 硬件上最大化硬件效率的 AI 研究人员和工程师设计,用于训练或微调 LLM。
特点
- 高效率:一般训练吞吐量提升 20%,内存使用量降低 60%;训练后 kernel 的内存节省最高可达 80%。
- 易于使用:只需一行代码即可整合到 Hugging Face 模型中,或作为独立模块使用。
- 广泛兼容性:可直接与 Flash Attention、PyTorch FSDP、Microsoft DeepSpeed 以及 Axolotl 和 LLaMA-Factory 等各种训练框架搭配使用。
- 精确计算:确保数学准确性且无近似值,并通过严格的单元测试和收敛测试进行验证。
- 硬件支持:支持 CUDA、ROCm 和 Ascend NPU,并针对 Hopper 和 Blackwell 架构提供选配的高性能后端,如 cuTile 和 CuTe DSL。
相关
- 项目
- 项目
- 项目
- 项目
- Dispatch