DaoyuanLi2816/can-i-finetune-this

Estimate whether a Hugging Face model fits and fine-tunes on your local GPU.

解決する課題

コンシューマーグレードのGPUで大規模言語モデル(LLM)をファインチューニングする際に発生する「Out of Memory (OOM)」エラーの問題を解決します。膨大なモデルの重みをダウンロードした後に、ハードウェアがトレーニングプロセスを処理できないことが判明するのを防ぐため、このツールを使用すると、開始前にVRAM使用量を推定し、実現可能性を判断できます。

仕組み

このツールは、基本的な推定ツールでは見落とされがちな以下の要因を考慮したメモリモデルを使用しています:

  • Weight Memory: さまざまな精度(fp32, fp16, bf16, int8, NF4)を処理し、QLoRAにおけるembeddingsとnormsのfp32アップキャストを考慮します。
  • Training Buffers: 語彙数が多いモデルにおいて大きなメモリ消費となるlogits/cross-entropyチェーンをモデル化します。
  • Parameter Tracking: LoRA/QLoRAの学習可能パラメータ、勾配、およびオプティマイザの状態(例:AdamW vs 8-bit AdamW)のメモリを計算します。
  • Activations: シーケンス長、バッチサイズ、モデルアーキテクチャに基づいてメモリを推定し、gradient checkpointingのオプションも提供します。
  • Validation: ユーザーはローカルベンチマーク(bench)を実行し、推定値を校正(calibrate)することで、特定のハードウェアにおける実測値に基づいて静的な予測を検証できます。

対象者

コンシューマー向けNVIDIA GPU(通常12–24 GB VRAM)を使用し、失敗する設定に時間やディスク容量を浪費することなく、LoRAまたはQLoRAを使用してオープンウェイトLLMをファインチューニングしたい開発者およびAI研究者。

ハイライト

  • VRAM推定: 詳細なメモリ内訳(静的モデル、アクティベーション、logitsなど)と実現可能性の判断を提供します。
  • 構成の推奨: 利用可能なVRAM内にモデルを収めるための最適なバッチサイズ、シーケンス長、LoRAランクを提案します。
  • レシピ生成: Hugging Face、PEFT、およびTRLエコシステムを使用した、すぐに実行可能なトレーニングスクリプトを作成します。
  • ハードウェア検証: ユーザーのマシンでの実際のピークメモリ使用量に対して推定値を検証するためのベンチマークスイートが含まれています。

関連

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