本文搭建环境
系统:Ubuntu 22.04.4 LTS
Python版本:Python 3.10
显卡:RTX 4090D
一、DeepSeek-R1-14b原始模型和q8量化模型
1.从modelscope下载模型
官方原始模型:modelscope.cn/models/deep…
第三方量化模型:modelscope.cn/models/okwi…
先安装modelscope
pip install modelscope
选择你需要的量化参数模型,这是下载14B的q8量化模型(本文使用的模型):
from modelscope import snapshot_download
# 指定模型
model_name = "okwinds/DeepSeek-R1-Distill-Qwen-14B-Int8-W8A16"
custom_path = "/home"
model_dir = snapshot_download(model_name,cache_dir=custom_path)
print(f"model download to {model_dir}")
这是下载原始模型:
from modelscope import snapshot_download
# 指定模型
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B"
custom_path = "/home"
model_dir = snapshot_download(model_name,cache_dir=custom_path)
print(f"model download to {model_dir}")
安装vllm,安装不成功的话需要先安装pytorch和cuda,如果报错 gcc 版本的话,可能你用的是CentOS7,可以参考我的这篇文章升级你的 gcc 版本。
运行安装命令
pip install vllm
更新uvloop:
pip install --upgrade uvloop
如果运行q8量化模型:
cd /home/okwinds
vllm serve DeepSeek-R1-Distill-Qwen-14B-Int8-W8A16
vllm serve命令可添加参数说明:
参数 | 说明 |
---|---|
--tensor-parallel-size | 指定使用的GPU数量 |
--gpu-memory-utilization | 设置每张GPU的显存利用率上限,取值范围为0~1(例如:0.9表示限制为90%的显存使用)。 |
--max-model-len | 设置模型支持的最大输入序列长度(以token为单位)。该参数限制了模型接收的最大token数量,从而控制内存和计算资源的使用。 |
--host --port | 指定模型API的主机和端口。 |
--enforce-eager | 启用即时执行模式(Eager Execution),即模型推理会在每个操作执行时立即进行,而非先构建完整的操作图。 |
这是示例 | vllm serve DeepSeek-R1-Distill-Qwen-14B-Int8-W8A16 --max-model-len 21152 --enforce-eager --gpu_memory_utilization=0.9 --enable-chunked-prefill --host 0.0.0.0 --port 6666 |
默认运行在端口8000,在命令行测试模型是否正常可用(q8量化模型):
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-R1-Distill-Qwen-14B-Int8-W8A16", # 指定模型名称
"messages": [
{"role": "system", "content": "You are a helpful assistant."}, # 系统消息
{"role": "user", "content": "Hello, introduce yourself."} # 用户消息
],
"max_tokens": 2000, # 最大生成token数
"temperature": 0.7, # 控制生成文本的随机性
"top_p": 0.9 # 控制生成文本的多样性
}'
有正常回复就行。
二、部署Open WebUI
推荐大家使用Docker的方式来跑WebUi镜像。
Docker拉取并运行Open WebUI。
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
需要等待一段时间,访问 http://localhost:3000/ ,注册管理员账户。
点击设置
点击管理员设置
点击外部连接后,在左侧框中输入本机的API地址,并在末尾加上/v1。如果是在本机操作,直接填写本机地址,注意地址以http开头。右侧框中填写一个空格(默认值为vllm API token)。开启新对话,选择模型。