主要内容
华为发布了其 CloudMatrix 384 AI 芯片集群,这是一个用于 AI 学习的新系统。它采用了通过光链路连接的昇腾 910C 处理器集群。分布式架构意味着该系统能够超越传统硬件 GPU 设置,尤其是在资源使用和片上时间方面,尽管单个昇腾芯片的性能不如竞争对手。华为声称,其新框架使该科技巨头成为“对英伟达市场领先地位的强大挑战者,尽管受到美国的持续制裁”。
要使用华为的新 AI 框架,数据工程师需要调整他们的工作流程,使用支持华为昇腾处理器的框架,如 MindSpore,华为及其合作伙伴提供该框架。
与 NVIDIA 的生态系统主要使用 PyTorch 和 TensorFlow(旨在充分利用 CUDA)不同,华为的昇腾处理器与华为开发的深度学习框架 MindSpore 配合使用时性能最佳。如果数据工程师已经在 PyTorch 或 TensorFlow 中构建了模型,他们可能需要将模型转换为 MindSpore 格式或使用 MindSpore API 重新训练它们。值得注意的是,MindSpore 使用与 PyTorch 或 TensorFlow 不同的语法、训练管道和函数调用,因此需要一定程度的重新设计才能复制模型架构和训练管道的结果。例如,单个操作符行为有所不同,如卷积和池化层中的填充模式。在默认权重初始化方法上也存在差异。
使用 MindIR 进行模型部署:MindSpore 采用 MindIR(MindSpore 中间表示),类似于 Nvidia NIM。根据 MindSpore 的官方文档,一旦模型在 MindSpore 中训练完成,就可以使用 mindspore.export 实用程序将其导出,将训练后的网络转换为 MindIR 格式。DeepWiki 的指南详细介绍了,为进行推理而部署模型通常涉及加载导出的 MindIR 模型,然后使用 MindSpore 的昇腾芯片推理 API 运行预测,该 API 处理模型反序列化、分配和执行。MindSpore 比 PyTorch 或 TensorFlow 更明确地分离了训练和推理逻辑。因此,所有预处理都需要与训练输入匹配,并且必须优化静态图执行。建议使用 MindSpore Lite 或昇腾模型动物园进行额外的硬件特定调优。
适应 CANN(神经网络计算架构):华为的 CANN 具有一组针对昇腾软件定制的工具和库,在功能上类似于 NVIDIA 的 CUDA。华为建议使用 CANN 的分析和调试工具来监控和提高昇腾硬件上的模型性能。
执行模式:GRAPH_MODE 与 PYNATIVE_MODE:MindSpore 提供两种执行模式:GRAPH_MODE - 在执行前编译计算图。由于可以在编译期间分析图,因此可以实现更快的执行和更好的性能优化。PYNATIVE_MODE - 立即执行操作,导致更简单的调试过程,因此更适合模型开发的早期阶段,因为其错误跟踪更精细。对于初始开发,建议使用 PYNATIVE_MODE 进行更简单的迭代测试和调试。当模型准备好部署时,切换到 GRAPH_MODE 可以帮助在昇腾硬件上实现最大效率。在不同模式之间切换使工程团队能够在开发灵活性和部署性能之间取得平衡。代码应针对每种模式进行调整。例如,在 GRAPH_MODE 中,应尽可能避免 Python 原生控制流。
部署环境:华为 ModelArts:正如预期的那样,华为的 ModelArts,该公司的基于云的 AI 开发和部署平台,与华为的昇腾紧密集成。