昇腾 DeepSeek:基于昇思MindSpore的Janus-Pro开发实践
发表于 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前期准备
Orange Pi AIpro(20T)开发板一个、鼠标、键盘、显示屏、网线、电源线
2、软件环境
镜像版本 | CANN版本 | MindSpore版本 |
---|---|---|
Ubuntu22.04(20250211) | 8.0 | 2.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开发板部署的过程,大家可以自己上手进行相关体验。