进入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

bitsandbytes 4-bit 量化

适用于低显存,速度较快,但精度有损失

gptq

GPTQ 量化

适合推理,支持 4-bit 和 8-bit

awq

AWQ 量化

更好的精度,适用于 4-bit 量化

aqlm

AQLM 量化

适用于 LLM 低比特推理

deepspeedfp

DeepSpeed FP 量化

用于 DeepSpeed 训练

tpu_int8

TPU 专用 int8 量化

适用于 TPU 部署

fp8 / ptpc_fp8 / fbgemm_fp8

FP8 量化

适用于支持 FP8 的 GPU(如 H100)

modelopt

模型优化量化

适用于不同硬件

marlin

Marlin 量化

适用于高效推理

gguf

GGUF 量化

适用于 llama.cpp 推理

gptq_marlin / gptq_marlin_24

GPTQ+Marlin

结合 GPTQ 和 Marlin

awq_marlin

AWQ+Marlin 量化

结合 AWQ 和 Marlin

compressed-tensors

压缩张量

适用于特定优化

qqq / hqq

QQQ/HQQ 量化

新量化方法,实验性

experts_int8

INT8 量化

适用于专家模型

neuron_quant

AWS Neuron 量化

适用于 AWS Neuron

ipex

Intel IPEX 量化

适用于 Intel 设备

quark

Quark 量化

新的量化方法

moe_wna16

MoE WNA16 量化

适用于 MoE 模型

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-32BLlama-3 之类的模型就可以像 OpenAI API 那样使用。