一:昇思 + 香橙派 + DeepSeek介绍
MindSpore:作为华为开源的一款国产深度学习框架,支持全场景AI开发
香橙派(Orange Pi):国产开源硬件平台,性价比极高!一块香橙派5(4核ARM + 8GB内存)只要几百块,就能跑轻量级AI模型
DeepSeek:国产大模型的“黑马”,由深度求索团队推出,包括**DeepSeek-V3、DeepSeek-R1等模型,**开源免费、性能强大、中文理解极强!
二:DeepSeek-R1-Distill-Qwen-1.5B在香橙派上的开发与适配:
流程:
1.查看CANN的对应版本
cd /usr/local/Ascend/ascend-toolkit
cat /usr/local/Ascend/ascend-toolkit/8.0.0/aarch64-linux/ascend_toolkit_install.info)
2.检查mindspore和mindnlp的版本
pip show mindspore
pip show mindnlp
本章最后介绍了开发过程中几种常见问题的解决方法
1,针对算子缺失的处理方式
pytest -s -v tests\ut\transformers\models\qwen2
test_modeling_qwen2.py::Qwen2ModelTest::test_new_cache_format_0
可以初步判断出来,是aclnncumsum算⼦的问题,但⽆法定位到具体是脚本中的哪⼀⾏报错
开启同步后,确定了错误的具体位置,是modeling_qwen2.py的cumsum算⼦问题
Tensor.cumsum走的是aclnn的cumsum算子,切换成ops.cumsum,改为走aclop算⼦执行
2.针对损失函数报错的处理方式
执行测试用例:
pytest -s -vtests\ut\transformers\models\qwen2
test_modeling_qwen2.py::Qwen2ModelTest::test_Qwen2_sequence_classification_model
在开同步的前提下,可以看出是lossfunction,也就是CrossEntropyLoss的问题
损失函数相关的问题,建议使用mindspore.ops.primitive中的接口替换,通过查阅文档可知,其中支持昇腾硬件的接口为mindspore.ops.SoftmaxCrossEntropyWithLogits
进一步查阅文档,会发现如下注意点:
1.该损失函数的labels输入需要one-hot格式
2.logits和labels的数据类型需要一致
3.输出并不是一个零维Tensor
4.的loss值,而是一个(loss,dlogits)的tuple,且loss是一个Tensor
针对上述三点,需要对代码进行如下修改:
1.将损失函数(loss_fct)修改为mindspore.ops.SoftmaxCrossEntropyWithLogits
2.labels修改为one-hot格式
3.统一labels和logits的数据类型,计算获取loss
4.按照原本默认的reduction=’mean’转成零维Tensor







