系统学习 AI 学习路径:从 GPU 运行时到推理、微调与 RAG 评估

版本信息最后核对:2026-10-24

vllm-lora

vLLM 多 LoRA 服务:一个基座模型动态挂载多个适配器,按请求路由

补充说明

vLLM 支持在同一个基座模型上加载多个 LoRA 适配器,按请求里的 model 字段路由到不同适配器。它解决“多个微调版本共用一个基座、又不想每个版本单独起一个完整模型”的问题,适合多租户、A/B 测试和按客户定制。LoRA 只训练低秩适配器,不改变基座权重;推理时适配器权重会额外占用显存。

vLLM 的 LoRA 支持有上限:--max-loras 控制同时加载的适配器数量,--max-lora-rank 控制最大秩。vLLM 0.12 起已移除 LoRA 额外词表支持(原 --lora-extra-vocab-size)。适配器需要是 PEFT 格式,并与基座模型架构、隐藏维度匹配。

常用示例

# 启动基座模型,加载两个 LoRA 适配器
vllm serve Qwen/Qwen2.5-7B-Instruct \
  --enable-lora \
  --max-loras 4 --max-lora-rank 64 \
  --lora-modules customer-a=/models/lora/customer-a \
                   customer-b=/models/lora/customer-b \
  --host 0.0.0.0 --port 8000
# 请求时用 model 字段选择适配器
curl http://localhost:8000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"customer-a","messages":[{"role":"user","content":"你好"}]}'

# 不指定适配器时使用基座模型
curl http://localhost:8000/v1/models

运行时动态加载/卸载(需要开启对应开关,按 vLLM 版本确认):

VLLM_ALLOW_RUNTIME_LORA_UPDATING=1 vllm serve Qwen/Qwen2.5-7B-Instruct \
  --enable-lora --max-loras 8 --max-lora-rank 64

curl -X POST http://localhost:8000/v1/load_lora_adapter \
  -H 'Content-Type: application/json' \
  -d '{"lora_name":"customer-c","lora_path":"/models/lora/customer-c"}'

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. vLLM 多 LoRA 服务如何把请求路由到不同适配器?
  2. --max-loras 和 --max-lora-rank 分别限制什么?为什么不能只调大?
  3. 生产环境开放动态加载 LoRA 有什么风险?
答案
  1. 请求里的 model 字段填写适配器名称,vLLM 按 --lora-modules 注册的名称路由;基座模型用基座名称。
  2. --max-loras 限制同时加载的适配器数量,--max-lora-rank 限制适配器秩;每个适配器都占显存,调大要结合显存和并发压测。
  3. 攻击者可能加载任意路径的适配器,造成权重替换、数据泄漏或资源耗尽;要限制路径、来源和调用权限。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令