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

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

昇思 + 香橙派 + 智能AI 是学生低成本玩转大模型的最优选择

MindSpore作为华为开源的一款国产深度学习框架,支持全场景AI开发(端、边、云都能跑)。对我们学生来说,它最大的优点是:

  1. **上手快 2.兼容性强 3.高效省资源

  2. 香橙派:香橙派AI开发板上基于昇思MindSpore完成了类DeepSeekV3/R1架构的MoE模型全流程开发,我深刻感受到当前大模型技术演进的两个显著趋势:一是模型架构从稠密模型向MoE(混合专家)体系转型,DeepSeekV3的成功验证了稀疏化架构在计算效率与模型容量上的双重优势;二是训练范式开始融合"慢思考"机制,类似01/R1的渐进式决策模式显著提升了模型的有效参量利用率。

  3. **人工智能:**目前人工智能已经较为成熟,各种人工智能软件令人眼花缭乱,而目前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

可以看到是成功匹配的。至此,基础环境配置完成。

对于具体问题的排查方法:

  1. 设置环境变量

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.针对算子缺失的处理方式,开启同步能确定错误的具体位置

未开同步前,可已初步看出是算子问题,但无法准确定位

开启同步后,可以确定错误的具体位置

针对损失函数报错的问题
几种可能的解决办法:

  1. 使用mindspore.ops.SoftmaxCrossEntropyWithLogits替换原损失函数
  2. 确保labels为one-hot格式
  3. 统一labels和logits的数据类型
  4. 注意该函数返回的是(loss, dlogits)元组,需要提取loss值
  5. 按照需要应用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是不仅因低成本和易上手等特性深受初学者们的欢迎,而且还因其强大的的性能与纠错性深受老炼丹师们的欢迎。