Soup:用一份 YAML 在本地或云端完成 LLM 微调与后训练
一分钟看懂
Soup 是把大模型微调基础设施收敛成“一个配置、一个命令”的 CLI。它会自动检测硬件、选择批量大小与量化方案,并支持 LoRA/QLoRA 等训练。其特色 Layer Streaming 可把冻结的基础模型逐层从主存送入 GPU,让 4GB 显存的笔记本也有机会微调 8B 量化模型。
你可以用它做什么
- 用聊天、指令等模板初始化训练项目并生成 YAML 配置。
- 在本地 NVIDIA GPU 或 Apple Silicon 等受支持环境上微调模型。
- 通过 QLoRA、量化和自动批量设置降低显存门槛。
- 在远程 GPU 上启动、监控和管理实验,减少手工 SSH 运维。
- 使用统一配置复现实验、评估结果并保存适配器或合并模型。
主要能力
安装 soup-cli[train] 后可用 soup init --template chat 初始化,再执行 soup train。工具强调自动 GPU 检测、量化、批量选择和配置校验。Layer Streaming 在训练 LoRA 时让冻结层不常驻 VRAM,逐解码层传输并保持与普通常驻运行的数值一致性;官方公开基准、论文与 Colab 验证。仓库包含大量模型配置、示例、notebook、基准与测试,并持续修复不同后端和 tokenizer 的正确性问题。
适合哪些人
适合想微调开源 LLM、但不希望自己拼装 Transformers、PEFT、量化与远程训练脚本的研究者和开发者。它能降低基础设施摩擦,但不会替你解决数据质量、任务定义和评估设计。
怎么开始使用
建议创建独立 Python 环境,安装完整训练 extra,运行 soup init --template chat 后逐项检查生成的 YAML,包括模型、数据集、输出目录、量化和训练参数,再执行 soup train。先用小样本跑通并验证 loss、保存与推理,再扩大数据。显存特别有限时显式启用 stream_layers: true,并阅读对应原理、限制和当前基准。
使用前需要知道
Layer Streaming 仍标记为 Beta,速度数字来自特定版本、RTX 3050 Laptop 4GB、Llama 3.1 8B NF4、LoRA、batch 1、seq 512,不能外推到所有硬件和模型;正确性修复后性能也可能变化。低显存可运行不等于训练快,系统内存、PCIe/统一内存带宽和磁盘仍可能成为瓶颈。训练数据、基础模型和输出权重各有许可证及隐私要求;正式使用前必须做独立评估,不能只看训练损失。
官方资料
- GitHub 仓库
- 官网与文档
- 快速开始
- Layer Streaming 说明
- 许可证:Apache-2.0