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に対応。
  • 正確な計算:厳密なユニットテストと収束テストにより、近似ではなく正確な結果を保証。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト