MakazhanAlpamys/Soup

Fine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.

Soup – 一键式 LLM 微调与后训练

是什么 – Soup 是一个基于 Python 的 CLI(可选 Web UI),将整个 LLM 微调流程封装为单一、可复现的工作流。通过一个极小的 YAML 配置文件,您可以:

  • 从 HuggingFace 下载基础模型,
  • 应用 LoRA / QLoRA 适配器,
  • 使用 层流式 技术,在低配 GPU(最低仅需 4 GB VRAM)上进行量化训练,将冻结的基础模型保留在 GPU 之外,
  • 评估、合并、导出(GGUF、ONNX、TensorRT 等),甚至通过 OpenAI 兼容 API 提供模型服务。

所有这些操作均由 soup 命令统一协调;无需手动 SSH,无需自定义脚本,也无需繁琐的环境变量。


核心功能(如 README 所述)

功能 你将获得
一键式工作流 soup init … && soup train 从数据加载到检查点保存,一步完成。
层流式(Beta) 逐个将解码器层从 RAM 流式传输到 GPU,使 8B 模型可在 4GB 笔记本 GPU 上训练(约 120 tokens/s,峰值 3.3 GB)。
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 笔记本、视频)。

局限性 / 注意事项(项目中明确指出)

  • 层流式仍为 Beta – 某些 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 端点仅在操作系统级隔离后重新启用。

适合谁使用

  • 希望在个人工作站上微调 LLM 而无需与 CUDA 配置搏斗的研究人员或爱好者。
  • 寻找可复现、单命令流水线并能处理部署格式导出的小团队。
  • 任何需要在训练期间快速查看数据集或进行实时聊天的用户。

总结

Soup 是一个真实、持续维护的开源项目,抽象了 LLM 微调的底层复杂性。其最突出的特性是 层流式,将低 VRAM 硬件的训练能力推向极限,而其余工具链(配置驱动 CLI、Web UI、导出选项)使其成为实验和轻量生产环境的实用选择。

相关