Soup
一行命令搞定 LLM 微调,4GB 显存跑起 8B 大模型
项目简介
Soup 是一款开源的 LLM 微调命令行工具,主打「一个 YAML 文件,一行命令」即可完成大语言模型的微调训练。它最大的亮点是支持 Layer Streaming(层流式)技术,能够在仅有 4GB 显存的笔记本 GPU 上微调 8B 参数量的模型,降低了 LLM 微调的硬件门槛。Soup 由 MePlay Inc. 开发,采用 Apache-2.0 开源协议,社区活跃,已在 GitHub 获得数千 Star。
核心功能
- YAML 一键配置:一条命令
soup init --template chat生成配置模板,soup train启动训练,无需手动编写复杂训练脚本 - Layer Streaming 极低显存:冻结基础模型留在 CPU 内存,分批次将解码器层以 NF4 格式量化后传入 GPU,峰值显存仅 3.32GB
- 23 种训练方法:覆盖 SFT、LoRA、QLoRA、DPO、ORPO、SimPO、KTO、GRPO、PPO 等主流微调与强化学习算法
- 144 条训练配方:针对不同模型和任务预设最优超参数组合,减少调参时间
- 17 种量化格式:支持 NF4、INT4、FP8、BF16、FP16 等多种量化方案
- 自动 GPU 检测与批大小调整:插入 GPU 后自动识别并优化配置,无需人工干预
- MLX + Apple 适配器:还支持 Apple Silicon 的 MLX 加速,Mac 用户也可本地微调
- Soup Doctor 训练前检查:自动运行 8 项数据质量检查,提前发现 EOS 错误等静默问题
技术实现
Soup 的核心技术是 Layer Streaming(层流式)。传统微调需要将整个基础模型加载到 GPU 显存中,8B 模型至少需要 16GB 显存才能运行。Layer Streaming 将冻结基础模型驻留在 CPU 内存或 NVMe 存储中,每次只将当前计算所需的解码器层以 NF4 量化格式传入 GPU,另一部分不参与梯度计算的冻结层保留在 CPU。配合 LoRA 适配器,训练时只有少量可训练参数在 GPU 上更新。经测试,在 RTX 3050 Laptop(4GB 显存)上,使用 Llama-3.1-8B-Instruct + NF4 + LoRA 配置,批大小为 1、序列长度为 512 时,峰值显存仅 3.32GB,推理速度达 119.6 tok/s,结果与全量加载到 GPU 的标准运行完全一致(bit-exact),且在 H100 集群上验证了可复现性。Soup 还提供 soup data doctor 命令,在训练启动前对数据集进行 8 项聊天模板检查,捕获 EOS bug 等静默数据错误,避免浪费 GPU 计算时间。整个训练栈基于 PyTorch、Transformers、PEFT、TRL 构建,与 Hugging Face 生态深度整合。
快速上手
第一步,安装 Soup CLI:
pip install "soup-cli[train]"
第二步,初始化训练项目(自动生成 YAML 配置):
soup init --template chat
第三步,准备自定义数据集并编辑生成的 YAML 配置文件;
第四步,启动训练(自动检测 GPU、设置批大小和量化参数):
soup train
第五步,训练完成后使用 soup ship 进行质量门控并导出模型。
适用人群
- ML 工程师:在本地消费级 GPU(4~8GB 显存)上微调模型,无需租用云算力
- 研究人员:运行 DPO、ORPO、GRPO、PPO 等偏好学习与强化学习微调实验
- AI 工程师:快速验证数据集和训练策略,缩短实验迭代周期
- 迁移用户:从 LLaMA-Factory、Axolotl、Unsloth 迁出,使用
soup migrate一键转换配置 - 合规需求团队:使用 HIPAA/SOC2/EU-AI-Act 模板构建合规训练流水线
出品方
MePlay, Inc.(美国特拉华州公司),由 Rafik Mamedov 和 Alpamys Makazhan 联合创立,Apache-2.0 开源协议。
官方链接
官网:https://trysoup.dev GitHub:https://github.com/MakazhanAlpamys/Soup
评论与建议
登录 后参与评论或提建议