linkedin/Liger-Kernel
Efficient Triton Kernels for LLM Training
解決する課題
Liger Kernelは、大規模言語モデル(LLM)のトレーニングにおけるメモリとスループットのボトルネックに対処します。メモリ使用量を最大60%削減し、マルチGPUトレーニングのスループットを約20%向上させることで、メモリ不足(OOM)を発生させることなく、より大きなバッチサイズ、より長いコンテキスト長、より大きな語彙の使用を可能にします。
仕組み
このプロジェクトは、標準のPyTorchレイヤーを置き換える最適化されたTritonカーネルのコレクションを提供します。カーネル融合、インプレース置換、チャンキングなどの技術を使用して、重要なLLMコンポーネントの順伝播および逆伝播を最適化します。Hugging Faceと互換性のある RMSNorm、RoPE、SwiGLU、および CrossEntropy(FusedLinearCrossEntropyを含む)の実装を提供します。また、トレーニング後のアライメントや蒸留タスク(例:DPO、ORPO、CPO、SimPO、KTO)向けの専用カーネルも提供します。
対象ユーザー
NVIDIA (CUDA)、AMD (ROCm)、または Ascend NPU ハードウェア上でハードウェア効率を最大化したい、LLMのトレーニングやファインチューニングを行うAI研究者およびエンジニア向けに設計されています。
ハイライト
- 高効率: 一般的なトレーニングにおいてスループットを20%向上させ、メモリ使用量を60%削減します。トレーニング後のカーネルでは最大80%のメモリ節約が可能です。
- 使いやすさ: 1行のコードでHugging Faceモデルに統合できるほか、スタンドアロンモジュールとしても使用可能です。
- 幅広い互換性: Flash Attention、PyTorch FSDP、Microsoft DeepSpeed、およびAxolotlやLLaMA-Factoryなどのさまざまなトレーナーフレームワークとすぐに連携できます。
- 正確な計算: 近似を行わず数学的な正確性を保証し、厳格なユニットテストと収束テストによって検証されています。
- ハードウェアサポート: CUDA、ROCm、Ascend NPUをサポートし、HopperおよびBlackwellアーキテクチャ向けにcuTileやCuTe DSLなどの高性能バックエンドをオプションで提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch