LoRA 热加载服务化
适配器(LoRA)在服务化形态下的价值是权重共享:一份基座权重挂载多个微调适配器,各变体只额外占用少量显存,远小于为每个风格各存一份完整模型。请求时按适配器名指定要用的那一个,同一实例即可服务多个变体,适合多租户与多风格并存的场景。
基本信息
| 启用方式 | 推理引擎的 LoRA 开关与适配器列表参数 |
|---|---|
| 机制 | 基座权重共享,适配器按需加载 |
| 请求方式 | 把模型名写成适配器名(或以框架支持的字段指定) |
| 约束 | 适配器与基座的版本、结构与秩配置必须匹配 |
| 容量限制 | 适配器数量与秩通常有上限,具体参数以版本文档为准 |
典型使用场景
- 多租户微调:每个客户一套适配器,共享同一个基座实例
- 风格切换:正式与活泼两种文案风格,靠适配器名切换
- 成本控制:避免为每个变体单独部署一份完整权重
- 灰度新适配器:与线上适配器并存,按流量比例放量
- 动态上下线:较新版本支持运行时挂载与卸载适配器,以版本文档为准
启用 LoRA(vLLM 通用写法)
启用 LoRA(vLLM 通用写法)
vllm serve <基础模型> --enable-lora \
--lora-modules styleA=/path/to/loraA styleB=/path/to/loraB
# 请求时按适配器名调用:
curl http://127.0.0.1:8000/v1/chat/completions -H 'Content-Type: application/json' \
-d '{"model": "styleA", "messages": [{"role": "user", "content": "你好"}]}'
# 校验:同一 prompt 分别用 styleA 与基座模型名调用,对比输出差异是否符合预期部署形态对比
| 形态 | 显存占用 | 适用 |
|---|---|---|
| 整模微调 | 每个变体一份完整权重 | 变体数量少、改造深度大 |
| LoRA 多适配器 | 基座一份 + 适配器增量 | 多风格、多租户场景 |
| 基座 + 少量适配器混部 | 基座 + 常驻适配器 | 热点变体常驻、长尾按需 |
适配器与基座的层结构、秩配置不匹配时会加载失败或输出异常:换基座版本后要重新验证适配器是否仍然可用。
适配器目录需要包含框架要求的配置与权重文件:目录结构不符时,报错通常直接指出缺少某项配置文件,先核对目录再怀疑框架。