vllm部署QwQ32B(Q4_K_M)
-
Ollama是一个轻量级的开源LLM推理框架,注重简单易用和本地部署,而VLLM是一个专注于高效推理的开源大型语言模型推理引擎,适合开发者在实际应用中集成和使用。两者的主要区别在于Ollama更注重为用户提供多种模型选择和易用性,而VLLM更注重模型推理性能的优化。所以VLLM更适合企业级的高并发需求。
vllm的github地址
https://github.com/vllm-project/vllm
-
QwQ32B硬件要求
Q4_K_M量化,大概需要22G左右够用,一张3090或者4090即可,魔改2080ti 的 22G 显存差不多够用
硬件配置 模型推理 模型高效微调 模型全量微调 显存占用 最低配置 显存占用 最低配置 显存占用 最低配置 FP_16 64G RTX3090*4(94G) 92G RTX3090*4(94G) 350G A100*6(480G) Q_4_K_M 23G RTX3090(24G) 31G RTX3090*2(48G) - - -
这里使用vllm部署的是Q4_K_M量化,显存占用22G,需要至少一张3090/4090
-
这里我用的是1张4090
下载QwQ32B模型Q_4_K_MM)
-
可以使用huggingface或者ModelScope下载,注意不要下成Q4_K_M版本的,这里我用的modelscope下载
-
假设当前目录为
/root/lanyun-tmp
安装 modelscope
pip install modelscope --index https://pypi.mirrors.ustc.edu.cn/simple
-
执行下载模型的命令,下载 Qwen/QwQ-32B (下载较慢)
https://modelscope.cn/models/Qwen/QwQ-32B-GGUF
复制全名
Qwen/QwQ-32B-GGUF
模型文件下,复制qwq-32b-q4_k_m.gguf 单独下载
modelscope download --model Qwen/QwQ-32B-GGUF qwq-32b-q4_k_m.gguf --local_dir ./QwQ-32B-GGUF
-
查看
cd /root/lanyun-tmp/QwQ-32B-GGUF ll -h
安装vllm
-
使用conda创建虚拟环境
conda create --name vllm python=3.10 -y conda activate vllm
-
下载vllm(指定源,否则极慢)
pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple
vllm启动QwQ32B
-
切到刚下载完成QwQ32B目录下
cd /root/lanyun-tmp/QwQ-32B-GGUF
-
启动QwQ32B
CUDA_VISIBLE_DEVICES=0 vllm serve ./qwq-32b-q4_k_m.gguf --max-model-len 4000 --port 8081
-
CUDA_VISIBLE_DEVICES=0 :指定使用的 GPU 设备为第1张卡。
-
vllm serve:启动一个 HTTP 服务器,用于接收和处理推理请求。
-
./qwq-32b-q4_k_m.gguf :指定要加载的模型路径。
-
–max-model-len : 设置最大上下文长度。这里24G显存最多只能设置为5000左右,否则就会报错cuda oom。
-
–port 8081:指定HTTP服务监听的端口号。
-
-
显存占用:22G左右
连接使用
-
代码
from openai import OpenAI import openai openai.api_key = '1111111' # 这里随便填一个 openai.base_url = 'http://127.0.0.1:8081/v1' def get_completion(prompt, model="QwQ-32B"): client = OpenAI(api_key=openai.api_key, base_url=openai.base_url ) messages = [{"role": "user", "content": prompt}] response = client.chat.completions.create( model=model, messages=messages, stream=False ) return response.choices[0].message.content prompt = '你好,请幽默的介绍下你自己,不少于300子' get_completion(prompt, model="./qwq-32b-q4_k_m.gguf")
-
速度大概在39 tokens/s