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
相同命令适用于 pip、uv 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.0与trl>=0.29冲突;需使用更新的 torch 重新安装。 - CPU 训练仅用于测试 – 极其缓慢,不适用于生产环境。
- 某些高级后端(DeepSpeed、FSDP)为可选扩展,需额外配置。
- 安全性 –
soup serve在非回环主机绑定时,若无工具认证令牌将报错退出;/v1/tools/bash端点仅在操作系统级隔离后重新启用。
适合谁使用
- 希望在个人工作站上微调 LLM 而无需与 CUDA 配置搏斗的研究人员或爱好者。
- 寻找可复现、单命令流水线并能处理部署格式导出的小团队。
- 任何需要在训练期间快速查看数据集或进行实时聊天的用户。
总结
Soup 是一个真实、持续维护的开源项目,抽象了 LLM 微调的底层复杂性。其最突出的特性是 层流式,将低 VRAM 硬件的训练能力推向极限,而其余工具链(配置驱动 CLI、Web UI、导出选项)使其成为实验和轻量生产环境的实用选择。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目