一、环境阐明
华为裸金属服务器,昇腾架构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 蒸馏系列模子详细指南_人工智能_歌刎-松山湖开辟者村综合服务平台
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |