Xinference 1.x 里启动 bge-reranker-v2-m3,模型列表显示已就绪,调 /v1/rerank 一直返回 503,日志里 worker 启动后立即退出,换 embedding 模型则正常。
一开始怀疑是「显存不足,进程启动后被系统杀掉」,查了一圈,方向不对。
排查方向其实有限,先把可能性排一排。rerank 模型需要单独的 worker 类型,启动时没指定。另一种情况是权重下载不完整,加载报错但状态没更新。
少数情况下是请求路径写成了 /v1/reranking。
动手时先看模型详情里的状态与错误
curl http://127.0.0.1:9997/v1/models | jq '.data[] | {id, status}'
随后用原生接口确认路径
curl http://127.0.0.1:9997/v1/rerank -d '{"model":"bge-reranker-v2-m3","query":"a","documents":["b"]}'
限制显存比例后重启模型
xinference launch --model-name bge-reranker-v2-m3 --model-type rerank --gpu-mem 0.3
等前面都确认过,再确认权重完整后再次加载
du -sh ~/.xinference/cache/bge-reranker-v2-m3
我习惯把每一步的执行时间和结果记在一边,后面复盘省事。
改之前我把相关日志按时间截了一段存着,事后对时间线用得上。
别只看报错消失,验证要多做一步。接口返回 200 与 relevance_score,模型状态稳定在 running,重启后仍可用。
这里还有个坑。状态显示就绪不等于进程活着,503 时先看 worker 日志里有没有 OOM 记录。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
