vLLM-benchmarks本地离线测试

该文章已生成可运行项目,

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

1. 摘要


本文档旨在记录在离线环境的 NVIDIA H200 Tensor Core GPU 的服务器上,使用vLLM框架部署大规模语言模型(LLM)DeepSeek-R1-0528(671B 满血版)和通过官方的benchmarks测试工具进行基准测试的完整流程。

2. 硬件环境

服务器硬件型号

DELL XE9680

显卡型号

Nvidia H200 (140G显存)*8张

内存

约1.96TB

操作系统环境

Ubuntu22.04.5 LTS Desktop

内核版本

6.8.60 kernel

网络环境

离线部署

3. 软件版本

软件名称 

作用

版本

nvidia-driver-570

NVIDIA GPU 硬件驱动程序,使操作系统能够识别和控制GPU,提供最基础的CUDA支持

570.86.15

nvidia-container-toolkit

使 Docker 容器能够访问和使用宿主机的 GPU 资源,是运行 GPU 容器的必备工具

1.9.0

docker

容器化平台,用于隔离、打包和部署应用(如 Ollama 和 vLLM 服务)

28.1

vllm/vllm-openai

高性能生产级大模型推理引擎,基于 PagedAttention 技术,提供极高的吞吐量和并发能力

latest

cuda-toolkit-12-4

NVIDIA CUDA 并行计算平台工具包,包含编译器、库和开发工具,为 vLLM 等框架提供底层计算支持

12.8

4. 部署实施

4.1 安装Docker

本次不赘述Docker的安装方式,如有需要可自行搜索教程。下图是Docker的离线安装包

4.2 拉取vllm/vllm-openai:latest镜像和启动容器

docker pull vllm/vllm-openai:latest #拉取官方镜像

#vLLM启动命令
docker run -d  --name vllm-deepseek \
  --hostname vllm-host \
  --add-host vllm-host:127.0.0.1 \
  --gpus all --ipc=host -p 8000:8000 \
  -v /data/models:/models:ro \      #挂载本地模型文件
  -e HF_HOME=/tmp \                 
  -e TRANSFORMERS_OFFLINE=1 \       #防止联网请求
  -e HF_DATASETS_OFFLINE=1 \        #防止联网请求
  --restart unless-stopped \        #故障自动重启
  vllm/vllm-openai:latest \
  --model /models/deepseek-ai/DeepSeek-R1-0528 \
  --host 0.0.0.0 \                  #为了后续测试需要,不增加此参数会报错
  --port 8000 \                     #为了后续测试需要,不增加此参数会报错
  --max-model-len 8192 \
  --max-num-batched-tokens 32768 \  # 增大批处理总token数
  --max-num-seqs 512 \              # 增加最大并发请求数
  --gpu-memory-utilization 0.95 \   # 提高显存利用率
  --enable-prefix-caching \         # 启用前缀缓存,减少重复计算
  --disable-log-stats \             # 关闭日志统计以减少干扰
  --trust-remote-code \
  --served-model-name deepseek-ai/DeepSeek-R1-0528 \
  --enforce-eager \                 # 强制Eager模式,调试性能瓶颈(可加可不加)
  --quantization fp8 \              # 启用FP8量化(需确认模型支持)
  --tensor-parallel-size 8          # 显式指定8卡并行

进入容器内部,创建软连接到缓存目录,否则进行基准测试的时候会报错,执行完成后重启容器

OSError: We couldn't connect to 'https://huggingface.co' to load the files, and couldn't find them in the cached files. Check your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.

#进入容器内部执行 
docker exec -it vllm-deepseek bash 

#可自行修改你的模型目录名称
mkdir -p /tmp/huggingface/hub/models--deepseek-ai--DeepSeek-R1-0528

mkdir -p /tmp/huggingface/hub/models--deepseek-ai--DeepSeek-R1-0528/snapshots

mkdir -p /tmp/huggingface/hub/models--deepseek-ai--DeepSeek-R1-0528/refs

SNAPSHOT=$(ls /models/deepseek-ai/DeepSeek-R1-0528/model-*.safetensors | head -1 | xargs basename | cut -d'.' -f1)

echo "Snapshot ID: $SNAPSHOT”

echo "$SNAPSHOT" > /tmp/huggingface/hub/models--deepseek-ai--DeepSeek-R1-0528/refs/main
ln -sf /models/deepseek-ai/DeepSeek-R1-0528 /tmp/huggingface/hub/models--deepseek-ai--DeepSeek-R1-0528/snapshots/$SNAPSHOT

export HF_HOME=/tmp/huggingface
export TRANSFORMERS_OFFLINE=1
export HF_DATASETS_OFFLINE=1


#执行完上述内容,退出容器并重启重启
docker restart vllm-deepseek 

4.3 安装Conda环境

在可联网的设备(要求驱动、Python、系统等版本与目标机器保持一致)

#创建环境
conda create -n vllm-benckmarks

#永久修改conda的国内镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

#在base环境下安装conda pack 工具包
conda install -c conda-forge conda-pack

#加载虚拟环境
conda activate vllm-benckmarks

#安装依赖,每个人的环境不同,为避免麻烦一次性安装可能用到的东西
conda install -c conda-forge python=3.10 openai transformers tokenizers aiohttp tqdm numpy pydantic typing_extensions cuda-python -y

pip install torch torchvision torchaudio vllm boto3 openai pandas datasets transformers PIL Pillow aiohttp encode tiktoken database -y

#安装完成后对环境进行打包
conda pack -n vllm-benckmarks -o vllm-bench.tar.gz




将打包好的包传输到目标机器上,进行解压加载环境

#解压文件
tar -xzf vllm-bench.tar.gz -C /opt/miniconda3/envs/vllm-benckmarks

#修复环境
/opt/miniconda3/envs/vllm-bench/bin/conda-unpack 

#查看环境是否加载成功

conda info --envs 

4.4 下载vLLM项目

工具包地址:GitHub - vllm-project/vllm: A high-throughput and memory-efficient inference and serving engine for LLMs

在vLLM工具包内运行以下命令:

python3 benchmarks/benchmark_serving.py \
--backend openai-chat \
--base-url http://127.0.0.1:8000 \
--endpoint /v1/chat/completions \  #
--dataset-name random \
--model deepseek-ai/DeepSeek-R1-0528 \
--tokenizer /disk2/models_backup/deepseek-ai/DeepSeek-R1-0528 \
--seed 12345 \                     #随意指定
--random-input-len 2048 \          # 增加输入长度,模拟真实场景
--random-output-len 512 \          # 增加输出长度,测试生成能力
--num-prompts 10000 \              # 增加请求数量,确保统计显著性
--request-rate 200 \               # 提高请求速率,压满硬件(H200多卡并行)
--burstiness 1.0 \                 # 降低突发性,模拟稳定负载
--metric-percentiles 50,95,99 \    # 补充中位数,全面分析延迟分布
--trust-remote-code

运行成功后输出结果

本文章已经生成可运行项目

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值