Skip to content

基于vLLM的高性能对话系统(图形界面),支持DeepSeek系列大语言模型,提供多卡支持、显存优化与张量并行计算能力。

License

Notifications You must be signed in to change notification settings

fattank/vllm-chatbot-deepseek

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

vllm-chatbot-deepseek

VLLM Chatbot GUI

基于vLLM的高性能对话系统(图形界面),支持DeepSeek系列大语言模型,提供多卡支持、显存优化与张量并行计算能力。 "vLLM-based GUI chatbot system optimized for DeepSeek LLMs, featuring distributed GPU computing and tensor parallelism with memory-efficient architecture."

由于很多朋友使用ollama部署deepseek本地模型效果不佳,分析原因,可能是基于Qwen的模型压缩到Q4和Q8,质量下降太多,所以做了这个vllm的fp16浮点半精度版本,并带有图形界面,方便操作。推荐使用32b模型,实力强的朋友使用70b不压缩的版本效果不错。

Python 3.10+ License: MIT 谢谢标注使用“老谭原创”。

GUI Screenshot

特性亮点

  • 🚀 支持多GPU张量并行计算(2-8卡)
  • 💻 显存利用率优化(可配置0.5-1.0)
  • 🔥 流式响应生成(支持长文本续写)
  • 📊 实时GPU状态监控
  • 🧠 支持DeepSeek全系列模型

模型推荐

DeepSeek-R1系列Safetensors模型(下载链接

模型规模 显存需求 适用场景 HuggingFace链接
1.5B 8-10GB 低配GPU/快速测试 DeepSeek-R1-1.5B
7B 14-18GB 中等规模推理 DeepSeek-R1-7B
32B 40GB+ 多卡专业级推理 DeepSeek-R1-32B

与Ollama的对比优势

特性 vLLM Chatbot Ollama
模型格式支持 ✅ 原生Safetensors 🟡 GGUF格式
量化支持 ✅ 8bit/4bit量化 ✅ GGUF量化
显存优化 ✅ 动态内存管理 ❌ 固定分配
张量支持 ✅支持 ❌不支持

重要说明

  1. 本系统推荐使用原生Safetensors格式模型(非量化版本),可获得最佳推理性能
  2. 32B模型需要至少40GB显存,建议使用224G显存显卡(如RTX 40902)部署
  3. 量化版本可通过model = AutoModelForCausalLM.from_pretrained(..., load_in_4bit=True)加载

环境配置

系统要求

  • Ubuntu 22.04 LTS
  • NVIDIA驱动 >= 525
  • CUDA 12.1

初始安装

# 安装系统依赖
sudo apt-get update && sudo apt-get install -y \
    python3-tk \
    build-essential \
    python3-dev \
    nvidia-cuda-toolkit

或者 sudo apt-get install python3-tk
     sudo apt install python3.10-dev

# 创建虚拟环境
python3 -m venv vllm_env
source vllm_env/bin/activate

# 安装Python依赖
pip install -r requirements.txt

快速启动

python vllm_chat_gui.py

启动后配置建议:

  1. 模型路径:选择下载的Safetensors模型文件
  2. GPU数量:根据实际显卡数设置
  3. 显存利用率:0.8为推荐值
  4. 温度设置:0.5-0.7可获得最佳效果

高级配置

参数 推荐值 说明
最大序列长度 32768 支持长文本推理(此为默认14B模型参数,如果要是用32B或其他,须根据模型的config.json配置修改)
最大生成Token数 4096 平衡响应长度与显存占用
Top-P 0.9-0.95 控制生成多样性
温度 0.5-0.7 推荐创造性任务使用较高值

性能优化建议

  1. 多卡用户:设置tensor-parallel-size等于GPU数量,最少两块或两块的倍数。
  2. 大模型(>7B):启用--enforce-eager模式避免内存碎片
  3. 长文本生成:适当降低gpu_memory_utilization(0.7-0.8)

数值格式对比表

格式类型 位宽 显存占用 计算速度 精度保持 适用场景 典型框架支持
FP32 32 100% 基准 最佳 模型训练/高精度推理 PyTorch, TensorFlow
BF16 16 50% 快15% 大模型训练 PyTorch(AMP)
FP16 16 50% 快20% 推理加速 vLLM, TensorRT
Int8 8 25% 快35% 中低 边缘设备部署 ONNX Runtime
GGUF Q4 4 12.5% 快50% 低显存设备 llama.cpp
GGUF Q8 8 25% 快30% 平衡速度与精度 ollama

关键技术解析

1. 浮点格式

  • FP32 (float32)

    • 完整精度:1位符号,8位指数,23位尾数
    • 计算精度:1.19e-07
    • 示例:科研计算、金融建模
  • BF16 (bfloat16)

    • 结构:1位符号,8位指数,7位尾数
    • 指数范围与FP32一致(-125到128)
    • 优势:避免梯度下溢,适合训练
    • 示例:NVIDIA A100/A800 GPU
  • FP16 (float16)

    • 结构:1位符号,5位指数,10位尾数
    • 指数范围:-14到15
    • 风险:容易梯度溢出
    • 示例:Jetson系列嵌入式设备

2. 量化格式

  • GGUF Q4

    • 4位整数量化 + 缩放因子
    • 典型压缩率:4:1 (相比FP32)
    • 精度损失:~3% (在语言任务上)
    • 示例:手机端部署(如骁龙8 Gen3)
  • GGUF Q8

    • 8位整数 + 缩放因子/零点偏移
    • 量化算法:Max-Min归一化
    • 精度损失:<1%
    • 示例:MacBook M系列芯片

显存需求计算示例(以7B模型为例)

框架兼容性说明+vllm与ollama比较

  1. vLLM 原生支持:

    • FP16/BF16(推荐)
    • 有限Int8支持(需load_in_8bit=True
  2. GGUF格式 需要:

    • 专用加载器(如llama.cpp)
    • CPU/GPU混合计算架构
    • 不支持张量并行

实践建议

  1. 高配GPU集群

    • 优先使用BF16格式(A100/V100)
    • 多卡并行时保持统一精度
  2. 消费级显卡

    • 单卡RTX 3090/4090:FP16 + 量化注意力 20280Ti魔改版22GB也能跑出23.1/秒的速率。
    model = AutoModelForCausalLM.from_pretrained(
        model_path,
        torch_dtype=torch.float16,
        quantization_config=BitsAndBytesConfig(
            load_in_4bit=True,
            bnb_4bit_compute_dtype=torch.float16
        )
    )

精度测试数据(DeepSeek-R1-7B)

格式 困惑度 推理理论速度(tokens/s) 显存占用
FP32 3.21 45 28GB
BF16 3.22 78 14GB
FP16 3.25 85 14GB
Q8 3.41 110 7GB
Q4 3.89 150 3.5GB

技术支持

遇到问题请提交Issue或联系:

## 未尽事宜
流式输出还有点问题,正在修改。


关键要素说明:
1. 模型选择建议基于[HuggingFace模型库](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B)提供的多规格模型
2. 性能对比参考了Ollama的[官方文档](https://ollama.com/library/deepseek-coder:1.3b-base-q5_0)和vLLM的[技术特性](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B)
3. 安装步骤结合了Ubuntu系统依赖和Python虚拟环境最佳实践
4. 参数推荐值来自DeepSeek的[官方建议](https://huggingface.co/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B#how-to-run-locally)


About

基于vLLM的高性能对话系统(图形界面),支持DeepSeek系列大语言模型,提供多卡支持、显存优化与张量并行计算能力。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages