昇思学习营第七期·昇腾开发板 学习打卡1

学习打卡-昇思学习营第七期·昇腾开发板

一:介绍

昇思 + 香橙派 + DeepSeek是非常好的用来学习大模型,对我们学生来说还是非常爽的。

1、MindSpore是华为开源的,用于深度学习,支持多场景开发,上手快,易操作,能找到很多学习资料,另外,兼容性强,支持不同的硬件,还有就是多快好省,不会浪费过多资源。

2、DeepSeek更是厉害,那么多媒体报道过,就不过多赘述了。

3、香橙派是国产的开源硬件平台,性价比非常高,便宜而且即插即用。

二、开发环境的安装和检查

检查cann环境

此时可以看到cann是成功安装的。

如果说未成功安装,我们是可以去官网上进行下载和查看的。

可以看到,是可以找到对应的包的。

检查mindspore和mindnlp环境

可以看到,我们的mindspore和mindnlp也是安装完成了。

如果没有成功可以去官网上进行安装。

至此,环境匹配完成。

可以看到,cann的版本是8.1.r1

Mindspore版本是2.6.0

Mindnlp版本是0.5.

是符合官方给出的对应环境的。

对香橙派进行网络适配:

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

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

image-20250725204754438

a. 针对算子缺失的处理方式

b. 针对损失函数报错的处理方式

针对损失函数报错的处理方式进一步查阅文档,会发现如下注意点: 1.该损失函数的labels输入需要one-hot格式 2.logits和labels的数据类型需要一致 3.输出并不是一个零维Tensor 4.的1loss值,而是一个(Ioss,dlogits)的tuple,且 loss是一个Tensor )

针对损失函数报错的处理方式针对上述三点,需要对代码进行如下修改: 1.将损失函数loss fct)修改为 mindspore.ops.SoftmaxCrossEntropyWithLogits 2.labels修改为one-hot格式 3.统一labels和logits的数据类型,计算获取loss 4.按照原本默认的reduction='mean’转成零维Tensor