如何备份网站程序吗,网络营销课程思维导图,天津网站制作,杭州微网站建设公司前言
最近#xff0c;我有幸在工作中接触到了DeepSeek R1 671B模型#xff0c;这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型#xff0c;以其惊人的6710亿参数量和出色的推理性能#xff0c;引起了业界广泛关注。
作为一名AI基础…
前言
最近我有幸在工作中接触到了DeepSeek R1 671B模型这是目前中文开源领域参数量最大的高质量模型之一。DeepSeek团队在2024年推出的这款模型以其惊人的6710亿参数量和出色的推理性能引起了业界广泛关注。
作为一名AI基础设施工程师我有机会在H20服务器上部署这个庞然大物并对其进行了全面的压力测试。这篇文章将详细记录我的部署过程和性能测试方法希望能为大家提供一些参考。 为什么选择DeepSeek R1 超大规模参数量671B优秀的中英文理解能力开源可商用的许可证在多项基准测试中表现优异 那么如何在自己的服务器上部署这个巨无霸模型呢接下来我将分享我的完整操作流程。
一、环境准备
1.1 硬件配置
在开始部署之前先来看看我使用的硬件配置
服务器型号H20GPU8×NVIDIA H20 (141GB)CPU双路Intel至强处理器内存2TB存储高速NVMe SSD
这套配置对于部署671B参数的模型来说是刚好够用的。根据我的经验至少需要8张高端GPU才能满足推理需求。
1.2 环境检查
首先确认系统资源是否满足需求
# 检查CPU信息
lscpu# 检查GPU信息
nvidia-smi# 检查内存信息
dmidecode -t memory# 检查磁盘空间
df -h这次试用的H20是141G显存的PCIE版本。8张GPU之间都是通过NV18(18条NVLink)互联,形成了全互联(fully connected)的网络拓扑,GPU0-3属于NUMA节点0 (CPU核心0-55,112-167),GPU4-7属于NUMA节点1 (CPU核心56-111,168-223),单卡总带宽26.562 × 18 ≈ 478 GB/s 特别注意部署DeepSeek R1 671B至少需要700GB的磁盘空间用于存储模型文件请确保有足够空间。
1.3 软件环境配置
我选择使用Apptainer原Singularity作为容器运行环境它比Docker更适合HPC场景在多GPU协作方面表现更好。
# 安装Apptainer
sudo add-apt-repository -y ppa:apptainer/ppa
sudo apt update
sudo apt install -y apptainer# 检查安装版本
apptainer --version二、模型获取与存储
2.1 模型下载
DeepSeek R1 671B模型可以从官方渠道下载但文件非常大。在我的案例中模型已预先下载并存储在 /data0/DeepSeek-R1/ 目录下。
2.2 模型完整性验证
下载完成后务必验证模型文件的完整性
cd /data0/DeepSeek-R1
# 验证模型文件的MD5值
md5sum model-00001-of-00163.safetensors⚠️ 注意模型文件可能分为多个部分一定要验证所有文件的完整性避免因文件损坏导致的启动失败。 三、服务部署
对于超大规模模型我测试了两种主流的部署方式基于vLLM和基于SGLang的部署。
3.1 基于vLLM的部署
vLLM是一个高性能的大语言模型推理引擎专为LLM优化支持PagedAttention等技术内存使用效率高。
3.1.1 获取vLLM容器镜像
mkdir -p /data0/ctyun/vllm
cd /data0/ctyun/vllm
wget https://jiangsu-10.zos.ctyun.cn/galaxy/apptainer/vllm/vllm-openai_v0.7.3.sif3.1.2 创建启动脚本
vi run.sh在脚本中添加以下内容
#!/bin/bash
apptainer run --nv vllm-openai_v0.7.3.sif \python3 -m vllm.entrypoints.openai.api_server \--model /data0/DeepSeek-R1 \--tensor-parallel-size 8 \--host 0.0.0.0 \--port 8000这里的关键参数是--tensor-parallel-size 8表示使用8卡张量并行这对于671B规模的模型是必须的。
3.1.3 启动服务
sh run.shvllm服务启动成功后每块显卡的显存已经占用了122G。
成功启动后vLLM会提供一个兼容OpenAI API格式的接口默认端口为8000。
3.2 基于SGLang的部署
SGLang是另一个优秀的LLM推理框架特别在批处理方面有一些独特优势。
3.2.1 下载SGLang容器镜像
mkdir -p /data0/ctyun/sglang
cd /data0/ctyun/sglang
wget https://jiangsu-10.zos.ctyun.cn/galaxy/apptainer/sglang/sglang_v0.4.3-cu125.sif3.2.2 创建启动脚本并运行
vi run.sh
# 配置SGLang启动参数
#!/bin/bash# SGLang Server Startup Script
# Environment configuration
export OMP_NUM_THREADS14
export NCCL_IB_DISABLE1
export CUDA_VISIBLE_DEVICES0,1,2,3,4,5,6,7# Model configuration
CONTAINER_PATH/data0/ctyun/sglang/sglang_v0.4.3-cu125.sif
WORKSPACE_DIR/data0/ctyun/sglang/workspace
MODELS_DIR/data0/DeepSeek-R1
MODEL_NAMEDeepSeek-R1# Create workspace directory if it doesnt exist
mkdir -p $WORKSPACE_DIR# Server Configuration
SGLANG_HOST0.0.0.0
SGLANG_PORT8000# Performance Configuration
TENSOR_PARALLEL_SIZE8
TOKENIZER_MODEauto
LOG_LEVELinfoecho Starting SGLang server with model: $MODEL_NAME
echo Using GPUs: $CUDA_VISIBLE_DEVICES with TP size: $TENSOR_PARALLEL_SIZE# Run the SGLang container with Apptainer/Singularity
# Use the LOCAL_PYTORCH_MODEL format to specify a local model
apptainer run --nv \--bind $WORKSPACE_DIR:/workspace \--bind $MODELS_DIR:/model \$CONTAINER_PATH \python3 -m sglang.launch_server \--model-path /model \--tokenizer-path /model \--host $SGLANG_HOST \--port $SGLANG_PORT \--tensor-parallel-size $TENSOR_PARALLEL_SIZE \--context-length 32768 \--mem-fraction-static 0.9 \--tokenizer-mode $TOKENIZER_MODE \--trust-remote-code \--log-level $LOG_LEVEL# 启动服务
sh run.sh小贴士我发现vLLM在通用场景下表现更稳定而SGLang在批处理场景下吞吐量略高。 SGLang明显占用显存一些模型加载完成显存已经吃得差不多了。
四、压力测试工具准备
为了全面评估DeepSeek R1 671B的性能我使用了三种不同的测试工具LLMPerf、EvalScope和SGLang内置的benchmark工具。
4.1 LLMPerf测试工具安装
LLMPerf是一个专门针对大模型设计的性能测试工具
mkdir -p /data0/ctyun/yangxian
cd /data0/ctyun/yangxian
git clone https://gitee.com/yangxianpku/llmperf.git# 设置环境变量
export HF_ENDPOINThttps://hf-mirror.com
export OPENAI_API_KEYsecret_abcdefg
export OPENAI_API_BASEhttp://localhost:8000/v1/4.2 EvalScope测试工具安装
EvalScope是另一个功能强大的评估工具尤其适合模拟真实用户请求
# 创建虚拟环境
python3 -m venv evalscope
cd evalscope/
source bin/activate# 安装evalscope
pip install evalscope
pip install evalscope[perf]4.3 SGLang测试工具安装
SGLang自带了性能基准测试工具可以精确测量批处理性能
python3 -m venv sglang
cd sglang/
source bin/activate
pip install sglang[all]0.4.3 --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python五、压力测试方案与结果
接下来是最激动人心的部分 - 压力测试我设计了一系列测试场景从单并发到高并发从短文本到长文本生成全方位评估模型性能。
5.1 使用LLMPerf进行吞吐量测试
首先测试不同输入长度下的单并发性能
# 输入8K tokens输出1K tokens
python3 token_benchmark_ray.py --model DeepSeek-R1 \--mean-input-tokens 8192 --stddev-input-tokens 0 \--mean-output-tokens 1024 --stddev-output-tokens 0 \--max-num-completed-requests 6 --timeout 600 \--num-concurrent-requests 1 --results-dir result_outputs \--llm-api openai --additional-sampling-params {}然后测试不同并发数下的性能表现
# 64并发输入4K tokens输出1K tokens
python3 token_benchmark_ray.py --model DeepSeek-R1 \--mean-input-tokens 4096 --stddev-input-tokens 0 \--mean-output-tokens 1024 --stddev-output-tokens 0 \--max-num-completed-requests 192 --timeout 600 \--num-concurrent-requests 64 --results-dir result_outputs \--llm-api openai --additional-sampling-params {}测试结果分析
单并发下8K输入1K输出的场景平均吞吐量约为750 tokens/s并发数增加到64时总吞吐量可达2万 tokens/s左右超过128并发后性能提升不明显甚至可能因资源竞争而下降
5.2 使用EvalScope模拟真实用户请求
EvalScope能模拟更接近真实场景的测试我从低并发逐步提高到高并发
# 单并发测试
evalscope perf --parallel 1 --url http://127.0.0.1:8000/v1/chat/completions \--model DeepSeek-R1 --log-every-n-query 5 --connect-timeout 6000 \--read-timeout 6000 --max-tokens 2048 --min-tokens 2048 \--api openai --dataset openqa --number 1 --stream# 逐步提高并发
evalscope perf --parallel 192 --url http://127.0.0.1:8000/v1/chat/completions \--model DeepSeek-R1 --log-every-n-query 5 --connect-timeout 6000 \--read-timeout 6000 --max-tokens 2048 --min-tokens 2048 \--api openai --dataset openqa --number 192 --stream测试发现
对话模式下流式输出(stream)的用户体验更好并发提升到192时延迟开始明显增加输出token长度对吞吐量影响显著 2048 tokens输出约10K tokens/s总吞吐量200 tokens输出约25K tokens/s总吞吐量50 tokens输出约35K tokens/s总吞吐量
5.3 使用SGLang测试批处理性能
SGLang特别适合测试批处理能力
# 测试不同批处理大小
python3 -m sglang.bench_one_batch_server --model DeepSeek-R1 \--base-url http://127.0.0.1:30000 --batch-size 1 \--input-len 128 --output-len 128python3 -m sglang.bench_one_batch_server --model DeepSeek-R1 \--base-url http://127.0.0.1:30000 --batch-size 192 \--input-len 128 --output-len 128批处理测试结果
批处理大小1约800 tokens/s批处理大小32约12K tokens/s批处理大小192约28K tokens/s批处理大小512约32K tokens/s但延迟增加显著
六、性能监控与调优
在测试过程中持续监控系统资源使用情况非常重要
# GPU监控
nvidia-smi# 系统资源监控
htop
nvtop# 进程监控
top基于监控结果我发现了一些性能优化的关键点
GPU利用率在高并发场景下GPU利用率稳定在85%-95%之间最佳CPU资源预处理和后处理阶段会消耗大量CPU资源建议使用高频CPU内存使用671B模型在8卡配置下每卡大约需要64-70GB显存网络带宽高并发场景下网络可能成为瓶颈建议使用高速网络接口
七、常见问题与解决方案
在部署过程中我遇到了一些常见问题分享解决方案
7.1 资源冲突问题
如果系统中运行着其他Docker容器或进程可能会与模型部署冲突
# 停止Docker服务
systemctl stop docker.service
systemctl stop docker.socket# 终止占用资源的Python进程
pkill python3
kill -9 [PID]7.2 GPU不可见问题
有时容器内无法正确识别GPU
# 检查NVIDIA驱动与CUDA版本兼容性
nvidia-smi# 确保使用--nv参数启动Apptainer
apptainer run --nv ...7.3 模型加载缓慢
DeepSeek R1 671B模型非常大首次加载可能需要3-5分钟请耐心等待。
7.4 内存溢出错误
如果出现OOM错误可以尝试
减小batch size减小tensor_parallel_size但可能需要更多显存使用模型量化版本如FP8或INT8
八、总结与建议
经过一系列测试我对DeepSeek R1 671B模型有了更深入的了解
硬件需求8张高端GPU(如H20-141G)是基本配置内存建议1TB以上部署方式vLLM在通用场景更稳定SGLang在批处理场景优势明显并发能力最佳并发数在128-192之间超过这个范围性能提升不明显响应延迟首token延迟约1-2秒生成速度在单请求下750-800 tokens/s吞吐量在最佳配置下整体吞吐量可达30K tokens/s左右
如果你计划在生产环境部署DeepSeek R1 671B我的建议是
使用张量并行TP而非流水线并行PP针对真实业务场景进行针对性测试和优化考虑使用模型量化技术降低资源需求实现动态批处理以提高整体吞吐量
写在最后
通过这次DeepSeek R1 671B的部署之旅我深刻体会到大模型服务化的挑战和乐趣。希望本文能帮助更多开发者了解如何部署和测试超大规模语言模型也欢迎在评论区分享你的经验和问题。
你是否有部署超大模型的经历遇到了哪些挑战欢迎在评论区讨论 关键词 DeepSeek R1, 671B, 大模型部署, vLLM, SGLang, 压力测试, GPU, 张量并行 文章转载自: http://www.morning.fpkpz.cn.gov.cn.fpkpz.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.china-cj.com.gov.cn.china-cj.com http://www.morning.yfzld.cn.gov.cn.yfzld.cn http://www.morning.fjfjm.cn.gov.cn.fjfjm.cn http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn http://www.morning.mgskc.cn.gov.cn.mgskc.cn http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn http://www.morning.kpgft.cn.gov.cn.kpgft.cn http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn http://www.morning.bqppr.cn.gov.cn.bqppr.cn http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn http://www.morning.gwqq.cn.gov.cn.gwqq.cn http://www.morning.kmlmf.cn.gov.cn.kmlmf.cn http://www.morning.stprd.cn.gov.cn.stprd.cn http://www.morning.dmjhp.cn.gov.cn.dmjhp.cn http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.prls.cn.gov.cn.prls.cn http://www.morning.xhpnp.cn.gov.cn.xhpnp.cn http://www.morning.sxlrg.cn.gov.cn.sxlrg.cn http://www.morning.lkthj.cn.gov.cn.lkthj.cn http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn http://www.morning.huxinzuche.cn.gov.cn.huxinzuche.cn http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn http://www.morning.jbctp.cn.gov.cn.jbctp.cn http://www.morning.ftgwj.cn.gov.cn.ftgwj.cn http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn http://www.morning.fhrgk.cn.gov.cn.fhrgk.cn http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn http://www.morning.mxhcf.cn.gov.cn.mxhcf.cn http://www.morning.rxfjg.cn.gov.cn.rxfjg.cn http://www.morning.qnbgk.cn.gov.cn.qnbgk.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.mqfhy.cn.gov.cn.mqfhy.cn http://www.morning.qqbw.cn.gov.cn.qqbw.cn http://www.morning.cwyfs.cn.gov.cn.cwyfs.cn http://www.morning.qnksk.cn.gov.cn.qnksk.cn http://www.morning.rscrj.cn.gov.cn.rscrj.cn http://www.morning.nngq.cn.gov.cn.nngq.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.nqlx.cn.gov.cn.nqlx.cn http://www.morning.zglrl.cn.gov.cn.zglrl.cn http://www.morning.pwlxy.cn.gov.cn.pwlxy.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn http://www.morning.prplf.cn.gov.cn.prplf.cn http://www.morning.skwwj.cn.gov.cn.skwwj.cn http://www.morning.gsqw.cn.gov.cn.gsqw.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.tqbyw.cn.gov.cn.tqbyw.cn http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.nrqtk.cn.gov.cn.nrqtk.cn http://www.morning.xrct.cn.gov.cn.xrct.cn http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.yqhdy.cn.gov.cn.yqhdy.cn http://www.morning.xhfky.cn.gov.cn.xhfky.cn http://www.morning.mzzqs.cn.gov.cn.mzzqs.cn http://www.morning.tbstj.cn.gov.cn.tbstj.cn http://www.morning.jpgfq.cn.gov.cn.jpgfq.cn http://www.morning.llfwg.cn.gov.cn.llfwg.cn http://www.morning.gqcsd.cn.gov.cn.gqcsd.cn http://www.morning.qnsmk.cn.gov.cn.qnsmk.cn http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn http://www.morning.tfrmx.cn.gov.cn.tfrmx.cn http://www.morning.dnqpq.cn.gov.cn.dnqpq.cn http://www.morning.mdjtk.cn.gov.cn.mdjtk.cn http://www.morning.kxyqy.cn.gov.cn.kxyqy.cn http://www.morning.nmqdk.cn.gov.cn.nmqdk.cn http://www.morning.wnbqy.cn.gov.cn.wnbqy.cn http://www.morning.jfymz.cn.gov.cn.jfymz.cn http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.ydmml.cn.gov.cn.ydmml.cn http://www.morning.hhboyus.cn.gov.cn.hhboyus.cn http://www.morning.wfzdh.cn.gov.cn.wfzdh.cn http://www.morning.frtt.cn.gov.cn.frtt.cn