华为裸金属昇腾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的服务器

系统层

[root@0001 ~]# 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  /data  ext4  defaults  0  0

b.下载模型

国内源:阿里云的ModelScope 推荐用这个,一百多G

国际源:HuggingFace

下载方式有很多,个人比较推荐git lfs,比较简单一些,最终的目的是把模型下载下来就可以

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左右

需要下载的是1.0.0-800I-A2-py311-openeuler24.03-lts

需要关闭显卡卡密

#关闭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" : [[0,1,2,3,4,5,6,7]],  #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 &

显示下面这个就启动成功

此时,npu的功耗也会增大配置利用起来了

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"
}'

四、模型对话

模型可视化对话用的最多的就是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"

注:关于ServerConfig / ipAddress这个参数,MindIE Server配置有说明,要不然就写本主机的内网IP地址。可以写0.0.0.0,会报错

Input ipAddress [0.0.0.0] 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

此模型兼容openai,截至目前写此文章还不兼容ragflow0.17

参考文章

GPU 进阶笔记(二):华为昇腾 910B GPU 相关(2023)

昇腾 910B 物理机搭建DeepSeek指南(单机版)-物理机-最佳实践-物理机搭建DeepSeek指南 - 天翼云

配置参数说明-MindIE Server-MindIE Service组件-MindIE Service开发指南-服务化集成部署-MindIE1.0.0开发文档-昇腾社区

华为昇腾 910B 部署 DeepSeek-R1 蒸馏系列模型详细指南_人工智能_歌刎-松山湖开发者村综合服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值