多 LoRA 租户隔离:别让外部用户直接选适配器名
多租户 SaaS 跑大模型,最蠢的做法是:客户端传 model=tenant-a-lora,服务端直接加载本地路径。适配器名不是安全主体,是攻击面。
三层角色拆开
- 制品库:存不可变适配器(权重+rank+alpha+SHA256)
- 控制面:注册、校验、灰度、回滚,只走管理网
- 数据面:vLLM 只认“已解析好的内部部署名”
网关做别名解析
# 外部看到的是能力名 contract-review → 内部解析 tenant-a.contract-review.v3新版本先加载 v4 验证,再原子切别名正在跑的请求不中断,可追溯
vLLM 启动开多 LoRA:
vllm serve Meta-Llama-3.1-8B-Instruct-AWQ \
--enable-lora --max-loras 30 --max-lora-rank 64 \
--max-cpu-loras 32 --gpu-memory-utilization 0.92
隔离红线
- 外部永远不直接碰适配器路径
- API Key 按租户发,不共用通用 Key
- 热加载端点(/load_lora_adapter)只暴露给控制面
- 每次请求带租户上下文,输出可审计、可回滚
适配器很小不代表风险小,一个坏 LoRA 能悄悄改全站输出风格。隔离做的是权限,不是只是路由。
推理部署方案:云数方舟 GPU 推理节点