使用 vLLM 本地部署 Qwen3-Embedding-8B 模型并接入 Dify 完整指南
环境准备与验证
在开始部署前,需要确保本地环境满足基本要求。以下是环境验证步骤:
1. 显卡驱动和CUDA验证
# 验证NVIDIA驱动状态
nvidia-smi# 实时监控GPU使用情况(新开终端执行)
watch -n 1 nvidia-smi# 验证CUDA安装
nvcc -V
2. Conda环境管理
# 验证Conda版本
conda --version# 列出所有已创建的Conda环境
conda env list
# 或
conda info --envs# 删除已存在的环境(如需要)
conda env remove -n conda_qwen3_embedding_8B# 创建新的Python环境
conda create -n conda_qwen3_embedding_8B python=3.10# 激活环境
conda activate conda_qwen3_embedding_8B
3. PyTorch安装
根据CUDA版本安装对应的PyTorch:
# CUDA 12.1
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121# CUDA 12.2
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu122# 验证Torch GPU支持
python3 -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA可用:', torch.cuda.is_available()); print('CUDA版本:', torch.version.cuda); print('GPU设备:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'None'); print('GPU数量:', torch.cuda.device_count());"
模型下载与部署
1. 下载Qwen3-Embedding-8B模型
# 使用ModelScope下载模型
modelscope download --model Qwen/Qwen3-Embedding-8B
模型默认下载到:
/home/admin1/.cache/modelscope/hub/models/
2. 安装vLLM并启动API服务
Qwen3-Embedding系列模型在文本表征、检索与排序任务中表现卓越,在多语言场景和工业部署中具有显著优势。8B参数版本在MTEB多语言排行榜上排名第一,综合得分达到70.58。
# 启动vLLM OpenAI兼容API服务
python3 -m vllm.entrypoints.openai.api_server \
--model /home/admin1/.cache/modelscope/hub/models/Qwen/Qwen3-Embedding-8B \
--port 8021 \
--tensor-parallel-size 8 \
--gpu-memory-utilization 0.7 \
--swap-space 16 \
--served-model-name Qwen3-Embedding-8B \
--host 0.0.0.0 \
--trust-remote-code \
--max-model-len 8192
参数说明:
- •
--tensor-parallel-size 8:使用8张GPU进行张量并行推理,提升性能
- •
--gpu-memory-utilization 0.7:GPU显存使用率为70%,保留部分显存给系统
- •
--max-model-len 8192:最大输入token长度
- •
--trust-remote-code:信任远程代码,对于需要运行自定义模型代码时必须
3. 服务测试
# 测试API服务连通性
curl -X POST "http://localhost:8021/v1/chat/completions" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-Embedding-8B",
"messages": [{"role": "user", "content": "介绍下杭州"}]
}'
嵌入(Embedding)功能测试
Qwen3-Embedding模型支持标准的OpenAI嵌入API接口,可以进行文本向量化处理:
# 测试嵌入接口
curl http://localhost:8021/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"input": "你好,世界","model": "Qwen3-Embedding-8B"
}'
对于批量文本处理:
curl http://localhost:8021/v1/embeddings \
-H "Content-Type: application/json" \
-d '{"input": ["今天天气不错", "大模型真的很强大"],"model": "Qwen3-Embedding-8B"
}'
接口返回结果格式如下:
{"data": [{"embedding": [0.012, -0.023, ..., 0.045],"index": 0,"object": "embedding"}],"model": "qwen3-8b-embd","object": "list"
}
接入Dify配置
1. Dify环境准备
确保已安装Dify所需的基础依赖:
sudo apt-get update
sudo apt-get install -y python3 python3-pip python3-venv git build-essential
sudo apt-get install -y postgresql postgresql-contrib redis-server
2. 配置Dify连接vLLM服务
在Dify的管理界面中,进行以下配置:
- 1.登录Dify后台,进入设置 → 模型供应商
- 2.安装OpenAI-API-compatible插件
- 3.添加自定义模型配置:
- •模型名称:
Qwen3-Embedding-8B
- •模型类型: 选择
Embeddings
- •基础URL:
http://localhost:8021/v1
- •API密钥: 留空(vLLM默认无需认证)
3. 在Dify中创建知识库应用
- 1.进入Dify应用界面,点击创建应用
- 2.选择知识库应用类型
- 3.在Embedding模型设置中,选择刚才配置的
Qwen3-Embedding-8B模型
- 4.配置知识库参数,如分段策略、检索设置等
性能优化建议
根据实际部署经验,以下是提升服务稳定性和性能的建议:
- 1.资源调度:当同时运行多个模型时,合理分配GPU资源,避免资源竞争
- 2.批量处理:利用模型的批量处理能力,减少频繁的单条请求
- 3.内存管理:适当设置
--gpu-memory-utilization参数,保留系统显存
- 4.持久化部署:使用
nohup或进程管理工具保持服务稳定运行
常见问题排查
1. 端口占用问题
# 查看端口占用情况
lsof -i :8021
解决方案:更改服务端口或停止占用进程
2. GPU内存不足
- •降低
--gpu-memory-utilization参数值
- •减少
--tensor-parallel-size数值
- •使用
--swap-space参数设置交换空间
3. 模型加载失败
- •检查模型路径是否正确
- •验证模型文件完整性
- •确保有足够的磁盘空间和内存
总结
通过本文的步骤,我们成功使用vLLM框架在本地部署了Qwen3-Embedding-8B模型,并配置了标准的OpenAI兼容API接口。随后将其接入Dify平台,为知识库应用提供了强大的文本嵌入能力。 Qwen3-Embedding-8B模型在多项评测中表现优异,特别是在多语言任务和长上下文处理上具有显著优势,使其成为构建企业级AI应用的理想选择。结合vLLM的高效推理能力和Dify的便捷应用搭建,可以快速构建出功能强大的智能问答系统和知识管理平台。 这种部署方式不仅保证了数据隐私和安全性,还提供了灵活的扩展性,可以根据业务需求轻松调整资源配置和功能模块。