进入python虚拟环境
source venv/bin/activate
vllm部署
# (Recommended) Create a new conda environment.
#(推荐)创建一个新的 conda 环境。
conda create -n myenv python=3.10 -y
conda activate myenv
# Install vLLM with CUDA 12.1.
# 安装带有 CUDA 12.1 的 vLLM。
pip install vllm
下载模型
首先下载modelscope
pip install modelscope
使用modelscope下载模型
modelscope download --model deepseek-ai/DeepSeek-R1
modelscope download --model deepseek-ai/DeepSeek-R1 README.md --local_dir ./dir
设置GPU环境变量
export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
vLLM 目前支持的量化方式
bitsandbytes进行量化
如使用虚拟环境安装的vllm 先进入虚拟环境
pip install bitsandbytes
性能不够采用float16量化 vllm不支持4-bit 8-bit量化 gpu数量必须整除模型注意头数量 操 注意头64
CUDA_VISIBLE_DEVICES=2,3,4,5,6,7 nohup vllm serve /home/model/deepseek-r1-70b --tensor-parallel-size 6 --load-format bitsandbytes --max-model-len 100000 --quantization bitsandbytes-8bit --port 19000 > /home/model/deepseek-r1-70b/deepseek.log 2>&1 &
后台运行
nohup vllm serve /home/model/deepseek-r1-70b --tensor-parallel-size 2 --load-format bitsandbytes --quantization bitsandbytes --port 19000 > /home/model/deepseek-r1-70b/deepseek.log 2>&1 &
GPTQ 8-bit
下载量化工具
pip install auto-gptq
转换模型
from transformers import AutoModelForCausalLM
from auto_gptq import AutoGPTQForCausalLM
model_path = "/home/model/deepseek-r1-70b"
# 加载 8-bit 量化模型
model = AutoGPTQForCausalLM.from_quantized(
model_path,
use_safetensors=True,
device="cuda:0",
quantize_config={"bits": 8, "group_size": 128}
)
# 保存量化后的模型
model.save_quantized("/home/model/deepseek-r1-70b-gptq-8bit")
不进行量化
qwen32B 注意头40
搭配四张显卡
CUDA_VISIBLE_DEVICES=4,5,6,7 nohup vllm serve /home/model/Qwen-QwQ-32B --tensor-parallel-size 4 --max-model-len 100000 --port 19000 > /home/model/Qwen-QwQ-32B/qwen.log 2>&1 &
搭配五张显卡
CUDA_VISIBLE_DEVICES=3,4,5,6,7 nohup vllm serve /home/model/Qwen-QwQ-32B --tensor-parallel-size 5 --max-model-len 100000 --port 19000 > /home/model/Qwen-QwQ-32B/qwen.log 2>&1 &
vllm兼容OpenAI API
vLLM 提供了一个兼容 OpenAI API 的服务器,你可以用 OpenAI 的客户端(或者 HTTP 请求)直接调用你的本地大模型,就像调用 OpenAI 的 GPT-4 一样,则说明在dify中即使没有vllm的插件 也可以通过openai的插件去集成模型。
vLLM 内置了一个 HTTP 服务器,它的 API 设计跟 OpenAI 官方 API 几乎一样,所以:
你可以使用 OpenAI 的官方 Python 客户端 访问 vLLM 服务器(只需要改
base_url
)。你也可以用
curl
或 Postman 直接发送 HTTP 请求。
这样,你本地的 Qwen-32B 或 Llama-3 之类的模型就可以像 OpenAI API 那样使用。