Soup CLI icon

Soup CLI

Soup CLI 是一款可在自有硬體上進行 LLM 微調與後訓練的命令列工具,支援低 VRAM 的 layer streaming,並提供資料檢查、設定產生、偏好最佳化與 checkpoint gating。

Soup CLI

Soup CLI 是什麼

Soup CLI 是一款用於在自有硬體上訓練與操作 LLM 的命令列工具。網站將其定位為一套一體化的後訓練堆疊,涵蓋資料檢查、設定產生、監督式與偏好式微調、評估 gating,以及從單一介面完成匯出或 serving 工作流程。

其最具辨識度的能力是 layer streaming:當模型無法完整駐留在 VRAM 中時,Soup 可以將 frozen base 保留在 CPU RAM 或 NVMe,並一次將一個 decoder layer 串流進 GPU。文件將這視為一種可在 4 GB 筆電 GPU 上微調 Llama-3.1-8B 等模型的方法,同時支援 SFT、DPO、ORPO、SimPO 與 KTO 等方法。

功能特色

以規則為基礎的設定產生

以規則建立訓練設定,而不是靠手動反覆試誤。網站說 Soup 會替你寫入任務、量化、學習率與 epoch 設定,並可自動偵測其他細節,例如 optimizer、scheduler、目標模組與 batch size。

分拆式安裝模式

先安裝輕量版本,再只加入你需要的堆疊。核心套件不含 PyTorch,而額外套件涵蓋 training、serving、evaluation、資料工具、MLX、DeepSpeed、Liger、TensorRT、ONNX 及相關工作流程。

低 VRAM 訓練的 layer streaming

當模型太大而無法放入 VRAM 時,可將 frozen base 從 RAM 或 NVMe 串流載入。文件中的 BETA 模式會把 base 重寫為逐層分片,並在專用 CUDA stream 上將一次一層複製到預先配置的 VRAM buffer。

可在同一個串流式 base 上使用的偏好方法

在串流式 base 上支援 supervised fine-tuning 與偏好訓練工作流程。來源明確列出 SFT、DPO、ORPO、SimPO 與 KTO,並指出 DPO 可重用串流中的 base 作為參考模型,而無需載入第二份完整副本。

資料檢查與保存 gating

在訓練前加入資料檢查,並在訓練期間對保存進行 gating。網站描述了 data doctor、semantic deduplication、topic mapping、canary checks、replay,以及與權重綁定的 SHIP 或 DON'T-SHIP 判定。

從其他工具遷移設定

從其他工具遷移既有設定。Soup 顯示可透過單一指令將 LLaMA-Factory、Axolotl 與 Unsloth 轉換為 Soup YAML。

常見使用情境

  • 低 VRAM 模型微調

    使用 Soup 在 VRAM 有限的機器上準備並微調 LLM。文件中的 layer-streaming 模式是為了處理 frozen base 無法駐留在 GPU 的情況。

  • 在相同硬體上進行偏好訓練

    將同樣的 base streaming 路徑用於偏好最佳化工作流程,例如 DPO、ORPO、SimPO 與 KTO。文件特別指出 DPO 可重用串流中的 base 作為參考模型,而無需第二份完整權重副本。

  • 訓練前的資料清理與驗證

    在訓練前先使用資料工具,找出可能浪費執行的問題,包括重複或低多樣性的列、prompt/template 問題、記憶化檢查,以及舊任務的 replay。

  • 遷移既有訓練設定

    當你已經有其他工具的設定,並希望將它們移到 Soup YAML 時使用 Soup。網站展示了從 LLaMA-Factory、Axolotl 與 Unsloth 的遷移路徑。

  • Checkpoint gating 與交接

    當你想判斷某個 checkpoint 是否應該出貨,接著再移轉到下游 serving 或部署工作流程時,使用 gating 與匯出路徑。

Pros and Cons

Pros

  • 可透過逐層串流 frozen base,訓練無法完整放入 VRAM 的模型。
  • 提供不含 PyTorch 的輕量核心安裝,方便進行檢視、設定與資料工具操作。
  • 支援多種超越單純 SFT 的訓練模式,包括 DPO、ORPO、SimPO 與 KTO。
  • 提供以規則為基礎的設定產生,以及多項訓練設定的自動偵測。
  • 包含資料準備與 gating 工具,例如 data doctor、semantic deduplication、canary checks 與 SHIP 或 DON'T-SHIP 判定。
  • 支援 Python 3.10 至 3.12,並在文件中描述了 CUDA、Apple Silicon,以及部分實驗性的 CPU 或 MPS 使用情境。

Cons

  • Layer streaming 標示為 BETA,且文件說明其速度比駐留式訓練更慢。
  • 文件指出串流仍會讓 embeddings 與 logits 保持駐留,因此峰值 VRAM 會降低,但不會完全消除。
  • 網站提到的某些功能,例如 multi-GPU launch、DeepSpeed with LoRA、SGLang serving 與 Liger kernel,在發布文字中被註明於早期驗證執行時曾有覆蓋問題或尚未執行。

FAQ

如何安裝 Soup CLI 以進行訓練?

Soup CLI 透過 pip 安裝。文件將安裝分成一個供 CLI 與資料工具使用的輕量核心套件,以及用於訓練、服務、UI、評估、資料與其他後端的額外套件。若要進行訓練,文件示範 `pip install "soup-cli[train]"`。

Soup CLI 的基本使用是否需要 PyTorch?

是。文件指出核心安裝不包含 PyTorch,而訓練堆疊只會在安裝 `[train]` 額外套件時加入。這讓你可以在不安裝完整訓練依賴的情況下使用 `soup init`、資料工具與檢視指令。

Soup CLI 中的 layer streaming 是什麼?

Layer streaming 是一種可選的 BETA 模式,適用於無法完整駐留於 VRAM 的模型。文件說明它會將 frozen base 保留在 CPU RAM 或 NVMe,並一次將一個 decoder layer 串流進 VRAM;但它比駐留式訓練更慢,而且 embedding 與 logits 張量仍會保留駐留。

Soup CLI 支援哪些訓練方式?

文件與發布說明指出,Soup 可在串流式 base 上執行 supervised fine-tuning 與偏好方法,包括 DPO、ORPO、SimPO 與 KTO。發布說明也提到可透過 `lora.r 0` 進行 full fine-tuning,並提供 DeepSpeed ZeRO-3 CPU-offload 預設值。

Soup CLI 支援哪些平台?

安裝文件列出 Python 3.10 到 3.12,並建議使用相容 CUDA 的 GPU。Apple Silicon 可透過 MLX 額外套件支援,而 CPU 或 MPS 則被描述為某些工作流程中的實驗性選項。

Quick Facts

類別
開發者工具
主要用途
LLM 微調與後訓練
交付形式
CLI
授權
Apache-2.0
來源網域
trysoup.dev
支援的 Python 版本
3.10 至 3.12