Soup: 4GB 顯示卡也能微調 8B 大模型的命令列工具
MakazhanAlpamys/Soup
一條 YAML 配置微調大語言模型, 獨創層流式技術讓 4GB 筆記本顯示卡跑通 80 億引數模型, 峰值視訊記憶體僅 3.32GB
成熟度:維護活躍, 最近提交 0 天前, 開放 53 個 issues, 持續迭代中
项目体检
部署 · 基于 Docker Compose 一键启动, 需 NVIDIA GPU 支持, 或直接 pip 安装本地运行, 默认无固定端口(训练工具非服务)
成本 · 开箱即用无需外部 API Key, 训练依赖本地 GPU(支持 4GB 起), 可选接入 Hugging Face 模型库(需梯子), 轻量 CLI 模式无 PyTorch 依赖
技术 · Python 3.10-3.12 + PyTorch + Transformers + PEFT + TRL, 支持 QLoRA/LoRA/DPO, 可导出 GGUF 格式
许可 · Apache-2.0 协议, 允许商业使用、修改和分发, 需保留版权声明
活跃 · 最新版本 v0.73.3 发布于 2026 年 8 月, 38 位贡献者, 最近提交 0 天前, 维护活跃
解決什麼
大語言模型微調長期被高視訊記憶體門檻卡死: 傳統方案訓練 80 億引數模型需要 24GB 以上視訊記憶體, 普通開發者只能租用雲端 GPU 或放棄本地訓練。即使採用 QLoRA 等量化技術, 配置環境仍需反覆除錯 SSH 連線、CUDA 版本、依賴衝突, 30-50% 時間耗在基礎設施而非模型最佳化。Soup 通過獨創的 層流式技術(Layer Streaming) 將凍結的基礎模型分層載入到視訊記憶體, 實測讓 4GB 筆記本顯示卡(RTX 3050 Laptop)以 119.6 tok/s 速度訓練 Llama-3.1-8B, 峰值視訊記憶體僅 3.32GB, 且與常規駐留方式的輸出完全一致。
為何火
該專案在 GitHub 獲得 5200+ stars, 核心吸引力在於 打破視訊記憶體牆: 免費 Colab T4(15GB)、甚至 4GB 消費級顯示卡都能跑通 80 億引數模型微調, 這在以往不可想像。其次是 零配置哲學 —— 一個 YAML 檔案定義資料集、模型、訓練引數, 執行 soup train 自動處理批次大小、GPU 檢測、量化策略, 無需手動調優。對比商業 MLOps 平臺(如 Weights & Biases)需要雲端賬號和付費計劃, Soup 完全本地執行, 適合預算有限的個人開發者和小團隊快速驗證想法。
核心功能
- 層流式訓練(Beta): 將基礎模型按解碼器層切片, 每次僅載入一層到視訊記憶體, 訓練時逐層流式計算。實測 Llama-3.1-8B + NF4 量化在 4GB 顯示卡上可用, 且輸出與全駐留方式按位一致
- 一鍵微調: 支援 SFT(監督微調)、DPO(直接偏好最佳化)、QLoRA/LoRA 等主流技術, 通過 YAML 配置即可切換
- 自動最佳化: 根據硬體自動選擇批次大小、梯度累積步數、量化精度(NF4/INT8), 無需手動計算視訊記憶體佔用
- 格式轉換: 訓練完成後可匯出 GGUF 格式, 直接供 Ollama 等推理工具使用
- 輕量 CLI: 核心安裝包(
soup-cli)不含 PyTorch, 僅 CLI 和資料工具; 訓練功能通過pip install "soup-cli[train]"按需安裝
安裝
基礎安裝(僅 CLI 工具):
pip install soup-cli
完整訓練環境:
pip install "soup-cli[train]" # 包含 PyTorch/Transformers/PEFT 等
Docker 方式(需 NVIDIA Docker):
docker compose up # 自動掛載 GPU, 工作目錄對映到 /workspace
系統要求: Python 3.10-3.12(故意不支援 3.13+, 避免 torch 載入器崩潰), CUDA 相容 GPU(最低 4GB 視訊記憶體可用層流式, 常規模式建議 8GB+)。
適合誰
- 視訊記憶體受限的研究者: 只有消費級顯示卡(RTX 3050/3060)但需要微調 7B-13B 模型的學生或獨立開發者
- 快速驗證場景: 不想配置複雜 MLOps 流程, 只需本地跑通概念驗證(PoC)的團隊
- 離線環境: 無法穩定訪問雲端 GPU 或需要資料本地化的場景(注意首次下載模型仍需聯網)
- 成本敏感使用者: 避免按小時付費的雲端 GPU, 用自有硬體長時間訓練
不適合: 需要分散式多卡訓練、生產級監控告警、或已有成熟 Kubernetes 叢集的大型團隊(此時 Weights & Biases 等商業方案更合適)。
社群評價
暫無足量社群公開討論, 以下為基於專案本身的中立評估: 該專案技術創新點明確(層流式訓練), 且提供可復現的基準測試(Colab notebook 限制程序到 4GB 後驗證輸出一致性), 在 GitHub 快速積累 5200+ stars 和 38 位貢獻者。v0.74.0 版本修復了重大記憶體洩漏(凍結基礎模型被錯誤載入為 fp32, 修復後視訊記憶體佔用降低 2.59 倍), 說明專案仍在快速迭代中。開放 53 個 issues 反映活躍的使用者反饋, 但也暗示存在待解決的邊界情況。Apache-2.0 協議和詳細文件降低了商業應用門檻, 但層流式功能標註 Beta 狀態, 生產使用需自行驗證穩定性。
選型對比
vs Weights & Biases / Comet ML(商業 MLOps):
- Soup: 完全本地, 零月費, 但缺少實驗追蹤、團隊協作、超引數掃描等企業功能
- 商業工具: 提供視覺化面板、模型登錄檔、CI/CD 整合, 但需雲端賬號且按用量計費
vs Axolotl / LLaMA-Factory(同類開源):
- Soup: 主打低視訊記憶體(4GB 可用), 配置極簡(單 YAML), 但功能相對基礎
- Axolotl: 更靈活的訓練策略配置, 但需手動計算視訊記憶體、調整超參
- LLaMA-Factory: 支援更多模型架構和資料格式, 但安裝依賴更重
核心取捨: Soup 犧牲高階功能換取 上手速度 和 硬體相容性, 適合快速驗證而非生產部署。
已知坑
- 首次執行需梯子: 從 Hugging Face 下載模型和資料集需穩定國際網路, 建議提前用
huggingface-cli download快取到本地 - 層流式仍為 Beta: README 明確標註實驗性功能, 某些模型架構(如 Qwen 早期版本)可能不相容, 需回退到常規模式
- Python 版本硬限制: 不支援 3.13+, 因 PyTorch 2.5.x 在新版本 Python 上有載入器崩潰問題(專案故意設定上界避免使用者遇到無法定位的 C++ 錯誤)
- v0.74.0 重大修復: 之前所有版本的 SFT 訓練都將凍結基礎模型錯誤載入為 fp32(雙倍視訊記憶體佔用), 升級後視訊記憶體佔用大幅下降但需重新測試已有配置
- 免費 Colab 相容性: T4/P100 等老架構 GPU 在早期版本無法使用層流式(因 fp16 GradScaler 與 LoRA 介面卡 dtype 衝突), v0.74.0 已修復但需驗證
- 無內建實驗追蹤: 不記錄歷史訓練指標, 需手動儲存檢查點或整合 TensorBoard
資料來源: GitHub 倉庫 MakazhanAlpamys/Soup + 專案 README + 技術文件
安装方式:pip