昇腾社区首页
中文
注册
昇腾 DeepSeek:基于昇思MindSpore的Janus-Pro开发实践

昇腾 DeepSeek:基于昇思MindSpore的Janus-Pro开发实践

香橙派AIpro

发表于 2025/04/14

昇腾DeepSeek:基于昇思MindSpore的Janus-Pro实践

01前序

2025 年春节,AI 领域再掀波澜!DeepSeek的Janus-Pro 模型横空出世,以创新的双路径架构以及强大的多模态交互能力,引发业界广泛关注。
为了让更多开发者能够快速上手 ,我们基于昇思MindSpore AI框架和MindSpore NLP套件在香橙派AIpro(20T)24G开发板上,部署了Janus-Pro 模型,希望通过我们的努力,能够为 AI 社区的发展贡献一份力量,让更多人能够参与到 AI 的浪潮中来,以下是详细的Janus-Pro部署教程。
开源链接:https://gitee.com/mindspore-lab/mindnlp.git

02前期准备

1、硬件

Orange Pi AIpro(20T)开发板一个、鼠标、键盘、显示屏、网线、电源线

2、软件环境

镜像版本CANN版本MindSpore版本
Ubuntu22.04(20250211)8.02.5

03环境准备

步骤一:烧录镜像(20250211版)

首先,从官网获取20T开发版镜像,镜像地址:Orange Pi - Orangepi,进入后有Ubuntu和openEuler两个镜像环境,本次教程用Ubuntu镜像作为例。


点击“下载”,进入百度网盘,依次选择“Ubuntu"、"opiaipro_20t_ubuntu22.04_desktop_aarch64_20250211.img.xz",进行下载。


然后准备一张至少64G大小的SD卡,将SD卡插入读卡器中,打开镜像烧录软件balenaEtcher(请使用1.18版本,并使用管理员身份运行)如图所示。


选择好镜像文件和SD卡之后,就可以开始烧录了,烧录之后会显示烧录成功。

**提醒:如烧录结束后,提示烧录失败,请忽略,可以继续使用。

步骤二:开发板启动与连接

我们将烧录好的SD卡插入到香橙派卡槽当中,并启动开发板(开发板事先要连接显示屏、键盘和鼠标。开发板连接可以参考官方资料中的“用户手册”)。

开发板启动后,开发板支持多种连接方式,如串口连接、网线连接等,请参考用户手册的2.9、3.5、3.6节,登录开发板后请参考3.18节设置swap内存。

设置Swap命令具体如下:

sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h

步骤三:环境配置

1、CANN安装

备注:新版本默认安装了CANN 8.0, 此步骤可跳过,仅做了解即可。

进入官网,按照下图中的标注进行筛选


分别下载

Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run和Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run

下载完成后进入下载目录,如果你是使用浏览器下载,默认在~/Downloads目录下,在终端中依次执行(#后内容为注释)

cd ~/Downloads
sudo su #下面会要求输入密码,默认为Mind@123,输入的时候不会显示键入的字符, 输入完成后进入root用户
#运行下面命令授予下载的两个安装包运行权限
chmod +x Ascend*
#运行下面命令安装toolkit包,安装需要较长时间,请耐心等待
./Ascend-cann-toolkit_8.0.RC3.alpha002_linux-aarch64.run -–install
按提示键入‘Y’
#运行下面命令安装kernels包,安装需要较长时间,请耐心等待
./Ascend-cann-kernels-310b_8.0.RC3.alpha002_linux.run -–install
#按提示键入‘Y’
#kernels安装完成后请运行以下命令
ls /usr/local/Ascend/ascend-toolkit/latest/opp/built-in/op_impl/ai_core/tbe/kernel/

将会输出下面内容

如果输出不正确需要重新安装CANN。

安装完成后终端执行:

exit

退出root用户,此时终端又变回


运行下面命令设置环境变量(当前 用户需要为HwHiAiUser)

echo source /usr/local/Ascend/ascend-toolkit/set_env.sh >> ~/.bashrc
source ~/.bashrc

2、MindSpore安装(2.5.0版)

系统默认安装mindspore2.4,需安装mindspore2.5,进入MindSpore官网:https://www.mindspore.cn/


选择对应的MindSpore、Python、CANN版本(本次安装配置和截图一致)。然后将安装命令复制到命令行执行即可。

mindspore安装完成后,执行下面命令验证是否安装成功。

python -c "import mindspore;mindspore.set_context(device_target='Ascend');mindspore.run_check()"

3、MindSpore NLP安装

**请注意以下所有命令均在HwHiAiUser用户下运行

首先下载MindSpore NLP的代码,这里对janus做了适配,终端中执行以下命令从源码安装MindSpore NLP

cd ~
git clone https://gitee.com/mindspore-lab/mindnlp.git
cd mindnlp
git checkout janus
pip install -e .

04 运行案例

**请注意以下所有命令均在HwHiAiUser用户下运行

步骤一:下载janus模型权重

终端中执行以下命令

pip install modelscope
modelscope download --model deepseek-ai/Janus-Pro-1B  --local_dir  /home/HwHiAiUser /Janus-Pro-1B

** 这里需要等待较长时间。

下载完成后模型权重将保存在/home/HwHiAiUser/Janus-Pro-1B中,如果要保存在其他位置,请修改local_dir参数,并同步修改mindnlp/llm/inference/janus_pro/understanding.py和mindnlp/llm/inference/janus_pro/generation.py中的model_path修改为对应的目录地址。



步骤二:运行模型

**注意,由于模型占用内存较多,没有设置swap请设置swap,swap参考前述用户手册的3.18节。

1、运行图像理解任务

在终端中输入

pip install attrdict
cd ~/mindnlp/llm/inference/janus_pro
python understanding.py

**提醒:运行代码后,需要3-5分钟时间,请耐心等待下。

这里示例的输入图像为:


运行结果为:


2、运行图像生成任务

在终端中输入:

python generation.py
#输入prompt为:
A stunning princess from kabul in red, white traditional clothing, blue eyes, brown hair

提醒:运行代码后,需要8-10分钟时间,请耐心等待下。

在~/mindnlp/llm/inference/janus_pro/generated_samples目录下生成图像:


05视频课程

本实验也在昇腾社区3月技术公开课进行课程直播并录制了课程视频,您可以观看视频进行学习。


06实验总结

我们基于昇思MindSpore AI框架和MindSpore NLP套件在香橙派AIpro(20T)24G开发板上,部署了Janus-Pro 模型,在实验过程中,也带着大家一起完成了开发板环境镜像中CANN、MindSpore版本升级,通过本案例的学习,希望大家可以能够了解MindSpore及Janus-pro在香橙派AIpro开发板部署的过程,大家可以自己上手进行相关体验。



本页内容