基于OrangePI AIstudio Pro的deepseek部署实践
收藏回复举报
基于OrangePI AIstudio Pro的deepseek部署实践
新人帖
发表于2025-04-23 13:00:35
0 查看

产品简介:

OPiAIStudio Pro是基于2个昇腾AI处理器的新一代高性能推理解析卡,可提供 352 TOPS INT8 的计算能力,内存提供了96GB 和192GB 版本。OPiAIStudio Pro 融合“通用处理器、AICore、编解码”于一体,提供超强 AI推理、目标检索、视频图片编解码等功能。OPiAIStudio Pro作为额外供电的计算卡,需要和电脑搭配使用,不能单独使用。

【整体图】

image.png

1.接口和连接方法

1.1 接口参数介绍

image.png

OPiAIStudio Pro接口十分简单,包括一个Type-c(USB4)的接口和DC电源接口,当接口被有效连接,对应的指示灯会常亮。中间为工作指示灯,当计算卡工作时,工作指示灯闪烁,可以据此判断计算卡是否参与计算。通过电源线对OPiAIStudio Pro供电,通过USB4数据线连接到电脑。

cke_2721.jpeg

cke_3614.jpeg

注意:需要配置带有USB4或者雷电4接口的x86_64电脑,OPiAIStudioPro只能通过USB4接口接到电脑使用。使用前确认电脑雷电接口版本,建议不要使用雷电3接口,可能无法识别OPiAIStudioPro,即便部分雷电3接口的电脑能识别,对后续驱动安装也很可能产生问题。

1.2 连接准备

OPiAIStudio Pro适配的操作系统为Ubuntu22.04,内核版本 为Linux-5.15,注意不能用虚拟机。为确保驱动适配,注意系统和内核版本的安装正确。ubuntu系统的下载连接为

https://mirrors.ustc.edu.cn/ubuntu-releases/22.04.5/ubuntu-22.04.5-desktop-amd64.iso

操作系统安装成功后,切换内核版本

$ sudo apt update

$ sudo apt install-y linux-image-5.15.0-126-generic linux-modules-extra-5.15.0-126-generic

$ sudo apt install-y linux-headers-5.15.0-126 linux-headers-5.15.0-126-generic

设置GRUB_DEFAULT,将Advanced options for Ubuntu默认指向Linux5.15.0内核(也可跳过,开机时手动选择内核版本)

$ sudo vim /etc/default/grub

GRUB_DEFAULT="Advanced options forUbuntu>Ubuntu, with Linux 5.15.0-126-generic"

$ sudo update-grub (更新配置)

设置完了重启系统,可以通过“uname -a"查看内核版本

cke_7039.png

1.3 启动步骤

1) 先让Ubuntu电脑处于关机状态

2) 然后使用USB4数据线将OPiAIStudio Pro连接到电脑,

3)先开机OPiAIStudio Pro,再开机Ubuntu电脑

4)进入电脑,使用lspci命令,如果能看到ASMedia和OPiAIStudio Pro的PCIe设备信息,表明连接成功。

image.png

注意:如果没有显示设备,确认设备是否正确连接,雷电接口是否版本正确。若均无问题,可以尝试重新启动OPiAIStudioPro,插拔设备等方法使其连接。

2.驱动安装

前置要求:保证OPiAIStudioPro和电脑有效连接,获取驱动包。

安装依赖包

$ sudo apt update

$ sudo apt install-y dkms net-tools gcc make cmake git pigz pciutils vim dos2unix unrar

执行以下命令安装310P的驱动

$chmod+x Ascend-hdk-310p-npu-driver_24.1.rc4.b999_linux-x86-64-opiaistudiopro.run

$sudo ./Ascend-hdk-310p-npu-driver_24.1.rc4.b999_linux-x86-64-opiaistudiopro.run --full --install-username=user --install-for-all

注意user是当前用户,注意替换

当驱动安装包执行完成后,如果显示包含以下内容说明驱动安装包顺利完成

[INFO]Driver package installed successfully! The new version takes effect immediately.

重启系统,首先利用lspci保证OPiAIStudioPro的正确连接,其次输入 $npu-smi info 如果显示以下内容,说明驱动安装成功

image.png

注意:如果出现报错dcmi module initialize failed. ret is -8005,很可能是linux内核版本不一致,查看内核版本并切换

3.DeepSeek的安装和实践

3.1 使用docker部署mindIE

1)安装docker, 装完使用docker-v 命令能看到版本号说明安装成功

$sudo apt update

$apt install -y docker.io

$docker -v

2)下载ATB models,链接为

https://www.hiascend.com/developer/download/community/result?module=ie+pt+cann

image.png

选择镜像版本,申请权限填写相关信息,即可获得下载权限,选择下载1.0.0-300I-Duo-py311-openeuler24.03-lts

image.png

4)点击下载会显示如下截图,按照截图介绍操作即可

image.png

下载完成后输入以下命令有

#docker images

image.png

3.2 docker使用

3.2.1首次使用

目前社区的openEuler社区的镜像还有一些问题,需要替换部分文件

1)下载fix_openeuler_docker文件夹到 Ubuntu电脑的/models目录下,其中fixhccl 文件夹中的库文件用于修复hccl的问题。 Ascend-cann-nnal 文件夹中的 run文件用于修复MindIE服务化接口精度不达标的问题。

2)创建start-docker.sh的启动脚本,位置任意

IMAGES_ID=$1 
 NAME=$2 
 if [ $#-ne 2 ]; then   
   echo"error:need one argument describing your container name." 
   exit1 
 fi 
 dockerrun --name${NAME} -it -d --net=host--shm-size=500g\
 --privileged=true\
 -w/usr/local/Ascend/atb-models\
 --device=/dev/davinci_manager\
 --device=/dev/hisi_hdc\
 --device=/dev/devmm_svm\
 --entrypoint=bash\
 -v/models:/models\
 -v/usr/local/Ascend/driver:/usr/local/Ascend/driver\
 -v/usr/local/dcmi:/usr/local/dcmi\
 -v/usr/local/bin/npu-smi:/usr/local/bin/npu-smi\
 -v/usr/local/sbin:/usr/local/sbin\
 -v/home:/home\-v/tmp:/tmp\
 -v/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime\
 -ehttp_proxy=$http_proxy\
 -ehttps_proxy=$https_proxy\
 -e"PATH=/usr/local/python3.11.6/bin:$PATH"\ 
 ${IMAGES_ID}

3)利用 docker images 查看docker的ID,运行start-docker.sh首次运行docker

# chmod+xstart-docker.sh

# bash start-docker.sh 74a5b9615370 mindIE (74a5b9615370需要根据实际替换)

4)运行命令进入容器命令行

#docker exec-it mindIE bash

5) 进入容器后,需要替换几个文件并安装Ascend-cann-nnal软件包

# cd /usr/local/Ascend/ascend-toolkit/8.0.0/lib64/

# cp /models/fix_openeuler_docker/fixhccl/* ./

# source /usr/local/Ascend/ascend-toolkit/set_env.sh

6)然后执行以下命令,升级Ascend-cann-nnal软件包

# chmod +x /models/fix_openeuler_docker/Ascend-cann-nnal/Ascend-cann-nnal_8.0.1_linux-x86_64.run

# /models/fix_openeuler_docker/Ascend-cann-nnal/Ascend-cann-nnal_8.0.1_linux-x86_64.run --install --quiet

7)使用以下命令,出现以下输出说明升级成功

cat /usr/local/Ascend/nnal/atb/latest/version.info

image.png

3.2.2 非首次使用

1) 首先使用docker ps -a命令查询前面创建的容器名

image.png

2)然后启动容器,并进入容器命令行

# docker start mindIE

# docker exec -it mindIE bash

3.3 DeepSeek-R1-Distill-Qwen-7B 部署

1)首先进入models文件夹下,把模型下载到本地

#cd /models

#sudo apt install-y git-lfs

#git clone https://modelers.cn/XLRJ/DeepSeek-R1-Distill-Qwen-7B.git

(魔乐社区作为一体化开源平台,包含多个大语言模型,可以参考 https://modelers.cn)

2) deepseek模型的推理需要物理内存与SWAP内存的和大于64GB,不然转换权重和执行推理程序时会退出。若物理内存不够,可以执行以下命令扩大SWAP内存

#fallocate-l 64G /swap_model

#chmod 600 /swap_model

#mkswap /swap_model

#swapon /swap_model

使用完成后可以使用下面的命令释放空间

#swapoff /swap_model

#rm/swap_model

注意:扩大swap命令需要在物理机上使用

3)在docker容器中,使用下面的命令激活CANN和MindIE环境变量

# source /usr/local/Ascend/ascend-toolkit/set_env.sh

# source /usr/local/Ascend/nnal/atb/set_env.sh

# source /usr/local/Ascend/mindie/set_env.sh

# source /usr/local/Ascend/atb-models/set_env.sh

4)将deepseek模型及其所有文件的所有者和组更改为root用户和root组。

# chown root:root-R /models/DeepSeek-R1-Distill-Qwen-7B

5)执行以下命令测试模型的推理功能

# cd $ATB_SPEED_HOME_PATH

# torchrun --nproc_per_node 2 --master_port 20037 -m examples.run_pa --model_path /models/ DeepSeek-R1-Distill-Qwen-7B/ --max_output_length 256

若推理成功,可以看见如下所示

image.png

3.4 聊天机器人(chat_rebot)项目测试

chat_rebot 由深圳市迅龙软件有限公司开发的聊天机器人案例,支持回答用户提问,支持上下文问答,具体长度视模型而定.

3.4.1 启动mindIE server服务

1) 进入docker环境下的mindie-service文件夹,修改conf/config.json中的配置

# cd /usr/local/Ascend/mindie/latest/mindie-service

# vim conf/config.json

需要修改的内容如下(模型不同修改modelWeightPath值)

"httpsEnabled" : false,

"npuDeviceIds" : [[0,1]],

"modelName" : "Qwen-7B",

"modelWeightPath" : "/models/DeepSeek-R1-Distill-Qwen-7B",

"worldSize" : 2,

"trustRemoteCode" : true

2)修改模型的config.json文件的权限

chmod 640 /models/DeepSeek-R1-Distill-Qwen-7B/config.json

3)直接启动 MindIEServer 服务

#./bin/mindieservice_daemon

最后输出包含“Daemon start success! ”字符,说明启动成功

image.png

3.4.2 部署chat_rebot

1)首先下载软件代码到本地

#git clone https://gitee.com/orangepi-xunlong/chat_robot.git

2) 进入聊天机器人案例目录并安装依赖:

# cd chat_robot

# pip3 install -r requirements.txt -i https://mirrors.huaweicloud.com/repository/pypi/simple

3)运行主程序

python3 main.py

启动后会产生如下的输出,标红处有两个IP地址。 第一个IP只能在本地计算机访问,第二个IP可以在与部署主机同一网络下的设备访问

image.png

4) 在浏览器中可以输入IP地址,即可输入问题,模型即会提供推理结果

image.png

我要发帖子