MakazhanAlpamys/Soup
Fine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.
Soup – 1コマンドでLLMのファインチューニングとポストトレーニング
何ができるか – SoupはPythonベースのCLI(およびオプションのWeb UI)で、LLMのファインチューニングパイプラインを1つの再現可能なワークフローにまとめています。小さなYAML設定ファイルで、
- HuggingFaceからベースモデルをダウンロードし、
- LoRA / QLoRAアダプターを適用し、
- レイヤーストリーミング を使って凍結されたベースをGPUに保持しないことで、低スペックGPU(4GB VRAM程度)でも量子化トレーニングを実行し、
- 評価、マージ、GGUF/ONNX/TensorRTなどへのエクスポート、さらにOpenAI互換APIによるモデルサーバー化までを可能にします。
すべては soup コマンドで自動的に制御され、手動のSSHやカスタムスクリプト、煩雑な環境変数の設定は不要です。
主な機能(READMEに記載)
| 機能 | 得られる利点 |
|---|---|
| 1コマンドワークフロー | soup init … && soup train でデータ読み込みからチェックポイント保存までを一括処理。 |
| レイヤーストリーミング(ベータ) | デコーダーレイヤーをRAMからGPUへ1つずつストリーミングし、8Bモデルを4GBのラップトップGPUでトレーニング可能(約120トークン/秒、ピーク3.3GB)。 |
| QLoRA & 4ビット量子化 | メモリ効率の良いファインチューニング。バッチサイズ、勾配スケーリングなどを自動選択。 |
| 広範なモデル対応 | AutoModelForCausalLM で読み込めるモデルすべて – Llama‑3.x/4、Qwen、Gemma、Mistral、Mixtral、Phi‑4など。 |
| 複数のトレーニング目的 | SFT、DPO、GRPO、PPO、KTO、ORPO、SimPO、IPO、BCO、ツールコール、事前学習、知識蒸留、視覚/音声など。 |
| Web UIとダッシュボード | soup ui でローカルのGradio風インターフェースを起動し、データセットの検査、リアルタイムメトリクス、チャットが可能。 |
| エクスポートとサーバー化 | LoRAをマージし、GGUF(llama.cpp/Ollama)、ONNX、TensorRT、AWQ、GPTQ、BitNetにエクスポートし、OpenAI互換サーバー(soup serve)を実行可能。 |
| 豊富なドキュメントとレシピ | 100以上もの準備済みモデルレシピ、データフォーマット、コンプライアンス、パフォーマンスチューニングの詳細ガイド。 |
| クロスプラットフォーム | CUDA GPU、Apple Silicon(MPS)、CPU(テスト用)で動作。Dockerイメージも利用可能。 |
| コミュニティ主導 | 最近のリリースでは95%以上が外部PR、活発なDiscord/Telegram、DOIリンク付き論文あり。 |
クイックスタート(READMEより)
# 軽量CLIのインストール(PyTorch不要)
pipx install soup-cli
# トレーニングスタックの追加(torch, transformers, peftなど)
pipx install "soup-cli[train]"
# 設定の初期化(インタラクティブウィザードまたはテンプレート)
soup init --template chat
# 生成された soup.yaml でトレーニング
soup train
同じコマンドは pip、uv tool、またはGitチェックアウトからも利用可能。
強み
- 低リソースでのファインチューニング – レイヤーストリーミングにより、安価なラップトップでも8Bモデルが可能。
- ゼロ設定の使いやすさ – バッチサイズ、GPUタイプ、量子化レベル、データフォーマットを自動検出。
- ワンストップツールチェーン – トレーニング、評価、マージ、エクスポート、サーバー化をすべてカバー。
- 拡張性 – オプションの拡張(
[fast]、[mlx]、[ui]、[serve]など)で高速化、Apple Silicon対応、UIを追加可能。不要な重い依存関係を引き込まない。 - 優れたドキュメント – 完全なドキュメントフォルダ、コマンドリファレンス、多数のチュートリアル(Colabノートブック、動画)。
制限事項 / 注意点(プロジェクトが明記)
- レイヤーストリーミングはベータ版 – 一部のGPUモデル(例:無料Colab/T4)で失敗する可能性あり。設定ファイルに
stream_layers: trueが必要。 - Pythonバージョン制限 – 公式サポートは3.10〜3.12。3.13+ではwheel解決の問題が発生する可能性。
- Torch 2.5.xとの互換性問題 –
torch>=2.5.0とtrl>=0.29は競合。新しいtorchで再インストールが必要。 - CPUトレーニングはテスト用 – 非常に遅く、本番用途には向かない。
- 一部の高度なバックエンド(DeepSpeed, FSDP)はオプション拡張で、追加設定が必要。
- セキュリティ –
soup serveは、ループバックホスト以外にバインドする場合、ツール認証トークンがなければエラーで終了。/v1/tools/bashエンドポイントはOSレベルの隔離を経てのみ再有効化。
どんな人に向いているか
- CUDA設定に悩まず、個人ワークステーションでLLMをファインチューニングしたい研究者や趣味人。
- 再現性があり、1コマンドでパイプラインが完結し、デプロイフォーマットへのエクスポートも対応する小規模チーム。
- トレーニング中にデータセットの検査やリアルタイムチャット用のUIが必要な人。
まとめ
Soupは本物で、積極的にメンテナンスされているオープンソースプロジェクトです。LLMファインチューニングの下請け作業を抽象化しています。最大の特徴はレイヤーストリーミングで、低VRAMハードウェアでのトレーニング限界を押し広げており、その他のツールチェーン(設定駆動CLI、Web UI、エクスポートオプション)により、実験用途から軽量な本番運用まで実用的です。
関連
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト