linkedin/Liger-Kernel
Efficient Triton Kernels for LLM Training
解决的问题
Liger Kernel 解决了训练大语言模型(LLM)时的高内存消耗和计算开销问题。它特别针对常见层和损失函数中的性能瓶颈,使用户能够在不触发内存不足(OOM)错误的情况下,支持更长的上下文长度、更大的批量大小和更大的词汇量。
工作原理
Liger Kernel 提供了一组优化的 Triton 内核,用于替换标准的 PyTorch 实现。它通过内核融合、就地替换和分块处理等技术,减少内存占用并提升吞吐量。支持多种集成方式:
- 自动补丁:一个包装类(
AutoLigerKernelForCausalLM),可自动为支持的模型应用优化。 - 模型专用 API:用于对 Hugging Face 模型进行猴子补丁的函数(例如
apply_liger_kernel_to_llama)。 - 自定义组合:可作为独立模块用于自定义模型架构中的单个内核。
支持多种后端,包括 Triton、cuTile 和 CuTe DSL(适用于 NVIDIA Hopper 和 Blackwell 架构)。
适用人群
专为使用 Hugging Face 生态系统、PyTorch FSDP 或 Microsoft DeepSpeed 训练或微调 LLM 的 AI 研究人员和工程师设计。
主要亮点
- 性能提升:多 GPU 训练吞吐量最高提升 20%,内存使用量最多减少 60%。
- 训练后优化:针对对齐和蒸馏(DPO、ORPO、SimPO 等)的专用内核,可将内存使用量减少高达 80%。
- 广泛兼容:与 Flash Attention、PyTorch FSDP、DeepSpeed 以及 Axolotl 和 LLaMA-Factory 等多种训练框架兼容。
- 硬件支持:兼容 NVIDIA(CUDA)、AMD(ROCm)和 Ascend NPU。
- 精确计算:通过严格的单元测试和收敛性测试,确保结果精确无误,而非近似值。
相关
- 项目
- 项目
- 项目
- 项目
- 项目