swift 模型合并实战指南:一条 export 命令,把 LoRA checkpoint 变成可上线的完整模型

发布时间:2026/11/6 0:06:26

swift 模型合并实战指南:一条 export 命令,把 LoRA checkpoint 变成可上线的完整模型 swift 模型合并实战指南一条 export 命令把 LoRA checkpoint 变成可上线的完整模型【免费下载链接】swiftUse PEFT or Full-parameter to CPT/SFT/DPO/GRPO 600 LLMs (Qwen3.6, DeepSeek-V4, GLM-5.1, InternLM3, Llama4, ...) and 300 MLLMs (Qwen3-VL, Qwen3-Omni, InternVL3.5, Ovis2.5, GLM4.5v, Gemma4, Llava, Phi4, ...) (AAAI 2025).项目地址: https://gitcode.com/GitHub_Trending/swift1/swift用 swift魔搭社区的大模型训练推理工具箱做 LoRA 微调后产出的是一个几 MB 的 adapter 目录直接上线还要在推理端动态加载既慢又挑框架。swift 模型合并能解决这个问题一条swift export --merge_lora true命令把 LoRA 权重融合进基础模型产出一个独立、可直接被 vLLM 等引擎加载的完整模型。下面按合并前检查 → 执行融合 → 验证部署的顺序走完整个流程。从 checkpoint 到可部署模型中间差了什么一次 swift LoRA 训练结束output/vx-xxx/checkpoint-xxx目录里通常有两类东西adapter 权重文件和一份args.json记录训练时的全部参数。前者是增量后者是说明书。合并的价值在于推理不再需要挂 adapter请求处理路径更短延迟更低产出的就是标准 Hugging Face 权重目录vLLM、SGLang、lmdeploy 这类推理框架原生支持单个模型目录便于分发、备份和版本管理合并前先确认 checkpoint 里有没有说明书swift export 的关键机制是自动读参当指定了--adapters或--model指向一个本地 checkpoint 目录时swift/arguments/base_args/base_args.py 中的load_args_from_ckpt会加载该目录下的args.json把基础模型 ID、模板、量化配置等字段回填进当前参数。所以只要你的 checkpoint 是用 swift 训练出来的就不需要手动写--model有args.json→ 什么都不用多说只给--adapters没有args.json旧版本或第三方产物→ 必须显式补--model Qwen/Qwen2.5-7B-Instruct之类的基础模型参数否则会在断言处直接报错硬件方面合并过程需要把基础模型完整加载进内存并做矩阵融合7B 级模型建议留足 24GB 显存或直接用--device_map cpu走 CPU配合 examples/export/quantize/awq.sh 的做法。一条命令完成权重融合仓库自带的官方示例 examples/export/merge_lora.sh 只有三行swift export \ --adapters output/vx-xxx/checkpoint-xxx \ --merge_lora true如果不写--output_dir输出目录默认取checkpoint 同级目录 checkpoint-xxx-merged后缀规则见 swift/arguments/export_args.py 的_init_output_dir且默认用 safetensors 分片保存单片上限由--max_shard_size控制默认 5GB。权重融合的数学很直白每个挂了 LoRA 的线性层执行一次低秩增量叠加# 对每个融合层 weight weight (B A) * (lora_alpha / r)代码入口在 swift/pipelines/export/merge_lora.pyprepare_model_template加载基础模型和 adapterSwift.merge_and_unload执行上面的叠加并卸载 adapter最后save_checkpoint写出config.json、分片权重和 tokenizer 文件。进阶用法多适配器、合并即量化、直接推 Hub多适配器融合--adapters可以传多个 checkpoint 路径swift 会依次把每份 adapter 叠加到基础权重上每个适配器的音量由其训练时的lora_alpha / rank缩放因子决定不同任务的结果可以这样混入同一个模型合并即量化同一条命令追加--quant_method和--quant_bits即可方法支持awq / gptq / gptq_v2 / bnb / fp8位宽取 4 或 8。注意awq、gptq需要校准数据--dataset xxx#Nbnb、fp8则不需要。实现细节是先在未量化的原始权重上完成合并、落盘后再做量化避免量化状态下融合失真swift export \ --adapters output/vx-xxx/checkpoint-xxx \ --merge_lora true \ --quant_method awq \ --quant_bits 4 \ --dataset AI-ModelScope/alpaca-gpt4-data-zh#500来源与推送--use_hf true控制基础模型从 Hugging Face 而非 ModelScope 拉取加--push_to_hub true --hub_model_id user/repo可把合并结果直接推到对应 Hub参考 docs/source/Instruction/Export-and-push.md导出 Ollama--to_ollama true会顺带生成 Modelfile见 examples/export/ollama.sh合并后先验一致性再上 vLLM 部署一致性验证对合并前后的模型各问一次同样的问题输出应当一致采样参数记得固定temperature 0或同一seed# 合并前基础模型 adapter swift infer --model Qwen/Qwen2.5-7B-Instruct \ --adapters output/vx-xxx/checkpoint-xxx --stream false # 合并后只给新目录 swift infer --model ./output/vx-xxx/checkpoint-xxx-merged --stream false常见报错定位现象大概率原因处理OOM基础模型装不下显存--device_map cpu或auto拆分到多卡断言args_path: ... args.json不存在checkpoint 不是 swift 生成的手动补--model 基础模型output_dir already exists目标目录已存在换个--output_dir或加--exist_ok true覆盖上推理引擎验证通过后把合并目录交给 vLLM 即可仓库示例 examples/deploy/vllm.sh 展示的是 swift deploy 方式也可直接起 vLLM 服务swift deploy \ --model ./output/vx-xxx/checkpoint-xxx-merged \ --infer_backend vllm \ --served_model_name qwen2.5-merged更完整的参数说明见 docs/source/Instruction/Export-and-push.md 和 docs/source/Instruction/Inference-and-deployment.md。现在就动手回到你的训练输出目录确认checkpoint-xxx里有args.json然后执行开头那条三行命令。跑完先看输出目录是否生成了完整的config.json与 safetensors 分片再做一次前后推理对比——十分钟内你的 adapter 就能变成一个可以直接部署的完整模型。【免费下载链接】swiftUse PEFT or Full-parameter to CPT/SFT/DPO/GRPO 600 LLMs (Qwen3.6, DeepSeek-V4, GLM-5.1, InternLM3, Llama4, ...) and 300 MLLMs (Qwen3-VL, Qwen3-Omni, InternVL3.5, Ovis2.5, GLM4.5v, Gemma4, Llava, Phi4, ...) (AAAI 2025).项目地址: https://gitcode.com/GitHub_Trending/swift1/swift创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/25 7:57:28

嵌入式省IO与Modbus float编码实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 6:15:21

RK3568+OpenHarmony多路显示全栈移植实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 16:51:33

EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析

1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被…

2026/11/5 16:26:13

Rust原来很简单二:所有权系统

Part 2 核心篇 —— 所有权系统 本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理 6…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑