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。
- 精確計算:透過嚴謹的單元測試與收斂性測試,確保結果精確無誤,而非近似值。
相關
- 專案
- 專案
- 專案
- 專案
- 專案