当前位置: 首页 > article >正文

vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案

一、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-0513o1-miniClaude-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是一个快速且易于使用的大模型库,专为大模型的推理和部署而设计。可以无缝集成 HuggingFaceModelscope 上的模型。

关于 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,1

vllm 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: 数据类型,其中 bfloat1616位浮点数,适合 NVIDIA A100 等设备。
  • tensor-parallel-sizeTensor 并行的数量,当多 GPU 分布式推理时使用,建议和GPU的数量一致。
  • cpu-offload-gb:允许将部分模型权重或中间结果卸载到 CPU 的内存中,单位为 GB。,模拟 GPU 内存扩展,如果部署的模型大于了显存大小可以设置该参数,但是推理速度会大大下降。
  • gpu-memory-utilization:设置 GPU 内存利用率的上限。
  • max-model-len:允许模型最大处理的Token数,该参数越大占用显存越大。
  • enable-prefix-caching:启用前缀缓存减少重复计算。

在这里插入图片描述

显存占用情况:

在这里插入图片描述

基于以上配置启动后,整体大概占用了 79.2G 显存。如果启动显存不足,可适当调整 gpu-memory-utilizationmax-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 APIOllama API 关闭,前提如果你有这两个连接的话,可以开启。然后保留 直接连接 的开启:

在这里插入图片描述

然后再次点击左下角进入设置:

在这里插入图片描述

在外部链接中添加上面 vLLM 的服务:

在这里插入图片描述

在这里插入图片描述

模型ID 可以留空,会自动从 /v1/models 接口中获取。

保存后,点击左上角 新对话 , 即可看到默认选择了 DeepSeek-R1-Distill-Qwen-32B 模型:

在这里插入图片描述

三、对话测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/576430.html

相关文章:

  • 深入解析PHP性能瓶颈:识别与优化策略
  • element-ui popover 组件源码分享
  • 安装与配置 STK-MATLAB 接口
  • 红果短剧安卓+IOS双端源码,专业短剧开发公司
  • git push报错【remote: You are not allowed to push code to this project.】解决办法
  • Leetcode 刷题记录 03 —— 滑动窗口
  • 进程存储相关的关键数据结构
  • 网络编程 day4
  • 使用开源OPUS-MT模型进行文本翻译(python)
  • 针对Ollama进行DeepSeek本地部署存在的安全风险,使用nginx进行反向代理配置是一种有效的解决方案
  • 开发环境搭建-07.后端环境搭建-前后端联调-Nginx反向代理和负载均衡配置
  • 微软发布Dragon Copilot,打造医疗行业首款AI语音助手
  • 深度学习代码解读——自用
  • Qt调试功能使用方法
  • bash: uwsgi: 未找到命令
  • 基于Python+openGauss实现(图形界面)多功能本地视频播放系统
  • 使用 Apache POI 实现 Excel 单元格合并
  • uniapp 安卓app图片回显,默认不支持http图片地址,上传图片和回显图片
  • 腾讯 TDF 即将开源 Kuikly 跨端框架,Kotlin 支持全平台
  • 人工智能与深度学习的应用案例:从技术原理到实践创新