Soup Skill:4GB 显存一键微调 8B 模型的 YAML 神器
LLM 微调一直是一项「门槛很高」的工作:Python 脚本、PyTorch 配置、LoRA/QLoRA 参数、量化方案、数据准备脚本……对普通开发者来说,从零跑通一个 8B 模型的微调常常要折腾几天。GitHub Trending 上刚刚冒头的 Soup CLI 把这一切压缩成了 一个 YAML + 一条命令,并且能在一张 4GB 显存的游戏本上跑出与 H100 bit-exact 的结果——这就是它这两周冲上 Product Hunt Featured 并被社区刷屏的根本原因。
功能与设计原则
Soup 的核心能力只有一句话:用一份 YAML 把 LLM 的微调、DPO、量化、导出流程串起来,不需要 SSH、不需要手动写训练循环。底层设计原则有三条:
- 极简配置面:所有训练相关参数都收敛到一份可读的 YAML,模板覆盖 chat / instruction / preference 等场景;
- 显存友好:通过 Layer Streaming 把 frozen base 留在内存,按 decoder layer 流式喂给 GPU,实测 RTX 3050 Laptop 4GB 跑 Llama-3.1-8B-Instruct + NF4 峰值仅 3.32 GB;
- 结果可复现:流式训练与常驻训练结果 bit-exact,并在 Colab T4 上提供可一键验证的证明 notebook。
认可度
- GitHub 截至 2026-08-18 约 2,185 stars / 325 forks(API 实测);
- 今日 trending +172 stars,登上 GitHub Trending Python 每日榜;
- Product Hunt Featured,开设 Discord 社群(discord.gg/8RgVbFA6Zq);
- PyPI 包名
soup-cli,安装量持续爬升; - 配套学术论文已上传 Zenodo(DOI: 10.5281/zenodo.21771064)。
链接
- GitHub: https://github.com/MakazhanAlpamys/Soup
- 官网: https://trysoup.dev
- PyPI: https://pypi.org/project/soup-cli/
原作者
Makazhan Alpamys(GitHub: @MakazhanAlpamys),个人开发者,专注本地化 LLM 训练工具链。Soup 是他单人项目,截至发文仍是 GitHub 上把「低显存微调 + 一键化」做得最干净的工程实现之一。
项目介绍
Soup 把自己定位成「LLM fine-tuning 的 YAML 抽象层」。传统训练链路里,研究者要在 transformers / peft / bitsandbytes / accelerate / trl 之间反复拼接,光是选 quantization scheme 就要翻一打文档;Soup 把这些选型全部预置,你只负责两件事——写清楚你想训什么(YAML)、按下 Enter。
项目同时提供 CLI 和 Python SDK 两套入口,soup init --template chat 一键生成可改的样例配置,soup train 启动训练,训完产物可以直接导出为 GGUF / Hugging Face / Ollama 等下游格式。Layer Streaming 是它的最大技术亮点——常规 8B 微调需要把整个 frozen base 装载到显存,Soup 选择把每层从 CPU 端按需送入 GPU,让消费级显卡也能跑完整 SFT/DPO 流程。
核心特点
- 4 GB 显存跑 8B 微调:RTX 3050 Laptop 4 GB 实测 Llama-3.1-8B + NF4 峰值 3.32 GB,速度 119.6 tok/s;
- 结果可复现:流式训练和常驻训练在精度层面 bit-exact,H100 复测 113.00 tok/s、同峰值;
- YAML-only 配置:零样板代码,模板覆盖 SFT / DPO / Preference 等主流任务;
- 多格式导出:训练完直接出 Hugging Face / GGUF / Ollama 三种下游格式,无须额外脚本;
- 透明性能数据:每个版本号都附带 4 GB / H100 上的基准,方便对比回退。
使用方法
# 1. 安装(仅 CLI 用法;需要微调时加 [train])
pip install "soup-cli[train]"
# 2. 在当前目录生成聊天模板 YAML
soup init --template chat
# 3. 按需编辑 soup.yaml(数据路径、base model、LoRA rank、学习率、epochs …)
# 4. 一行启动训练
soup train
可选:用 soup export --format gguf 导出 Ollama 可消费的 GGUF,或 soup export --format hf 直接推到 HuggingFace Hub。
适用场景与目标用户
- 没有 H100 的独立研究者 / 学生:想在笔记本上验证 LoRA / DPO 实验;
- AI 产品 PoC 阶段团队:需要快速把基座模型微调出 demo,而工程资源紧张;
- AI Agent / Skill 开发者:把自己的小模型接到 Claude / 其它 Agent 的私有工具栈里,节省 GPU 预算;
- Local-first 工具爱好者:偏好本地推理(Ollama / LM Studio)的群体。
不适合的:超大模型(>32B)SFT、需要极大规模分布式训练、或者追求训练速度极致的工业产线场景——这些场景仍需要 vLLM + Megatron-LM 级别方案。
输入与输出示例
输入(极简 soup.yaml):
base_model: meta-llama/Llama-3.1-8B-Instruct
task: sft
data: ./data/chat.jsonl
lora:
r: 16
alpha: 32
quantization: nf4
max_seq_len: 1024
epochs: 1
output_dir: ./out/sft
输出:本地 ./out/sft/ 目录下得到 LoRA adapter、合并后的 4-bit 模型、以及 HuggingFace / GGUF 双格式产物,可立即被 Ollama 加载;同时产出 metrics.json 与训练日志,可用 soup inspect 回放。
最小调用流(聊天模板 → 训练 → 一键起本地推理):
soup init --template chat # 生成 soup.yaml
# 编辑数据路径、base_model 等
soup train # 4GB 显存即可启动
soup export --format gguf # 导出 GGUF
ollama run soup-custom "你好" # 直接在本地跑
如果你正在被「显存不够」「配置爆炸」「训练脚本难复现」三件事劝退,Soup 是当下 GitHub 上最值得安装的一个 YAML-driven 微调 CLI。
评论区
登录后可评论。