使用vLLM部署llama3-8b-instruct时Embeddings端点404错误求助
解决vLLM调用Embeddings端点404错误的问题
问题现象
用vLLM部署llama3-8b-instruct模型时,Chat接口可正常访问,但调用Embeddings接口返回NotFoundError: Error code: 404 - {'detail': 'Not Found'},服务端日志显示:
INFO: 172.30.230.216:52870 - "POST /v1/embeddings HTTP/1.1" 404 Not Found
原因
llama3-8b-instruct是对话专用模型,本身没有预训练的Embeddings输出头,vLLM默认不为这类模型启用Embeddings端点。只有专门的Embedding模型(如BGE系列、OpenAI的text-embedding模型),或者显式配置启用Embeddings的模型,才会开放该端点。
解决方案
方案1:改用专门的Embedding模型
如果需要高质量的Embeddings,部署一个专门的Embedding模型,例如BAAI的BGE-large-en-v1.5:
python -m vllm.entrypoints.openai.api_server --model BAAI/bge-large-en-v1.5
部署完成后,原代码可直接正常调用Embeddings接口。
方案2:强制为Llama3-8B-Instruct启用Embeddings
若必须使用该对话模型生成Embeddings,可在启动vLLM时添加--enable-embedding参数强制开启端点:
python -m vllm.entrypoints.openai.api_server --model meta-llama/Meta-Llama-3-8B-Instruct --enable-embedding
注意:此时模型会使用最后一层隐藏层的输出作为Embeddings,效果不如专门的Embedding模型,仅适合对Embeddings质量要求较低的场景。
验证
重启vLLM服务后重新运行你的代码,即可正常获取Embeddings结果。
内容的提问来源于stack exchange,提问作者Derrick Zhang
相关产品推荐
相关产品推荐

