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

同じコマンドは pipuv 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.0trl>=0.29 は競合。新しいtorchで再インストールが必要。
  • CPUトレーニングはテスト用 – 非常に遅く、本番用途には向かない。
  • 一部の高度なバックエンド(DeepSpeed, FSDP)はオプション拡張で、追加設定が必要。
  • セキュリティsoup serve は、ループバックホスト以外にバインドする場合、ツール認証トークンがなければエラーで終了。/v1/tools/bash エンドポイントはOSレベルの隔離を経てのみ再有効化。

どんな人に向いているか

  • CUDA設定に悩まず、個人ワークステーションでLLMをファインチューニングしたい研究者や趣味人。
  • 再現性があり、1コマンドでパイプラインが完結し、デプロイフォーマットへのエクスポートも対応する小規模チーム。
  • トレーニング中にデータセットの検査やリアルタイムチャット用のUIが必要な人。

まとめ

Soupは本物で、積極的にメンテナンスされているオープンソースプロジェクトです。LLMファインチューニングの下請け作業を抽象化しています。最大の特徴はレイヤーストリーミングで、低VRAMハードウェアでのトレーニング限界を押し広げており、その他のツールチェーン(設定駆動CLI、Web UI、エクスポートオプション)により、実験用途から軽量な本番運用まで実用的です。

関連

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