专栏进度:10 / 10 (微调实战专题 · 大结局)
在实验室里,我们习惯用 peft 加载模型;但在生产环境,我们需要的是一个各部分融合为一、响应极快、显存占用极低的单体模型。

一、 权重合并:从“插件”到“一体化”

LoRA 训练产生的是增量权重。为了推理性能,我们需要将 A 和 B 矩阵的乘积直接加回原始权重 W 中。

  1. Python 实战:一键合并脚本
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base_model_path = "./base_models/qwen2.5-7b"
lora_model_path = "./saves/security_agent_lora"
export_path = "./final_model/security_expert_v1"
  1. 加载基座和插件
base_model = AutoModelForCausalLM.from_pretrained(base_model_path, torch_dtype="auto", device_map="cpu")
model = PeftModel.from_pretrained(base_model, lora_model_path)
  1. 合并并卸载 (Merge and Unload)

这一步会将 LoRA 权重永久注入基座模型

final_model = model.merge_and_unload()
  1. 保存完整模型
final_model.save_pretrained(export_path)
tokenizer = AutoTokenizer.from_pretrained(base_model_path)
tokenizer.save_pretrained(export_path)

print("权重合并完成!现在你可以像调用普通模型一样调用它了。")

二、 推理加速:引入 vLLM 引擎

合并后的模型如果直接用 transformers 库跑,并发能力极弱。在工业界,vLLM 是目前的王者,它利用 PagedAttention 技术,能将推理吞吐量提升 10 倍以上。

  1. 部署你的行业专家 API
    只需一行命令,即可开启一个兼容 OpenAI 接口标准的模型服务:

Bash

python -m vllm.entrypoints.openai.api_server
–model ./final_model/security_expert_v1
–trust-remote-code
–port 8000
–gpu-memory-utilization 0.9
–max-model-len 4096

三、 生产环境的“三道保险”

动态批处理 (Continuous Batching):vLLM 会自动把不同用户的请求拼在一起算,极大提升 GPU 利用率。

多卡并行 (Tensor Parallelism):如果模型太大(如 70B),可以使用 --tensor-parallel-size 2 将模型切分到两张显卡上运行。

健康检查与监控:配合 Prometheus 和 Grafana,实时监控你的行业模型是否出现了“推理超时”或“显存溢出”。

四、 避坑指南:部署后的“最后一道雷”

Tokenizer 不一致:合并权重时,务必检查 tokenizer_config.json 是否被覆盖。如果分词器版本不对,模型会满嘴胡言。

显存碎片化:在高并发场景下,KV Cache 会迅速占满显存。对策:根据业务需求调整 max_num_seqs 参数。

精度退化:如果你在第七篇做了量化,部署时请确保推理框架(如 vLLM)支持该量化格式(GPTQ/AWQ/GGUF)。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐