你是否曾为微调一个7B/8B大语言模型而卡在环境配置、显存爆炸、量化参数调试、多阶段命令拼接的泥潭里?Soup(Soup CLI)正是为此而生:它把整个LLM微调流程压缩成「一个YAML配置文件 + 一条终端命令」,无需SSH、不碰Docker、不写训练脚本,连RTX 3050 Laptop(仅4GB显存)都能跑通Llama-3.1-8B-Instruct的QLoRA全参数微调。它不是又一个训练框架封装,而是一套面向真实开发者工作流的「零摩擦LLM训练操作系统」。
核心功能
- 单命令启动全流程训练:执行
soup init --template chat && soup train即可完成数据准备、模型加载、LoRA/QLoRA配置、梯度累积、检查点保存等全部步骤,彻底告别手动编写Trainer参数、修改accelerate配置、反复调整batch_size的试错循环。 - 4GB显存跑通8B模型微调:通过独创的「层流式加载(Layer Streaming)」技术,将冻结的基座模型按Decoder层分片加载进GPU显存,避免整模型驻留。实测RTX 3050 Laptop(4GB VRAM)上Llama-3.1-8B-Instruct + NF4量化 + LoRA训练时,峰值显存仅3.32GB,吞吐达119.6 tokens/s,且输出与标准加载方式完全bit-identical(已通过Colab T4免费环境验证)。
- 全自动显存与超参适配:无需手动计算max_batch_size或gradient_accumulation_steps——Soup会根据检测到的GPU型号(从GTX 1650到H100)、可用VRAM、模型尺寸和量化方式,动态推导最优训练配置,连fp16/bf16混合精度策略都自动协商。
- 开箱即用的多范式支持:原生支持监督微调(SFT)、直接偏好优化(DPO)、奖励建模(RM)三大主流后训练范式,且所有流程均共享同一YAML配置结构,切换只需修改
method: sft→method: dpo,无需重写数据管道或损失函数。 - 消费级GPU友好型量化栈:深度集成GGUF、NF4、QLoRA、LoRA等轻量级技术,支持Hugging Face Transformers + PEFT + TRL生态无缝对接,并提供针对4–8GB显存设备优化的量化预设(如
quantization: nf4),避免手动调参导致的OOM或精度崩塌。 - 零SSH本地化工作流:所有操作均在本地终端完成,不依赖远程服务器、Kubernetes集群或云平台。模型权重、日志、检查点全部落盘至本地目录,隐私数据不出设备,特别适合金融、医疗等对数据合规性敏感的场景。
- 一键生成生产就绪配置模板:
soup init --template chat自动生成符合Alpaca/ShareGPT格式的数据预处理逻辑、ChatML对话模板、LoRA秩/Alpha/Target模块设置、学习率预热与衰减策略,新手5分钟即可获得工业级微调起点。 - 跨平台模型部署直连:训练产出的GGUF或合并后的HF格式模型,可直接导入Ollama、LM Studio、Text Generation WebUI等主流本地推理工具,实现「训完即用」闭环,无需额外转换脚本。
技术亮点
- 层流式加载(Layer Streaming)架构:Soup的核心创新在于重构了模型加载逻辑——它不把整个8B基座一次性载入VRAM,而是将Transformer解码器按层切片,在前向传播时动态加载当前所需层,计算完毕立即卸载,显著降低内存驻留压力。该设计已在v0.72.2版本中实证于RTX 3050(4GB)与H100(80GB)双平台,显存占用一致(3.32GB),输出完全一致,论文已发布于Zenodo(DOI: 10.5281/zenodo.21771064)。
- 智能精度降级引擎:v0.74.0重大修复发现:此前所有SFT加载路径均隐式将冻结基座升格为fp32,导致显存浪费近2.6倍(H100实测48GB→18.6GB)。Soup现主动识别「非可训练参数」并强制以checkpoint原始精度(如bf16/NF4)加载,此优化对低显存设备尤为关键,且不影响训练稳定性。
- 声明式YAML驱动引擎:摒弃传统Python脚本式配置,采用扁平化、语义化的YAML描述训练意图——
model: llama-3.1-8b-instruct、quantization: nf4、lora: {r: 64, alpha: 128, target_modules: ["q_proj","v_proj"]},配置即文档,新人可读性强,团队协作无歧义。 - 模块化插件生态:通过pip extras机制(如
pip install "soup-cli[train,mlx]")按需安装训练/推理/苹果芯片支持模块,避免臃肿依赖。已兼容Transformers 5.x、TRL 0.29、PEFT 0.20,Qwen3.5系列文本解码器亦可开箱训练。
适合哪些人用
Soup专为三类用户打造:个人开发者(想在MacBook Pro M3或Windows笔记本上快速验证微调效果)、AI应用工程师(需为垂直场景定制小模型,但无GPU运维团队)、教育研究者(教学演示LLM训练全流程,避免学生卡在环境配置环节)。
真实场景案例:
• 某跨境电商公司算法工程师,使用公司配发的RTX 4060 Laptop(8GB显存),30分钟内完成Llama-3-8B在自有客服对话数据上的QLoRA微调,模型上线后将FAQ回答准确率从68%提升至89%;
• 高校NLP课程教师,为本科生实验课设计「本地微调实战」环节,学生用免费Colab T4(15GB RAM + 16GB GPU)运行notebooks/proof-4gb.ipynb验证层流技术,直观理解显存优化原理。
快速上手
仅需三步:
- 安装:
pip install "soup-cli[train]"(含训练依赖)或精简版pip install soup-cli - 初始化:
soup init --template chat(生成soup.yaml和data/目录) - 训练:
soup train(自动读取YAML,启动训练)
关键配置片段示例(soup.yaml):
soup:
model: meta-llama/Meta-Llama-3.1-8B-Instruct
method: sft
quantization: nf4
lora:
r: 64
alpha: 128
target_modules: ["q_proj", "v_proj"]
stream_layers: true # 启用层流式加载(4GB显存必备)
dataset: ./data/alpaca.jsonl
同类对比 / 注意事项
- vs Hugging Face Transformers + PEFT 手动脚本:Soup省去90%胶水代码,自动处理batch size缩放、梯度裁剪阈值、检查点命名规则等细节;而手动方案需反复调试,易因
device_map="auto"导致显存分配异常。 - vs Axolotl / Unsloth:Axolotl配置复杂(需YAML嵌套多层),Unsloth强绑定CUDA版本;Soup以极简YAML+单二进制为核心,对Windows/macOS/WSL支持更平滑,且层流技术为其独有。
- 注意事项:层流式加载(
stream_layers: true)目前为Beta功能,T4/P100/V100等旧卡需升级至v0.74.0+;DPO训练需确保偏好数据格式严格遵循{'chosen': ..., 'rejected': ...}结构;首次运行建议先用soup train --dry-run预检配置合法性。
项目信息
Fine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.
5.3k
今日 +1,812 stars this week
Stars
790
Forks
Python
Apache-2.0
编程语言:Python|Star 数:5286|开源协议:Apache-2.0|GitHub 项目地址
如果你厌倦了为微调一个8B模型而折腾一整天环境,却只得到一个OOM错误——Soup就是那个让你在下班前喝完一杯咖啡,就看到第一个loss下降曲线的工具。




