目前基于知识库搭建,会涉及到embedding和rerank 模型,目前阿里通义千问Qwen3-embedding-8B模型在网上测评效果还不错,本文基于vllm 部署Qwen3-embedding-8B 模型,使用的国产化算力910B2-64G单卡资源。
1、环境要求:
软件 | 支持版本 |
---|---|
CANN | >= 8.1.RC1 |
torch-npu | >= 2.5.1 |
torch | >= 2.5.1 |
Python | >= 3.9, < 3.12 |
2、torch-npu和torch相关的安装,直接pip 安装即可
#安装torch
pip install torch==2.5.1
#安装torch-npu 依赖
pip install pyyaml
pip install setuptools
#安装torch-npu
pip install torch-npu==2.5.1
3、安装vllm和vllm-ascend
① 安装系统依赖
apt update -y
apt install -y gcc g++ cmake libnuma-dev wget git
② pip安装vllm和vllm-ascend
pip install vllm==0.9.0
pip install vllm-ascend==0.9.0rc2
③ 查看vllm serve 服务是否正常
执行vllm serve --help #显示如下图即为安装完成
4、下载Qwen3-embedding-8B模型
git clone https://www.modelscope.cn/Qwen/Qwen3-Embedding-8B.git
也可以通过其他modelscope 其他方式下载,具体可见modelscope
5、加载华为昇腾环境变量
# 配置CANN环境,默认安装在/usr/local目录下
source /usr/local/Ascend/ascend-toolkit/set_env.sh
# 配置加速库环境
source /usr/local/Ascend/nnal/atb/set_env.sh
6、 通过OpenAI服务API接口启动服务
python3 -m vllm.entrypoints.openai.api_server --model /home/jovyan/Qwen3-Embedding-8B \
--max-num-seqs 50 \
--max-model-len 32768 \
--max-num-batched-tokens 32768 \
--dtype bfloat16 \
--tensor-parallel-size 1 \
--block-size 128 \
--host 192.168.0.134 \
--port 1025 \
--gpu-memory-utilization 0.9 \
--served-model-name Qwen3-Embedding-8B \
--enable-prefix-caching
执行上述启动命令,显示如下图,说明运行成功。
7、验证服务
请求示例:
curl http://192.168.0.134:1025/v1/embeddings \
-H "Content-Type: application/json" \
-d '{
"input": "Your text string goes here",
"model": "Qwen3-Embedding-8B"
}'
运行结果如下,表示服务正常
附录讲解
python -m vllm.entrypoints.openai.api_server 支持大量的命令行参数,具体参照vllm serve -help 命令查看更全的参数说明。
–host:指定服务器绑定的主机地址,默认为 http://localhost:8000
–port:指定服务器监听的端口号,默认为 8000
–api-key:设置API密钥,也可通过环境变量 VLLM_API_KEY 设置
–model:指定要加载的模型名称或路径(必需参数)
–served-model-name:在API中使用的模型名称
–tensor-parallel-size:模型并行数。取值需要和启动的NPU卡数保持一致,可以参考1。此处举例为1,表示使用单卡启动服务。
–pipeline-parallel-size:流水线并行的阶段数
–gpu-memory-utilization:GPU内存利用率,默认为0.9
–enable-prefix-caching:启用自动前缀缓存(前缀缓存是一种优化技术,用于在多轮对话和长系统提示的场景中提高性能。通过缓存系统提示和历史对话中的KV Cache,可以显著减少首个Token的延迟)
–max-num-seqs:最大同时处理的请求数。
–max-model-len:推理时最大输入+最大输出tokens数量,输入超过该数量会直接返回。。
–max-num-batched-tokens:prefill阶段,最多会使用多少token,必须大于或等于–max-model-len。
–dtype:模型推理的数据类型。支持FP16和BF16数据类型推理。float16表示FP16,bfloat16表示BF16。
–block-size:PagedAttention的block大小。