meta-pytorch/torchtune
PyTorch native post-training library
torchtune – 大規模言語モデルの学習・ファインチューニング用PyTorchライブラリ
何であるか – torchtuneはPyTorch上で構築されたオープンソースのPythonパッケージです。大規模言語モデル(LLM)の後学習ライフサイクル全体に対応する、事前構成済みのレシピ(設定駆動型スクリプト)を提供します:教師付きファインチューニング、LoRA/QLoRA、知識蒸留、人間からのフィードバックによる強化学習(DPO、PPO、GRPO)、量子化対応学習、推論/量子化。このライブラリは、Llama 3.x、Llama 4、Gemma 2、Mistral、Phi、Qwen 2/2.5/3など、多数の最先端LLMアーキテクチャの軽量PyTorch実装も同梱しています。
なぜ重要か – 現代のLLMを訓練または適応させるには、通常、重いエンジニアリング作業が必要です。分散学習、メモリ節約テクニック(活性化チェックポイント、オフロード、8ビットオプティマイザ)、モデル固有のトークナイザの管理など、複数の課題を同時に扱う必要があります。torchtuneは、シンプルなCLI(tune)とYAML設定ファイルの背後でこれらの課題を抽象化し、単一GPUまたはマルチノードクラスタ上で1つのコマンドで実験を開始できるようにします。
主な特徴(READMEに記載)
- レシピ駆動ワークフロー –
tune run <レシピ> --config <yaml>で、フルファインチューニング、LoRA/QLoRA、DPO、PPO、GRPO、KD、QATなどを実行。レシピ一覧はtune lsで確認可能。 - ハードウェアに応じたスケーラビリティ – 1GPU、マルチGPU、マルチノード学習をサポート。CUDA、XPU、ROCm、Apple MPS、Ascend NPUに対応。
- メモリ効率の調整オプション – パックドデータセット、torch-compile、チャンク化クロスエントロピー、活性化チェックポイント/オフロード、融合オプティマイザステップ、8ビットAdamW、LoRA/QLoRA。READMEにはLlama 3.2 3Bのメモリ対スループットの実測テーブルが掲載されています。
- モデルカタログ – 数十種類のLLMファミリー用の事前構成済みモデルビルダーと設定フォルダ(Llama 4、Llama 3.3 70B、Llama 3.2-Vision、Gemma 2、Phi 4、Qwen 3、Qwen 2.5など)。
- エコシステムとの統合 – Hugging Face Hub(重み)、Datasets(学習データ)、LM-Eval Harness(評価)、torch-ao(量子化)、FSDP2(分散学習)、Weights & Biases/Comet(ログ記録)、ExecuTorch(デバイス内推論)。
- インストール –
pip install torchtune(安定版)を、対応するPyTorch/torchvision/torchaoバージョンと一緒にインストール。ナイトリービルドも利用可能。 - ドキュメントとコミュニティ – 全ドキュメントは
pytorch.org/torchtuneで、Discordコミュニティと引用ガイドも提供。
一般的なワークフロー
- モデルのダウンロード(例:
tune download meta-llama/Meta-Llama-3.1-8B-Instruct)。 - レシピの選択 – 例:1GPUでのLoRA用に
lora_finetune_single_deviceを選択。 - 実行 –
tune run lora_finetune_single_device --config llama3_1/8B_lora_single_device。 - スケーリング – 分散実行には
torchrunフラグを前置するか、--nproc_per_nodeを使用。 - カスタマイズ – コマンドラインで任意の設定項目を上書き、または
tune cpでYAMLをローカルにコピーして編集。
状態 – プロジェクトは2025年に開発が終了し、現在はメンテナンスされていませんが、PyTorchネイティブなLLMファインチューニングスタックとして、誰でも利用可能なコードベースはそのまま残っています。
上記のすべての情報はリポジトリのREADMEから直接取得しており、外部の仮定は一切加えていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト