昇思学习营第七期·昇腾开发板学习打卡_第01次

昇思学习营第七期·昇腾开发板学习打卡_第一次:

还记得之前一个学长带着我做项目的时候就是使用的jetson nano做的上位机的方案来实现的。当时的jetson nano的价格真的让人望而却步啊,一块4G显存的板子需要2000左右,还不是原厂的。今天学习了香橙派+mindspore的上位机方案真的是让我狂喜啊。

不论是之前的树莓派还是jetson nano大部分价格都是因为关税的原因,但是今天终于又一款国产的cpu+npu的平替实现方案了。

可以看见,这块AIpro拥有者20T的强劲算力,显存也有24G,性能也相当不错了,会想起当初,如果我拥有一块这样的上位机,可能当初的比赛成绩又得上升一个等级了。

可以看到,除了香橙派硬件上的支持,我们的软件方面也是需要有强大生态来支持的。此时就不得不请出我们的国产ai框架mindspore了。我们的国产生态也是相当的strong和丰富啊。

下面,我学习到了如何在香橙派上进行模型的开发和适配

1.对于CANN的安装和验证。

我们可以用下方的命令在终端中输入查看我们的cann是否安装成功。

cat /usr/local/Ascend/ascend-toolkit/8.1.RC1/aarch64-linux/ascend_toolkit_install.info

可以看见已经成功安装了cann。

2.对于MindSpore

昇思MindSpore这个框架真的超级友好。它是华为开源的,支持各种AI开发场景,而且操作起来特别顺手。

它有很多和PyTorch类似的接口,而且还有中文文档,对于有一些pytorch基础的同学来说,学习mindspore完全不是问题。

我们来查看自己的mindspore版本:

pip show mindspore

可以看见已经成功安装了2.6.0版本的。

3. Mindnlp

我对mindnlp的理解就是mindnlp就相当于transformers

验证mindnlp:

pip show mindnlp

至此,我们需要的开发环境安装完成了。

网络调试:

由于MindSpore NLP套件中有针对模型的ut测试,可通过pytest来测试模型在香橙派的训练和推理,并进行问题定位和调试:

对算子缺失进行定位和修改:

由于MindSpore动态图下框架存在多线程异步⾏为,所以会出现python调⽤栈不准确的场景,为了精准定位在test_modeling_qwen2.py脚本中import mindspore之后的位置,加入如下代码,重新跑pytest,查看具体的报错位置并根据报错信息修改。

mindspore.set_context(pynative_synchronize=True)