昇思+香橙派 AI 开发实践:DeepSeek 全流程指南(基于 openEuler)

一、  环境准备

1. 镜像烧录

镜像烧录可以在任何操作系统内执⾏,这⾥以在Windows系统为例,使用balenaEtcher⼯具,快速烧录镜像到Micro SD卡中。

本章节所需的软/硬件如下:

软件相关:balenaEtcher制卡⼯具、openEuler镜像

硬件相关:TF卡(64G存储卡)、读卡器

balenaEtcher制卡⼯具下载

点击链接进行下载安装balenaEtcher⼯具即可。

下载链接:https://etcher.balena.io/#download-etcher

openEuler镜像下载

点击链接下载openEuler镜像即可。

下载链接:http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro(20T).html

镜像烧录

将插入TF卡的读卡器与电脑连接,然后打开balenaEtcher⼯具,选择刚刚下载的镜像文件,然后选择TF卡进行烧录即可。

注意:下载下来的镜像文件是.xz格式的压缩包,要先解压出.img文件,选择.img文件进行烧录。

等待TF卡烧录完成拔出读卡器。

2. 连接开发板

将烧录好的TF卡插入香橙派中,连接电源启动即可。TF卡一直插在香橙派中,不拔出。

首次连接,我们需要使用HDMI线与显示屏相连,同时插入键盘鼠标才能完成配置操作。在联网后,记下香橙派的IP地址便可用Vscode、MobaXterm等远程连接的软件进行远程连接。

本章节所需的软/硬件如下:

软件:Vscode、MobaXterm(任选其一或多个皆可)

硬件:OrangePi AIpro-20t规格⾹橙派、电源线、HDMI线、显⽰器、⿏

标、键盘

首次配置

开发板开机成功后进行登录操作。

登录账号:HwHiAiUser,密码:Mind@123(root密码也是这个)

进入桌面后,点击相应WiFi输入密码进行连接。连接成功后,右键选择“Connection Information”记录下香橙派的IP地址用于同一局域网下远程连接。

MobaXterm连接

使用MobaXterm可以连接命令行也可以连接图形化界面。

首先我们进行命令行的连接。点击上方的“Session”后选择“SSH”,然后填入香橙派IP地址,指定登录用户(可选)后,点击“OK”则远程连接成功。连接端口为22。

连接远程桌面,我们也是点击上方的“Session”,但选择“VNC”,然后填入香橙派IP地址,连接端口为5901,点击“OK”则远程连接成功。

Vscode连接

下载好Vscode后安装以下插件备用。

点击“远程资源管理器”,点击SSH后的加号添加远程连接,输入“ssh HwHiAiUser@你的香橙派实际IP”后回车。然后选择刚刚添加的远程连接,点击箭头后输入密码即可连接成功。

连接成功后需要注意,远程的插件要重新安装一下。想要在Vscode远程编辑器中运行Python代码,安装Python扩展即可。

3. 软件环境升级

Toolkit升级(8.0.0_linux-aarch64)

打开终端,使用root⽤⼾,root⽤⼾密码:Mind@123。

su – root

删除镜像中已安装CANN包释放磁盘空间,防⽌安装新的CANN包时报错磁盘空间不⾜。

cd /usr/local/Ascend/ascend-toolkit

rm -rf *

下载链接:https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.0.beta1

选择Ascend-cann-toolkit_8.0.0_linux-aarch64.run进行下载。此处我使用wget命令进行下载。下载完成后赋予其执行权限,然后运行安装。安装过程中需要手动输入一次Y。

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-toolkit_8.0.0_linux-aarch64.run

chmod +x Ascend-cann-toolkit_8.0.0_linux-aarch64.run

./Ascend-cann-toolkit_8.0.0_linux-aarch64.run –install

出现Ascend-cann-toolkit_8.0.0_linux-aarch64 install success则安装成功。

将source /usr/local/Ascend/ascend-toolkit/set_env.sh加入到/etc/profile文件末尾并加载环境变量。

vi /etc/profile

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

source /etc/profile

Kernels升级(310b_8.0.0_linux-aarch64)

打开终端,使用root⽤⼾,root⽤⼾密码:Mind@123。

su – root

执⾏如下命令,获取开发板NPU型号。

npu-smi info

下载链接:https://www.hiascend.com/developer/download/community/result?module=cann&cann=8.0.0.beta1

选择Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run进行下载。此处我使用wget命令进行下载。下载完成后赋予其执行权限,然后运行安装。安装过程中需要手动输入一次Y。

wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/CANN%208.0.0/Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run

chmod +x Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run

./Ascend-cann-kernels-310b_8.0.0_linux-aarch64.run –install

出现Ascend-cann-kernels-310b_8.0.0_linux-aarch64 install success则安装成功。

MindSpore升级(MindSpore2.5.0)

打开终端,使用HwHiAiUser用户。运行以下命令进行安装。

pip install mindspore==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

运行以下命令进行检查是否安装成功。

python -c “import mindspore;mindspore.set_device(‘Ascend’);mindspore.run_check()”

出现successfully则为成功。

Swap检查与配置

打开终端,输⼊如下命令,检查Swap是否开启:

free -m

正确输出结果为:

如输出的结果中Swap部分为0,则可在终端中输入如下命令,配置Swap:

sudo fallocate -l 16G /swapfile

sudo chmod 600/swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

echo ‘/swapfile none swap sw 0 a’sudo tee -a /etc/fstab

完成配置后可再通过 free -m 检查配置是否生效。

Gradio安装

打开终端,输⼊如下命令,安装Gradio 4.44.0:

pip uninstall gradio -y

pip install gradio==4.44.0

Mindnlp安装

打开终端,输⼊如下命令,安装Mindnlp(如已有最好先卸载,重新安装):

pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4

其他python依赖安装

在运行代码时,报错显示缺少什么包就使用pip安装什么包。

二、  运行代码

1.   下载代码

代码地址:https://github.com/mindspore-courses/orange-pi-mindspore.git

打开终端,使用HwHiAiUser用户。找一个你存放代码的位置运行如下命令:

git clone https://github.com/mindspore-courses/orange-pi-mindspore.git

下载代码后,进入Online/training/01-DeepSeek-R1-Distill-Qwen-1.5B目录,目录中的三个py文件便是我们要运行的代码。

2.   运行代码

可以使用Vscode远程连接开发环境,这样运行调试更为方便。连接步骤之前已经给出,连接成功后打开代码所在文件夹,打开相应代码点击右上角运行即可。

分别给出三个py文件运行成功的截图。

deepseek-r1-distill-qwen-1.5b-lora.py

deepseek-r1-distill-qwen-1.5b-gradio.py

deepseek-r1-distill-qwen-1.5b-jit.py

三、常见问题

1. 无法连接外部网络

在连接WiFi后,可以在局域网内连接香橙派,但是香橙派无法访问外部网络。

可以用以下方式解决:

1. 在运行命令`sudo ip route del default via 192.168.0.1 dev usb0`后问题解决,可以访问外部网络。(每次重启后要重新执行命令)

2. 右键点击图形界面右上角的`“网络->Edit Connections->选择相应的问题连接(usb0)删除”`即可。(永久生效)

2. 运行代码时出现权限相关问题

运行代码时出现“Permission denied”以及其他与当前登录用户相关的问题。

可以用以下方式解决:

从下载代码开始,全程使用HwHiAiUser用户,不要使用root用户。同时注意代码存放的位置,尽量放在HwHiAiUser用户目录下,避免引发文件权限的问题。

3. 运行代码时提示Ascend显存不足

运行代码时出现Ascend显存不足的相关提示信息,最后运行失败。有Free memory size is less than half of total memory size.Device 0 Device MOC total size:24823529472 Device MOC free size:9051504640 may be other processes occupying this card, check as: ps -ef|grep python提示的。

可以用以下方式解决:

首先使用`ps -ef | grep python`命令查看是否有其他 Python 进程正在占用 NPU 导致显存不足,有则`kill`相关进程。若无异常则使用`npu-smi info`命令查看显存占用,如果发现异常最方便的方法就是使用`reboot`命令重启设备。

4. 运行代码时有RuntimeError以及ValueError

每次代码运行到训练或推理的部分就会报错。

lora:`RuntimeError: aclnnGatherGetWorkspaceSize call failed, please check!`

gradio:`RuntimeError: aclnnCumsumGetWorkspaceSize call failed, please check!`

jit:`ValueError: Attention weights should be of size (1, 12, 6, 6), but is (1, 12, 6, 512)`

可以用以下方式解决:

检查版本问题,尤其是Mindnlp的版本。

“`

Toolkit版本:8.0.0_linux-aarch64

Kernels版本:310b_8.0.0_linux-aarch64

MindSpore版本:MindSpore 2.5.0

Mindnlp版本:mindnlp 0.4.1

“`

即使Mindnlp版本号对应,但仍然建议你先卸载Mindnlp,然后运行`pip install git+https://github.com/mindspore-lab/mindnlp.git@0.4`命令重新安装Mindnlp。

5. jit第二次对话报错

运行jit的时候,在第二次对话的时候会报`RuntimeError: Sync stream error!`错误。

可以用以下方式解决:

使用`reboot`命令重启设备。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇