张国伟 发表于 2025-3-24 08:24:32

华为裸金属昇腾Atlas 900A2 P0D(910B)部署Deepseek蒸馏70b LLaMA模子

一、环境阐明

华为裸金属服务器,昇腾架构Atlas 900A2 P0D 共3.2P算力,此架构不能用ollama
硬件配置:


[*]机型: physical.kat2ne.48xlarge.8.ei.pod101
[*]CPU: Kunpeng 920 (4*48Core@2.6GHz),ARM 架构,192 核
[*]内存: 24*64GB DDR4 1536G
[*]硬盘: 500G nvmex 15T
[*]网卡: 2*100G + 8*200G
[*]浸没式液冷
模子:DeepSeek-R1-Distill-Llama-70B,最多也能只能部署这个,如果想要部署671b,需要4台及以上910b的服务器
体系层
# cat /etc/os-release
NAME="EulerOS"
VERSION="2.0 (SP10)"
ID="euleros"
VERSION_ID="2.0"
PRETTY_NAME="EulerOS 2.0 (SP10)"
ANSI_COLOR="0;31" 二、部署步骤

a.需要安装整备一些基础工具
yum update
yum install -y epel-release net-tools screen socat conntrack ebtables ipset chrony lsof 防火墙没啥用都关掉
systemctl stop firewalld
systemctl disable firewalld
swapoff -a
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0 硬盘配置,15T
#创建pv vg
pvcreate /dev/nvme{0..4}n1

vgcreate datavg /dev/nvme{0..4}n1

lvcreate -l 100%FREE -n datalv datavg

#划分成ext4
mkfs.ext4 /dev/datavg/datalv

#创建和挂载
mkdir /data
mount /dev/datavg/datalv /data

#持久化
vim /etc/fstab

/dev/datavg/datalv/dataext4defaults00 b.下载模子
国内源:阿里云的ModelScope 保举用这个,一百多G
国际源:HuggingFace
下载方式有许多,个人比力保举git lfs,比力简单一些,最终的目标是把模子下载下来就可以
https://i-blog.csdnimg.cn/direct/d121a233e44d45b4b9504904a0ad5ff9.png
EulerOS安装git lfs
wget https://github.com/git-lfs/git-lfs/releases/download/v3.5.1/git-lfs-linux-arm64-v3.5.1.tar.gz
tar -zxvf git-lfs-linux-arm64-v3.5.1.tar.gz
cd git-lfs-3.5.1/
./install.sh
git-lfs version 模子路径:/data/model/DeepSeek-R1-Distill-Llama-70B
注:模子文件需要750的递归权限
在此文件下执行,要下载很长时间。。。
git lfs install

git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Llama-70B.git c.下载专用容器
地址在昇腾社区,需要申请才华下载,申请速度最快1-2小时,文件11G左右
https://i-blog.csdnimg.cn/direct/7de9d3a488674835adbb3258b903240a.png
需要下载的是1.0.0-800I-A2-py311-openeuler24.03-lts
https://i-blog.csdnimg.cn/direct/4141bf82d4d94fa2b8af036d86b3e839.png
需要关闭显卡卡密
#关闭TLS加密(逐卡操作)
for i in {0..7}; do hccn_tool -i $i -tls -s enable 0 ; done 三、模子配置启动

a.用docker启动,大概本身写一个docker-compose,利用910b的机子就不用把模子量化也能启动70b,如果配置比这个低就要量化,这里操作没有量化
docker run -it -d --net=host --shm-size=1g \
    --privileged \
    --name deepseek-r1 \
    --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 /data/model/DeepSeek-R1-Distill-Llama-70B:/data/model/DeepSeek-R1-Distill-Llama-70B:ro \
    swr.cn-south-1.myhuaweicloud.com/ascendhub/mindie:1.0.0-800I-A2-py311-openeuler24.03-lts bash 需要编译mindie配置文件,配置文件阐明配置参数阐明-安装与配置-MindIE LLM开辟指南-大模子开辟-MindIE1.0.0开辟文档-昇腾社区
容器启动后进入容器中
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json

{
...
"ServerConfig" :
{
...
"port" : 1025, #自定义
"managementPort" : 1026, #自定义
"metricsPort" : 1027, #自定义
...
"httpsEnabled" : false, #这个要关掉
...
},

"BackendConfig": {
...
"npuDeviceIds" : [],#8块显卡
...
"ModelDeployConfig":
{
"ModelConfig" : [
{
...
"modelName" : "llama",#模型名称
"modelWeightPath" : "/data/model/DeepSeek-R1-Distill-Llama-70B",#模型路径
"worldSize" : 8,#8块
...
}
]
},
...
}
} 启动推理服务,启动报错可能是权限问题,要么750,要么755,要递归权限,配置文件其他地方先不要改,启动乐成了再修改
cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon

#后台启动,要不然关窗口服务也断掉
./mindieservice_daemon & 表现下面这个就启动乐成
https://i-blog.csdnimg.cn/direct/bce2ccc2cf4e4ed2bb740bbefa143b78.png
此时,npu的功耗也会增大配置利用起来了
https://i-blog.csdnimg.cn/direct/a30ad63f19624237bf1e185f7c9ab4fc.png
b.接口测试,max_token加大,要不然输出笔墨断掉
curl 127.0.0.1:1025/generate -d '{
"prompt": "你是谁,你能干什么",
"max_tokens": 256,
"stream": false,
"do_sample":true,
"repetition_penalty": 1.00,
"temperature": 0.01,
"top_p": 0.001,
"top_k": 1,
"model": "llama"
}' https://i-blog.csdnimg.cn/direct/3f69bb36c80946879000d8f08592c097.png
四、模子对话

模子可视化对话用的最多的就是openweb-ui,参考了大部门的教程都是利用python3.11安装的,用3.11会破坏现有的环境,会冲突,以是就利用了docker-compose的方式
注:由于openui需要跟当地的模子通信,当地模子docker网络通信接纳的是host模式,openui也要接纳此方式,然后做持久化挂载,利用docker-compose up -d启动即可,默认的端口是8080
version: '3'
services:
open-webui:
    image: ghcr.nju.edu.cn/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    network_mode: "host"
    volumes:
      - /data/webui:/app/backend/data 启动完成后访问端口,然后注册一个管理员的账号,可以是假造的邮箱,创建后需要等一下,等几分钟,才会有其他的东西出来
然后登岸进去,右上角头像点击设置---管理员设置---外部链接
关掉ollama api的毗连
添加本身的毗连,这个地方如果在同一个台机子就写localhost,端口号在上面的容器中的 
   /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
已设定端口号
URL建议写localhost,openweb-ui密钥我试过了随便写,昇腾这个70b不做鉴权,随便写,下面这个模子ID最好是跟config.json对应"modelName" : "llama"
https://i-blog.csdnimg.cn/direct/49a5883f53694b3993439f9c09499280.png
注:关于ServerConfig / ipAddress这个参数,MindIE Server配置有阐明,要不然就写本主机的内网IP地址。可以写0.0.0.0,会报错
Input ipAddress is invalid
ERR: Failed to init endpoint! Please check the service log or console output
   全零侦听会导致三面隔离失效,不满足安全配置要求,故默认禁止绑定IP地址为0.0.0.0。若仍需绑定IP地址为0.0.0.0,那么在保证安全前提下,需要将配置文件中的“allowAllZeroIpListening”设置为true。
-------------------------------------------------
EndPoint提供的业务面RESTful接口绑定的IP地址。


[*]如果存在环境变量MIES_CONTAINER_IP,则优先取环境变量值作为业务面IP地址。
[*]如果不存在环境变量MIES_CONTAINER_IP,则取该配置值。
必填,默认值:"127.0.0.1"。
直接在对话选择模子就可以对话了,但是现在有一个JSON串的问题,等解决了会修改此文章
SyntaxError: Unexpected token 'd', "data: {"id"... is not valid JSON
https://i-blog.csdnimg.cn/direct/9e310c39200d4e4a9bfbdb5d87f27cd9.png

此模子兼容openai,停止目前写此文章还不兼容ragflow0.17

参考文章
GPU 进阶笔记(二):华为昇腾 910B GPU 干系(2023)
昇腾 910B 物理机搭建DeepSeek指南(单机版)-物理机-最佳实践-物理机搭建DeepSeek指南 - 天翼云
配置参数阐明-MindIE Server-MindIE Service组件-MindIE Service开辟指南-服务化集成部署-MindIE1.0.0开辟文档-昇腾社区
华为昇腾 910B 部署 DeepSeek-R1 蒸馏系列模子详细指南_人工智能_歌刎-松山湖开辟者村综合服务平台

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 华为裸金属昇腾Atlas 900A2 P0D(910B)部署Deepseek蒸馏70b LLaMA模子