长沙软件开发工资一般多少自己怎么做网站优化
一、项目背景与目标
本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本,模型大小约132GB。
1.1 硬件环境
- 服务器配置:天翼云910B服务器
 - NPU:8×昇腾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 --net=host --shm-size=1g \
   --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-16K):4-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)
