微信扫码
添加专属顾问
我要投稿
私有化部署DeepSeek-R1的新选择,vLLM让算力减半、吞吐增十倍! 核心内容: 1. 私有化部署DeepSeek-R1的对比分析 2. vLLM与Ollama的性能和部署差异 3. vLLM的部署优势及性能测试结果
需求:之前使用 Ollama 部署过 deepseek-r1:32b 模型,非常方便快捷,适合个人快速部署使用。如果作为企业生产环境应该使用什么方式部署呢?一般都采用 vllm、sglang 进行部署,本文是用 vLLM 部署 DeepSeek-R1模型。
Ollama 和 vLLM 对比
区别如下:
vLLM 简单介绍
vLLM 是一个快速且易于使用的 LLM 推理和服务库。
配备全新算法的vLLM,重新定义了LLM服务的最新技术水平:. 与HuggingFace Transformers相比,它提供高达24倍的吞吐量,而无需进行任何模型架构更改。算力减半、吞吐增十倍,该研究将 vLLM 的吞吐量与最流行的 LLM 库 HuggingFace Transformers (HF),以及之前具有 SOTA 吞吐量的 HuggingFace Text Generation Inference(TGI)进行了比较。此外,该研究将实验设置分为两种:LLaMA-7B,硬件为 NVIDIA A10G GPU;另一种为 LLaMA-13B,硬件为 NVIDIA A100 GPU (40GB)。他们从 ShareGPT 数据集中采样输入 / 输出长度。结果表明,vLLM 的吞吐量比 HF 高 24 倍,比 TGI 高 3.5 倍。
vLLM 文档:https://docs.vllm.ai/en/latest/index.html
源码地址:https://github.com/vllm-project/vllm
性能测试:https://blog.vllm.ai/2024/09/05/perf-update.html
图片不必看懂,牛就完事了!
环境准备
购买了腾讯云高性能应用服务,配置如下:
Ubuntu 20.04
环境配置:Ubuntu 20.04, Driver 525.105.17, Python 3.8, CUDA 12.0, cuDNN 8
算力类型:两卡GPU基础型 - 2*16GB+ | 16+TFlops SP | CPU - 16 核 | 内存 - 64GB
安装 Conda
使用 conda 创建 python 环境,直接贴脚本:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh -b
source /root/miniconda3/bin/activate
conda init
conda config --set auto_activate_base false
使用 vLLM 部署 DeepSeek-R1
使用 conda 创建 python 环境,命令如下:
conda create -n vllm python=3.12 -y
conda activate vllm
安装 vllm、modelscope,命令如下:
pip install vllm modelscope
使用 modelscope 下载 DeepSeek-R1 模型,命令如下:
mkdir -p /data/models && modelscope download --model 'deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B' --local_dir '/data/models/DeepSeek-R1-Distill-Qwen-1.5B'
参考:https://modelscope.cn/docs/models/download
使用 vllm 启动 deepseek 模型,命令如下:
vllm serve "/data/models/DeepSeek-R1-Distill-Qwen-1.5B" --served-model-name "DeepSeek-R1" --load-format "safetensors" --gpu-memory-utilization 0.8 --tensor-parallel-size 2 --dtype half --port 8000
如果遇到“Bfloat16 is only supported on GPUs with compute capability of at least 8.0. Your Tesla T4 GPU has compute capability 7.5. You can use float16 instead by explicitly setting the`dtype` flag in CLI, for example: --dtype=half.”警告,根据警告添加参数即可。
备注:
--tensor-parallel-size 和 GPU 数量设置一致
--gpu-memory-utilization 控制使用显存的百分比
--served-model-name API 中使用的模型名称
--disable-log-requests 禁用日志记录请求
vLLM Linux GPU 安装文档:https://docs.vllm.ai/en/latest/getting_started/installation/gpu/index.html
引擎参数:https://docs.vllm.ai/en/latest/serving/engine_args.html
查看 GPU 状态,如下图:
使用 Postman 测试
浏览器打开:http://ip:8000/
接口文档:http://ip:8000/docs
Postman 调用,如下图:
{
"model": "DeepSeek-R1",
"messages": [
{
"role": "user",
"content": "Hi,我叫小渣渣。请问你是谁?"
}
]
}
基准测试
下载测试代码,命令如下:
wget https://raw.githubusercontent.com/vllm-project/vllm/refs/heads/main/benchmarks/benchmark_utils.py
wget https://raw.githubusercontent.com/vllm-project/vllm/refs/heads/main/benchmarks/benchmark_throughput.py
执行命令如下:
python benchmark_throughput.py --model "/data/models/DeepSeek-R1-Distill-Qwen-1.5B" --backend vllm --input-len 128 --output-len 512 --num-prompts 50 --seed 1100 --dtype half
结果:Throughput: 2.45 requests/s, 1569.60 total tokens/s, 1255.68 output tokens/s
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2025-02-04
2025-02-04
2024-09-18
2024-07-11
2024-07-09
2024-07-11
2024-07-26
2025-02-05
2025-01-27
2025-02-01
2025-03-20
2025-03-16
2025-03-16
2025-03-13
2025-03-13
2025-03-11
2025-03-07
2025-03-05