资讯动态

从训练到上线:Soup merge/export/serve/push一条龙发布工作流

发布时间:2026/9/15 16:06:33 来源:尧图企业网站定制
从训练到上线Soup merge/export/serve/push一条龙发布工作流【免费下载链接】SoupFine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.项目地址: https://gitcode.com/GitHub_Trending/soup12/SoupSoup 是一个用一条命令微调大语言模型LLM的开源工具训练完成后它还提供 merge、export、serve、push 四个命令把 LoRA 适配器合并成完整模型、导出为 GGUF 等推理格式、启动 OpenAI 兼容的推理服务、一键发布到模型 Hub。本文将带你走通这条从训练到上线的完整发布工作流即使你是第一次微调 LLM 也能轻松上手。为什么需要一条龙发布流程 微调 LLM 最劝退新手的往往不是训练本身而是训练之后的琐碎环节合并 LoRA 适配器要查文档、转 GGUF 要手动装工具链、起推理服务要写一堆胶水代码、发模型卡要手拼 Markdown。Soup 的思路是让每个环节都是一条命令且能自动衔接命令作用典型场景soup merge把 LoRA 适配器合并进基座模型得到独立完整模型soup export导出 GGUF / ONNX / TensorRT / AWQ / GPTQ部署到 Ollama 或 C 端推理soup serve启动 OpenAI 兼容推理服务器接入现有应用与 Agentsoup push上传模型并自动生成模型卡发布到模型 Hub 共享值得一提的是Soup 的层流式训练layer streaming能让 8B 模型在 4 GB 显存的笔记本显卡上完成训练发布流程同样对低配环境友好第一步merge —— 合并 LoRA 适配器LoRA 微调产出的只是一个很小的适配器目录soup merge负责把它焊回基座模型。它会从adapter_config.json自动识别基座模型你甚至不需要手动指定# 自动识别基座模型合并结果输出到 ./merged soup merge --adapter ./output --output ./merged # 指定基座模型与数据类型 soup merge --adapter ./output --base meta-llama/Llama-3.1-8B --dtype bfloat16合并完成后终端会直接打印出下一步该做什么chat 试用、export 导出、push 发布工作流不用你在脑子里拼。命令实现可参考 merge.py。小贴士如果只想得到量化产物可以跳过 merge ——soup export检测到 LoRA 适配器时会自动先合并再转换。第二步export —— 一键导出 GGUF / ONNX / TensorRT导出环节是新手翻车重灾区GGUF 需要 llama.cpp 工具链还要编译量化二进制。Soup 的处理方式非常省心自动克隆工具链首次导出 GGUF 时自动把 llama.cpp 固定版本克隆到~/.soup/llama.cpp自动补齐依赖转换脚本需要的额外包gguf、sentencepiece、protobuf会自动安装且刻意不动你训练环境里的 torch避免把 CUDA 版本降级支持多种量化档位q4_0、q4_k_m、q5_k_m、q8_0、f16、f32。# LoRA 适配器直接导出自动合并后转 GGUF q4_k_m 量化 soup export --model ./output --format gguf --quant q4_k_m # 导出 ONNX / TensorRT-LLM 等其他推理格式 soup export --model ./merged --format onnx soup export --model ./merged --format tensorrt更进一步--deploy ollama可以把导出 部署到本地 Ollama压缩成一条命令soup export --model ./output --format gguf --deploy ollama --deploy-name my-model完整的格式清单含 AWQ、GPTQ、BitNet 等和 llama.cpp 编译说明见官方文档 serving-and-export.md命令实现见 export.py。第三步serve —— 启动 OpenAI 兼容推理服务不想动 GGUF 生态的话soup serve直接在本地起一个 OpenAI 兼容的 API 服务默认端口 8000提供POST /v1/chat/completions、GET /v1/models、GET /health三个端点pip install soup-cli[serve] soup serve --model ./merged --port 8000现有代码里任何使用 OpenAI SDK 的地方只需把base_url指向本地服务即可无缝切换一行配置都不用改。它还有不少生产级能力多后端可选transformers默认、vLLM吞吐高 2-4 倍、SGLang、MIILoRA 热切换--adapters chat./chat code./code可同时加载多个适配器运行时通过接口切换无需重启服务结构化输出--structured-output json按 JSON Schema 约束生成适合工具调用场景观测面板--dashboard开启实时监控/metrics端点输出请求数、token 数、P50/P95 延迟。源码实现位于 serve.py。第四步push —— 发布模型并自动生成模型卡 最后一站是共享。soup push把整个模型目录完整模型或 LoRA 适配器上传到 Hub自动创建仓库并附赠一张模型卡README# 先配置登录或使用 HF_TOKEN 环境变量 huggingface-cli login # 上传并自动生成带训练配置的模型卡 soup push --model ./merged --repo username/my-model # 私有仓库 soup push --model ./output --repo username/my-model --private自动生成的模型卡 v2 会带上训练时的关键信息任务类型、基座模型、LoRA rank/alpha、学习率、优化器等 —— 这些来自训练时写在输出目录里的training_config.yaml你完全不用手写任何文档。此外还能通过--collection把新仓库挂进已有的 Hub 合集。实现细节见 push.py。串起来4 步完成一次完整发布下面就是本文的完整工作流从训练产物到上线共享soup train # 1. 用一份 YAML 完成微调前情提要 soup merge --adapter ./output --output ./merged # 2. 合并为完整模型 soup export --model ./merged --format gguf --quant q4_k_m # 3. 导出 GGUF soup serve --model ./merged --port 8000 # 4. 本地起 OpenAI 兼容服务 soup push --model ./merged --repo username/my-model # 5. 发布到 Hub每一步的输出都会提示下一步命令整条链路没有断点。如果你更喜欢图形界面Soup 的 Web UI 也能完成训练配置、启动与监控小结与延伸阅读Soup 把 LLM 微调后的最后一公里拆成了四个职责清晰的命令每条命令都能独立工作也能自动衔接成一条龙只想本地用merge或export Ollama 即可想接入现有应用serve起一个 OpenAI 兼容端点想分享成果push一键发布模型卡自动写好。更多命令细节可以在 commands.md 里查阅发布与服务的全部高级选项投机解码、前缀缓存、部署自动驾驶等都在 serving-and-export.md 中有完整说明。【免费下载链接】SoupFine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU.项目地址: https://gitcode.com/GitHub_Trending/soup12/Soup创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价