linkedin/Liger-Kernel
Efficient Triton Kernels for LLM Training
何を解決するか
Liger Kernelは、大規模言語モデル(LLM)の学習に伴う高メモリ消費と計算オーバーヘッドを解決します。特に一般的なレイヤーや損失関数におけるボトルネックに焦点を当て、メモリ不足(OOM)エラーを引き起こさずに、より長いコンテキスト長、より大きなバッチサイズ、より大きな語彙を扱えるようにします。
仕組み
Liger Kernelは、標準のPyTorch実装を置き換える最適化されたTritonカーネルのコレクションを提供します。カーネル結合、インプレース置換、チャンク化などの技術を用いて、メモリ使用量を削減し、スループットを向上させます。以下の方法で統合が可能です:
- 自動パッチ適用:サポートされているモデルに最適化を自動的に適用するラッパークラス(
AutoLigerKernelForCausalLM) - モデル固有のAPI:Hugging Faceモデルをモニキーパッチする関数(例:
apply_liger_kernel_to_llama) - カスタム構成:カスタムモデルアーキテクチャ内で独立したモジュールとして使用可能な個別カーネル
Triton、cuTile、CuTe DSL(NVIDIA HopperおよびBlackwellアーキテクチャ用)など、複数のバックエンドをサポートしています。
対象ユーザー
大規模言語モデル(LLM)の学習やファインチューニングを行うAI研究者およびエンジニア、特にHugging Faceエコシステム、PyTorch FSDP、Microsoft DeepSpeedを使用している方々。
主な特徴
- パフォーマンス向上:マルチGPU学習のスループットを最大20%向上し、メモリ使用量を最大60%削減。
- 学習後最適化:アライメントおよびディスティル(DPO、ORPO、SimPOなど)に特化したカーネルで、メモリ使用量を最大80%削減可能。
- 広範な互換性:Flash Attention、PyTorch FSDP、DeepSpeed、AxolotlやLLaMA-Factoryなどのさまざまなトレーナーフレームワークと互換性あり。
- ハードウェア対応:NVIDIA(CUDA)、AMD(ROCm)、Ascend NPUに対応。
- 正確な計算:厳密なユニットテストと収束テストにより、近似ではなく正確な結果を保証。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト