当前位置: 首页 > news >正文

天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结

一、项目背景与目标

本文记录在天翼云昇腾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)

相关文章:

天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结

一、项目背景与目标 本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本&#xff0c;模型大小约132GB。 1.1 硬件环境 - 服务器配置&#xff1a;天翼云910B服务器 - NPU&#xff1a;8昇腾910B (每卡64GB显存) - 系统内存&…...

数据治理常用的开源项目有哪些?

数据治理是企业在大数据时代中确保数据质量、安全性和可用性的关键环节。开源项目在数据治理中扮演着重要角色&#xff0c;提供了灵活、经济高效且功能强大的解决方案。以下是一些常用的开源数据治理项目&#xff1a; Apache Atlas&#xff1a; 功能&#xff1a;元数据管理、数…...

数据结构与算法之排序算法-(计数,桶,基数排序)

排序算法是数据结构与算法中最基本的算法之一&#xff0c;其作用就是将一些可以比较大小的数据进行有规律的排序&#xff0c;而想要实现这种排序就拥有很多种方法~ &#x1f4da; 非线性时间比较类&#xff1a; 那么我将通过几篇文章&#xff0c;将排序算法中各种算法细化的&a…...

Word正文中每两个字符之间插入一个英文半角空格

Word正文中每两个字符之间插入一个英文半角空格 修改前 修改后 替换方法 快捷键 Ctrl H 唤出查找和替换界面依次输入上述内容全部替换即可 参考链接 【【2025年3月】计算机二级MS Office 2016 真题讲解视频打卡】 【精准空降到 25:27】...

把 DeepSeek1.5b 部署在显卡小于4G的电脑上

这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…...

A4988一款带转换器和过流保护的 DMOS 微步驱动器的使用方式

A4988是一款带转换器和过流保护的 DMOS 微步驱动器&#xff0c;用于驱动双极步进电动机。它支持全、半、1/4、1/8 及 1/16 步进模式&#xff0c;输出驱动性能可达 35 V 及 2 A。其特点包括简单的步进和方向控制接口、可调电位器调节最大电流输出、自动电流衰减模式检测/选择以及…...

一口井深7米,一只蜗牛从井底往上爬每天爬3米掉下去1米,问几天能爬上井口?

一个井深7米&#xff0c;一只蜗牛从井底往上爬每天爬3米掉下去1米&#xff0c;问几天能爬上井口&#xff1f; 1. 通用解法 构建一个通用的解法&#xff0c;适用于任何井深和蜗牛的爬升、下滑距离。 问题描述&#xff1a; 井深为 H H H 米。蜗牛每天向上爬升 U U U 米。每…...

Asp.Net Core MVC 中级开发教程

Asp.Net Core MVC 中级开发教程 一、Asp.Net Core Mvc 区域使用 ASP.NET Core MVC的Areas使用整理 - 天马3798 - 博客园 二、Asp.Net Core 路径处理 Asp.Net Core Web相对路径、绝对路径整理 Asp.Net Core获取当前上下文对象 三、Asp.Net Core 服务使用和封装 四、Asp.Net …...

Windows上安装Go并配置环境变量(图文步骤)

前言 1. 本文主要讲解的是在windows上安装Go语言的环境和配置环境变量&#xff1b; Go语言版本&#xff1a;1.23.2 Windows版本&#xff1a;win11&#xff08;win10通用&#xff09; 下载Go环境 下载go环境&#xff1a;Go下载官网链接(https://golang.google.cn/dl/) 等待…...

C++效率掌握之STL库:string底层剖析

文章目录 1.学习string底层的必要性2.string类对象基本函数实现3.string类对象的遍历4.string类对象的扩容追加5.string类对象的插入、删除6.string类对象的查找、提取、大小调整7.string类对象的流输出、流提取希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力…...

【Erdas实验教程】004:影像镶嵌拼接

文章目录 一、实验目标二、实验数据三、实验过程一、实验目标 掌握具有坐标系且有重叠的多个影像的镶嵌。 二、实验数据 本实验数据为2景landsat TM影像和1景mss影像,如下所示: 数据获取方式:订阅专栏后,从私信查收。 三、实验过程 (1)启动镶嵌工具 在erdas中,常用…...

SpringMVC 请求参数接收

目录 请求 传递单个参数 基本类型参数传递 未传递参数 ?传递参数类型不匹配 传递多个参数 传递对象 后端参数重命名 传递数组 传递集合 传递JSON数据 JSON是什么 JSON的优点 传递JSON对象 获取URL中的参数 文件上传 在浏览器与程序进行交互时&#xff0c;主要…...

[高等数学]换元积分法

一、知识点 (一) 第一类换元法 定理1 设 f ( u ) f(u) f(u) 具有原函数&#xff0c; u φ ( x ) u\varphi(x) uφ(x) 可导&#xff0c;则有换元公式: ∫ f [ φ ( x ) ] φ ′ ( x ) d x [ ∫ f ( u ) d u ] u φ ( x ) . \int f[\varphi(x)]\varphi (x)dx[\int f(u)du]…...

Redis简介、常用命令及优化

文章目录 一、关系数据库??与非关系型数据库概述 1. 关系型数据库2. 非关系型数据库3.关系数据库与非关系型数据库区别 二、Redis简介 1.Redis的单线程模式2.Redis 优点3.Redis 缺点 三、安装redis四、Redis 命令工具五、Redis 数据库常用命令六、Redis 多数据库常用命令七、…...

大模型训练为什么依赖GPU

近年来&#xff0c;随着人工智能技术的飞速发展&#xff0c;特别是深度学习领域的进步&#xff0c;大模型的训练逐渐成为研究和工业界的热点。作为大模型训练中的核心硬件&#xff0c;GPU&#xff08;图形处理单元&#xff09;扮演了至关重要的角色。那么&#xff0c;为什么大模…...

帕金森病与三叉神经痛的基因关联分析

帕金森病&#xff08;Parkinsons Disease, PD&#xff09;和三叉神经痛&#xff08;Trigeminal Neuralgia, TN&#xff09;是两种不同的神经系统疾病&#xff0c;前者主要影响运动功能&#xff0c;而后者则表现为剧烈的面部疼痛。尽管这两种疾病在临床表现上有显著差异&#xf…...

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装&#xff0c;会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码&#xff1a; android.injected.testOnlyfalse 最后点击“Sync now”&#xff0c;等待重新加载gradle资源即可 后面我们重新编译Debug安装…...

栈与队列(C语言版)

文章目录 栈与队列1. 栈基本操作实现(基于链表)代码运行结果 应用场景 2. 队列基本操作实现代码运行结果 应用场景 栈与队列 1. 栈 栈是一种操作受限的线性结构。操作受限体现在&#xff0c;栈只能在一端添加和删除元素&#xff0c;符合后进先出 ( LIFO ) 的特性&#xff0c;…...

stl里的deque 中控map 假如用完了,该如何处理

在 C 的标准模板库&#xff08;STL&#xff09;中&#xff0c;std::deque&#xff08;双端队列&#xff09;使用一种分段连续的存储结构&#xff0c;通过一个中控器&#xff08;通常称为中控 map&#xff09;来管理多个固定大小的存储块&#xff08;缓冲区&#xff09;。当这个…...

Git GUI设置中文的方法及使用

链接: Git Bash和Git GUI设置中文的方法 链接: Git 基本操作...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...