vLLM__DeepSeekR1DistillQwen32B_0">一、vLLM 部署 DeepSeek-R1-Distill-Qwen-32B
DeepSeek-R1-Distill
系列模型是 DeepSeek-R1
的蒸馏模型,官方提供了从 1.5B - 70B
不同尺寸大小的模型。特别适合在计算资源有限的环境中部署。
DeepSeek-R1
各个版本的蒸馏模型评估结果如下:
其中 DeepSeek-R1-Distill-Qwen-32B
是通过对 Qwen2.5-32B
模型进行蒸馏得到的版本。该模型在评估结果中整体表现优异,在多项测试中均超过 GPT-4o-0513
、o1-mini
、Claude-3.5-Sonnet-1022
,且在 DeepSeek-R1-Distill
系列中效果和 DeepSeek-R1-Distill-Llama-70B
相差不大,但参数量近乎是 DeepSeek-R1-Distill-Llama-70B
的一半只有 32B
大小,因此可谓是本地部署的绝佳选择。
本次实验就基于 DeepSeek-R1-Distill-Qwen-32B
模型本地私有化部署,其中推理优化框架采用 vLLM
。
vLLM
是一个快速且易于使用的大模型库,专为大模型的推理和部署而设计。可以无缝集成 HuggingFace
、Modelscope
上的模型。
关于 vLLM
的安装可参考下面这篇文章:
利用 vLLM 优化部署私有化大模型,让推理速度飞起
vLLM
环境部署好后,首先使用 modelscope
下载 DeepSeek-R1-Distill-Qwen-32B
模型到指定目录下:
modelscope download --model="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" --local_dir DeepSeek-R1-Distill-Qwen-32B
然后使用 vLLM
读取模型启动API
服务。
注意:下面参数需要依据自己的算力环境适当修改:
export CUDA_VISIBLE_DEVICES=0,1vllm serve "DeepSeek-R1-Distill-Qwen-32B" \--host 0.0.0.0 \--port 8060 \--dtype bfloat16 \--tensor-parallel-size 2 \--cpu-offload-gb 0 \--gpu-memory-utilization 0.8 \--max-model-len 8126 \--api-key token-abc123 \--enable-prefix-caching--trust-remote-code
关键参数说明:
export CUDA_VISIBLE_DEVICES=0,1
:指定所使用的GPU
,由于我本地有两块,这里指定了0,1
, 如果只有一块的情况下可指定0
dtype
: 数据类型,其中bfloat16
,16
位浮点数,适合NVIDIA A100
等设备。tensor-parallel-size
:Tensor
并行的数量,当多GPU
分布式推理时使用,建议和GPU
的数量一致。cpu-offload-gb
:允许将部分模型权重或中间结果卸载到CPU
的内存中,单位为GB
。,模拟GPU
内存扩展,如果部署的模型大于了显存大小可以设置该参数,但是推理速度会大大下降。gpu-memory-utilization
:设置GPU
内存利用率的上限。max-model-len
:允许模型最大处理的Token
数,该参数越大占用显存越大。enable-prefix-caching
:启用前缀缓存减少重复计算。
显存占用情况:
基于以上配置启动后,整体大概占用了 79.2G
显存。如果启动显存不足,可适当调整 gpu-memory-utilization
和 max-model-len
参数,或通过 cpu-offload-gb
将部分模型权重卸载到内存中。
启动成功后,通过 /v1/models
接口可查看模型列表:
curl http://localhost:8060/v1/models -H "Authorization: Bearer token-abc123"
测试API
交互:
curl http://localhost:8060/v1/chat/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer token-abc123" \-d '{"model": "DeepSeek-R1-Distill-Qwen-B","messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "你好,介绍一下你自己"}]}'
二、Open-WebUI 部署
Open WebUI
是一个开源的、可扩展的、功能丰富的自托管AI
平台,旨在完全离线运行。它主要设计用于与大型语言模型(LLMs
)进行交互,支持多种模型和API
,提供了直观的图形用户界面,使得用户可以更方便地管理和运行模型。
Github
地址:
https://github.com/open-webui/open-webui
1. 部署
下载 open-webui
依赖 :
pip install open-webui
启动 open-webui
:
open-webui serve --port=4096
启动成功后,浏览器访问:http://ip:4096/
即可打开 Open-WebUI
页面。
首次进入需要设置管理员账号密码,设置完毕后,进入到如下所示主页:
2. 连接 DeepSeek-R1-Distill-Qwen-32B
模型。
点击左下角进入管理员面板:
将 OpenAI API
和 Ollama API
关闭,前提如果你有这两个连接的话,可以开启。然后保留 直接连接
的开启:
然后再次点击左下角进入设置:
在外部链接中添加上面 vLLM
的服务:
模型ID
可以留空,会自动从 /v1/models
接口中获取。
保存后,点击左上角 新对话
, 即可看到默认选择了 DeepSeek-R1-Distill-Qwen-32B
模型: