大模型学习笔记 · 第七篇 · 导出合并与部署使用
LoRA 训完后基座模型未变产物是 adapter 小文件。自己试聊用 chat 命令或 webui给应用调用用 api 服务正式部署前常用 export 把 LoRA 合并成完整模型。推理时的 template 必须和训练一致。模型上线不是终点bad case 回流补数据、再训才是可持续的迭代。一、训完你手里到底有什么LoRA 训练结束后世界上多了一个小文件通常叫 adapter_model.safetensors外加一份 adapter_config.json。基座模型仍然在 Hugging Face 或你的本地路径里权重没有被整体替换。这个 distinction 很重要。给别人用时要么同时提供基座和 adapter让加载端两者一起读要么先用 export 合并成一个完整模型目录再单独部署。很多云平台、推理框架更偏爱后者因为「一个文件夹走天下」。二、最快验证直接加载 LoRA 试聊llamafactory-cli chat examples/inference/qwen3_lora_sft.yaml推理 yaml 里会写 model_name_or_path 指向基座adapter_name_or_path 指向你训好的目录template 和训练保持一致。如果你改过训练的 output_dir记得同步改推理配置。这种方式最适合自己测、内网 demo、以及继续迭代训练。改动 adapter 路径成本低试错快。三、合并成完整模型部署前的常见一步llamafactory-cli export examples/merge_lora/qwen3_lora_sft.yamlmerge 配置里指定基座路径、adapter 路径和 export_dir。执行完成后export_dir 里是合并后的完整权重可以单独拷贝、上传、挂载。若在四 bit 量化基座上训的 LoRA合并流程需要在非量化基座上进行具体以 export yaml 注释和官方文档为准。不要想当然地在量化权重上硬 merge。四、网页聊天给同事看的最省事方式llamafactory-cli webui在 Chat 标签页加载模型和 adapter非技术同事也能点着玩。如果只需要聊天、不需要训练界面llamafactory-cli webchat 打开的是更纯粹的聊天页。演示的价值被低估了。一个能聊的界面往往比 loss 曲线更能推动项目立项。五、OpenAI 风格 API接到产品里llamafactory-cli api examples/inference/qwen3_lora_sft.yaml启动后提供 HTTP 接口路径和请求格式与 OpenAI Chat Completions 类似。NextChat、LobeChat 等客户端可以直接接入你自己的后端也可以用熟悉的 REST 方式调用。这对内网服务特别实用数据不出域模型行为可控前端不必为自家模型单独写一套 SDK。六、生产环境的高吞吐推理个人学习阶段Hugging Face 默认后端足够。QPS 高、延迟敏感的生产场景可以配置 infer_backend: vllm需要安装 vllm 依赖。LoRA 通常需要先 merge或按当前版本文档支持的方式处理。性能优化是上线后的话题不是第一次练手必须解决的。七、部署前花一点时间做验收再次确认推理 template 和训练一致。用固定业务问题集过一遍不是随便聊两句。检查回答里是否泄露训练数据中的隐私习惯。若对外服务merge 后测延迟和并发。记录版本基座模型名、adapter 路径、训练 yaml方便日后复现和回滚。微调项目最容易丢的是「当时怎么训出来的」这条线。版本记录不是形式主义是团队资产。八、一条典型的上线路径SFT 训完用固定问题集验收。方向 OKllamafactory-cli export 合并。内网用 api 起服务或导出到 vLLM 等平台。产品接入收集 bad case回流补数据再训。模型不是训一次就结束的静态文件而是随业务迭代的产品。LLaMA Factory 把训练、试聊、导出、API 串在一起就是为了支持这种循环而不是单次实验。