vLLM 0.6.3 启动时加了 --enable-lora,用 /v1/load_lora_adapter 加载本地 adapter 目录,返回 400,原文 LoRA adapter path is not allowed,目录权限正常。
一开始怀疑是「adapter 的基座模型与当前加载的模型不一致」,查了一圈,方向不对。
把日志和配置对完,能解释这个现象的基本就这几处。服务启动时没有把该目录加进允许列表。也可能是adapter 目录里缺 adapter_config.json。
还有一种情况,路径用了相对路径,服务工作目录不同。
第一件事是确认 adapter 目录内容完整
ls adapter/
再往下启动时显式声明允许的 adapter 路径
python -m vllm.entrypoints.openai.api_server --model Qwen/Qwen2.5-7B-Instruct --enable-lora --lora-modules myadapter=/abs/path/adapter
接着用接口查询已加载的 adapter
curl -s http://127.0.0.1:8000/v1/models | jq -r '.data[].id'
发一次带 adapter 名的请求验证
curl -s http://127.0.0.1:8000/v1/chat/completions -d '{"model":"myadapter","messages":[{"role":"user","content":"hi"}]}'
白天有业务在跑,能验证的部分都压到了晚上做。
当时还开着另一个排查窗口,两边日志对照着看才定位到。
改完先别撤,确认这几项。模型列表里出现 myadapter,用该名字请求返回 200,输出风格与微调前有明显差异。
容易忽略的是,热加载的路径校验是按白名单做的,相对路径和多层软链都容易被判成不合法。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
