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。
  • 精确计算:通过严格的单元测试和收敛性测试,确保结果精确无误,而非近似值。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目