>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン 組み込み セキュリティ
Python

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つの状況で役立ちます。

  1. モダンな言語モデルのアーキテクチャを学習中で、 внешних 依存関係のないクリーンなPyTorchコードを求めている場合。
  2. 仮説を быстро テストし、データセットでQLoRAファインチューニングを実行して、インフラコードを書かずにAPI経由でモデルを提供する必要がある場合。
  3. 独自のLLM訓練研究プロジェクトのための動作するスターターキットを探している場合。

Apache 2.0ライセンスは商用利用の制限をすべて取り除きます。開発者はリポジトリを積極的にメンテナンスしており、Gemma 3やQwen 2.5 Coderなどの新アーキテクチャをリリース直後に追加しています。

関連プロジェクト