LitGPTを探る ― ヘビーフレームワークなしでオープンニューラルネットワークをファインチューニングし実行する方法
Hugging Faceのソースコードに飛び込んで、アテンションロジックを修正したり、特定のLlamaレイヤーの構造を確認しようとしたことがある人なら、きっとあの感覚を覚えているでしょう。 dozens of abstractions、入り組んだ継承、メガバイト単位のラッパー。結局、シンプルなデバッグが推理小説になってしまいます。
Lightning AIの開発者たちは異なるアプローチを取りました。20以上の人気言語モデルアーキテクチャ取り上げ、ピュアなPyTorchでゼロから書き直しました。このプロジェクトはLitGPTと呼ばれています。抽象化のスパゲッティコードは一切ありません。各モデルは理解しやすいファイルに収まっており、読みやすく変更しやすい設計です。
プロジェクトの概要
サポートされているネットワークには、Llama 3、Qwen 2.5、Phi 4、Gemma 2、DeepSeek R1 Distill、ハイブリッドMoEなどが含まれます。このツールはファインチューニングからプリトレーニング、ローカルREST APIとしてのデプロイ、MMLUやTruthfulQAなどのベンチマークでの品質評価まで、完全なパイプラインを提供します。
すべてがコマンドラインから直接、またはミニマリストなPython APIを通じて動作します。
from litgpt import LLM
llm = LLM.load("microsoft/phi-2")
text = llm.generate("Fix the spelling: Every fall, the family goes to the mountains.")
print(text)
データローダーやトークナイザーの複雑なボイラープレートは不要です。呼び出しコードは本当に3行です。
実践的なメリットと機能
まず第一に、カスタムフレームワークラッパーなしのオープンソースコードです。Flash Attention v2やQLoRAが実際にどのように動作するかを理解したい場合は、LitGPTのコード是最好的な教科書となります。各モデルは可能な限り透明に実装されています。
第二に、控えめなハードウェア要件です。標準で4ビットと8ビットの量子化、bitsandbytes統合、複数のGPUへの分散用のFSDP(Fully Sharded Data Parallel)、およびCPUオフロードをサポートしています。これにより、手頃な価格の比較的安価な1枚のグラフィックスカードでも、モデルの実行やファインチューニングが可能になります。
第三に、YAML形式の柔軟な готовые トレーニングレシピです。LoRAやQLoRAでのファインチューニングを1つのコマンドラインで実行できます。
コマンドラインとユースケース
LitGPTのCLIはほとんどの典型的なMLエンジニアタスクをカバーしています。たとえば、JSONデータファイルがあり、モデルを企業ドキュメントや特定のデータセットに適応させたい場合、プロセス全体が3ステップで完了します。
ファインチューニングの起動:
litgpt finetune microsoft/phi-2 \
--data JSON \
--data.json_path my_custom_dataset.json \
--data.val_split_fraction 0.1 \
--out_dir out/custom-model
トレーニング完了後、インタラクティブなターミナルチャットで結果モデルの応答をすぐに確認できます:
litgpt chat out/custom-model/final
そしてモデルのデプロイ準備が整ったら、HTTPサーバーの起動は本当に1秒で完了します:
litgpt serve out/custom-model/final
結果はFastAPIベースのWebサーバーで、endpointは/predictになります。そこにプロンプトを含むPOSTリクエストを送信すると、応答が返ってきます。素早いプロトタイプやチーム向けの内部ツールが必要な場合、TritonやvLLMで独自のサービスを構築する必要がなくなります。
技術的設定
標準のコマンドラインパラメータが不足している場合、YAML設定が活躍します。リポジトリのconfig_hubフォルダには、特定のモデル向けの厳選されたレシピが含まれています。量子化、マイクロバッチサイズ、LoRAパラメータ(rank、alpha、dropout)、学習率、オプティマイザースケジュールを設定できます。
YAMLファイルからの любой 値は、起動時にCLIで直接上書きできるため、ハイパーパラメータの素早いスイープに便利です:
litgpt finetune \
--config https://raw.githubusercontent.com/Lightning-AI/litgpt/main/config_hub/finetune/llama-2-7b/lora.yaml \
--lora_r 4
ツールが真価を発揮した場面
LitGPTプロジェクトはとうにユーティリティを超え、実際の研究のための基盤となりました。
たとえば、11億パラメータのコンパクトなモデルとして有名なTinyLlamaは、LitGPTのコードを使用して訓練されました。MicroLlamaプロジェクト(3億パラメータのモデル)の作者も、このコードベースを使用しています。Microsoftの研究者はSambaプロジェクトの基礎としてLitGPTを採用し、State Space ModelsとAttention機構を組み合わせました。
さらに、LitGPTはNeurIPS 2023 LLM Efficiency Challengeの公式スターターキットとして使用され、参加者は24時間以内に単一GPUでモデルをファインチューニングしました。
誰が恩恵を受けられ、試す価値はあるか
LitGPTは3つの状況で役立ちます。
- モダンな言語モデルのアーキテクチャを学習中で、 внешних 依存関係のないクリーンなPyTorchコードを求めている場合。
- 仮説を быстро テストし、データセットでQLoRAファインチューニングを実行して、インフラコードを書かずにAPI経由でモデルを提供する必要がある場合。
- 独自のLLM訓練研究プロジェクトのための動作するスターターキットを探している場合。
Apache 2.0ライセンスは商用利用の制限をすべて取り除きます。開発者はリポジトリを積極的にメンテナンスしており、Gemma 3やQwen 2.5 Coderなどの新アーキテクチャをリリース直後に追加しています。
関連プロジェクト