个人空间备案网站名称,网络推广工作好做不,用自己的网站做淘客,网站维护和建设工作范围一、项目背景与目标
本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本#xff0c;模型大小约132GB。
1.1 硬件环境
- 服务器配置#xff1a;天翼云910B服务器 - NPU#xff1a;8昇腾910B (每卡64GB显存) - 系统内存模型大小约132GB。
1.1 硬件环境
- 服务器配置天翼云910B服务器 - NPU8×昇腾910B (每卡64GB显存) - 系统内存1500GB - 操作系统Ubuntu 22.04.5 LTS 1.2 软件环境
- CANN版本6.5.1 - Mindie版本2.0.T3 - Python版本3.11 - DeepSeek模型70B-base
二、部署步骤
2.1 环境准备 # 更新系统 apt update apt upgrade
# 安装必要工具 apt install bash-completion apt install iftop iotop htop atop haproxy
# 优化CPU性能 cpupower frequency-set -g performance
2.2 存储配置
# 清理并初始化新的NVME磁盘 wipefs -af /dev/nvme0n1 wipefs -af /dev/nvme1n1
# 创建物理卷 pvcreate /dev/nvme0n1 pvcreate /dev/nvme1n1
# 扩展卷组 vgextend system /dev/nvme0n1 vgextend system /dev/nvme1n1
# 扩展逻辑卷 lvextend /dev/system/lv_root /dev/nvme0n1 lvextend /dev/system/lv_root /dev/nvme1n1
# 扩展文件系统 xfs_growfs /dev/mapper/system-lv_root
2.2 华为ascend 910b mindie推理框架Docker镜像准备
# 拉取必要的Docker镜像 docker pull swr.cn-southwest-2.myhuaweicloud.com/ei-mindie/mindie:2.0.T3-800I-A2-py311-openeuler24.03-lts
2.3 模型文件准备
# 创建权重文件目录 mkdir /home/deepseek70b chmod -R 755 /home/deepseek70b/ chown -R root:root /home/deepseek70b/
# 下载模型文件
# 下载模型分片文件 for i in $(seq -w 1 17); do wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/model-000${i}-of-000017.safetensors done
# 下载配置文件 wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/config.json wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/model.safetensors.index.json wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/tokenizer.json wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/tokenizer_config.json wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/generation_config.json wget https://modelers.cn/coderepo/web/v1/file/State_Cloud/DeepSeek-R1-Distill-Llama-70B/main/media/configuration.json
# 配置文件权限
chmod 750 /home/deepseek70b/config.json
2.4 通过docker启动加载模型
docker run -it -d --nethost --shm-size1g \ --privileged \ --name ds-deepseek-70b \ --device/dev/davinci_manager --device/dev/hisi_hdc --device/dev/devmm_svm \ --device/dev/davinci0 --device/dev/davinci1 --device/dev/davinci2 --device/dev/davinci3 \ --device/dev/davinci4 --device/dev/davinci5 --device/dev/davinci6 --device/dev/davinci7 \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \ -v /usr/local/sbin:/usr/local/sbin:ro \ -v /home/deepseek70b:/home/deepseek70b:ro \ swr.cn-southwest-2.myhuaweicloud.com/ei-mindie/mindie:2.0.T3-800I-A2-py311-openeuler24.03-lts bash
2.5 验证模型部署
# 检查NPU状态 npu-smi info
# 测试API接口 curl -ik -H Content-Type: application/json \ -d {messages:[{role:user,content:请自我介绍}],model:DeepSeek-70b,temperature:0.6,max_tokens:128} \ -X POST http://127.0.0.1:1025/v1/chat/completions
2.6 部署openweb-ui界面容器
# 拉取WebUI镜像使用国内镜像源 docker pull ghcr.nju.edu.cn/open-webui/open-webui:main
2.7 运行webui
# 运行WebUI容器 podman run -d \ -p 8000:8080 \ -v open-webui:/app/backend/data \ --name open-webui \
2.8 配置webui与模型127.0.0.1:1025的连接
# WebUI配置说明 # 1. 访问WebUI界面http://[服务器IP]:8000 # 2. 在WebUI设置中配置API地址http://127.0.0.1:1025/v1 # 3. 选择模型DeepSeek-70b 三、效果分析 部署架构分析 4、上下文窗口分析
{ max_position_embeddings: 131072, rope_scaling: { factor: 8.0, high_freq_factor: 4.0, low_freq_factor: 1.0, original_max_position_embeddings: 8192, rope_type: llama3 } }
基础窗口8192 tokens扩展后窗口131072 tokens约128K实际建议使用32K-64K tokens
5、并发分析
1. 内存占用计算 - 模型基础占用140GB (70B × 2 bytes) - KV Cache每token占用 8192(hidden_size) × 2(k,v) × 2(bytes) × 8(num_kv_heads) 256KB/token 2. 单会话最大内存 - 32K上下文示例 32K × 256KB 8GB KV Cache
3. 并发会话数估算 基于910B 64GB NPU显存 - 预留20GB给模型计算 - 剩余44GB可用于KV Cache - 理论最大并发数44GB ÷ 8GB ≈ 5-6个32K上下文会话
实际建议并发配置
短文本4K以下8-10并发中等文本4K-16K4-6并发长文本16K以上2-3并发
四、实测API效果
time curl -X POST http://localhost/v1/chat/completions \ -H Content-Type: application/json \ -d { messages: [{role: user, content: 写一个20字的句子}], model: DeepSeek-70b, max_tokens: 50, temperature: 0.7 }
时间分析
1. 总响应时间1.483秒 2. prefill_time: 60ms (预填充时间) 3. decode_time_arr详情 - 首token生成: 43ms - 后续token平均: 28ms - 最快token生成: 27ms - 最慢token生成: 43ms
Token统计
1. 输入tokens (prompt_tokens): 12个 2. 输出tokens (completion_tokens): 50个 3. 总计tokens (total_tokens): 62个
计算生成速度 - 总生成时间1.483秒 - Token生成速度50 tokens / 1.483秒 ≈ 33.7 tokens/秒
性能分解
- 稳定的token生成时间大部分维持在28ms - 较低的预填充延迟60ms - 单token生成延迟控制得较好30ms