昇思学习营第七期·昇腾开发板 第一次:
昇思 + 香橙派 + 智能AI 是学生低成本玩转大模型的最优选择
MindSpore作为华为开源的一款国产深度学习框架,支持全场景AI开发(端、边、云都能跑)。对我们学生来说,它最大的优点是:
-
**上手快 2.兼容性强 3.高效省资源
-
香橙派:香橙派AI开发板上基于昇思MindSpore完成了类DeepSeekV3/R1架构的MoE模型全流程开发,我深刻感受到当前大模型技术演进的两个显著趋势:一是模型架构从稠密模型向MoE(混合专家)体系转型,DeepSeekV3的成功验证了稀疏化架构在计算效率与模型容量上的双重优势;二是训练范式开始融合"慢思考"机制,类似01/R1的渐进式决策模式显著提升了模型的有效参量利用率。
-
**人工智能:**目前人工智能已经较为成熟,各种人工智能软件令人眼花缭乱,而目前deepseek不仅性能强大,而且还开源免费,可谓穷苦炼丹人士的福星
开发环境的安装:
1.首先,安装CANN的对应版本:
cat /usr/local/Ascend/ascend-toolkit/8.0.0/aarch64-linux/ascend_toolkit_install.info
可以看到是8.0.01的版本,证明我们的cann安装正确。
检查mindspore的对应版本:
由于开发环境自带mindspore,我们来验证一下。
使用pip命令
pip show mindspore
2.查看mindnlp版本:
pip show mindnlp
可以看到是成功匹配的。至此,基础环境配置完成。
对于具体问题的排查方法:
- 设置环境变量:
export RUN_SLOW=True
2.执行测试命令:
pytest -v -s tests/transformers/models/qwen2/test_modeling_qwen2.py
3.启用同步模式精确定位问题: 在test_modeling_qwen2.py
脚本中import mindspore后添加:
mindspore.set_context(pynative_synchronize=True)
4.针对算子缺失的处理方式,开启同步能确定错误的具体位置
未开同步前,可已初步看出是算子问题,但无法准确定位
开启同步后,可以确定错误的具体位置
针对损失函数报错的问题
几种可能的解决办法:
- 使用
mindspore.ops.SoftmaxCrossEntropyWithLogits
替换原损失函数 - 确保labels为one-hot格式
- 统一labels和logits的数据类型
- 注意该函数返回的是
(loss, dlogits)
元组,需要提取loss值 - 按照需要应用
reduction='mean'
转换为零维Tensor
针对香橙派上Tensor索引/切片报错的处理方式 执行测试用例
pyres -s -v tests\ut\transformers\models\qwen2\test_modeling_qwen2.py::Qwen2ModelTest::test_beam_search_generate_dict_outputs_use_cache
原代码中的best_idx的类型为tuple,需要转换成Tensor
总而言之,昇思 + 香橙派 + 智能AI是不仅因低成本和易上手等特性深受初学者们的欢迎,而且还因其强大的的性能与纠错性深受老炼丹师们的欢迎。