1.2.2 深度学习框架的对比与选择

本小节将从开发商、口碑、入门难度、性能和易用性以及落地应用的适用性几个方面评估和选择深度学习框架。

1.开发商

一个平台和框架的成功离不开它的开发商。知名开发商无论从技术力量还是从拥有的社会资源来评估都具备很大的优势。比如华为在开发MindSpore的过程中,获得了许多合作伙伴的支持,包括爱丁堡大学、北京大学、伦敦帝国理工学院和机器人初创公司Milvus等。从长远发展的角度看,没有巨头背书的框架很可能面临边缘化或被淘汰的结局。鉴于此,本小节的分析都基于拥有知名开发商的深度学习框架。

拥有知名开发商的深度学习框架见表1-1。

表1-1 拥有知名开发商的深度学习框架

2.口碑

从GitHub star/Gitee star数和Google Trends提供的统计数据可以反映深度学习框架的口碑。

GitHub star数可以反映国际开发者对深度学习框架的关注情况。国内框架主要使用Gitee开放源代码,因此Gitee star数可以反映国内开发者对深度学习框架的关注情况。拥有知名开发商的深度学习框架的GitHub star/Gitee star数对比见表1-2(统计数据截至2022年6月10日22:00)。

表1-2 拥有知名开发商的深度学习框架的GitHub star/Gitee star数对比

从表1-2中我们可以看出,在国外,开发者更关注TensorFlow、PyTorch和Keras;在国内,开发者对MindSpore的关注要明显高于其他深度学习框架。

Google Trends的统计数据可以反映来自国际社会公众的关注。2015年5月1日—2022年6月11日深度学习框架Google Trends统计情况如图1-12所示(说明:在Google Trends中输入“2015/5/1—2022/6/11”,显示的效果就是图1-12)。

图1-12 2015年5月1日—2022年6月11日深度学习框架Google Trends统计情况

2018年5月11日—2022年6月9日深度学习框架百度趋势统计情况如图1-13所示。

图1-13 2018年5月11日—2022年6月9日深度学习框架百度趋势统计情况

由于统计数量的限制,图1-13只选择了TensorFlow、PyTorch、Keras、PaddlePaddle和MindSpore进行统计。从统计数据中我们可以看出,国内与国外的社会大众关注点是一致的,排名次序依次为 PyTorch、TensorFlow、Keras、PaddlePaddle 和 MindSpore。PaddlePaddle 和 MindSpore 作为国内知名的深度学习框架,目前影响力与国际知名框架尚有一定的差距。MindSpore 由于面世和开源都比较晚,因此在前面的时间段中搜索引擎没有统计数据,自2022年后逐渐迎头赶上,一度超过PaddlePaddle。随着华为的培训、科普和推广力度逐渐增大,MindSpore在国内、国外的影响力会越来越大。

3.入门难度

对初学者而言,在众多深度学习框架中选择一款适合自己的平台不是一件容易的事。在各项评估标准中,框架的入门难度无疑是大多数初学者优先考虑的因素。

对于国内的初学者而言,国产框架要比国外框架更容易上手。以华为为代表的国产框架打造全中文的开源社区,提供完备的中文教程和开发文档。国外深度学习框架虽然也有一些中文资料,但是及时性和完备性都是不够的,并且人工智能和深度学习领域有很多专业名词,阅读英文资料对于初学者而言仍有不便。

近些年,华为与很多高校和培训机构合作开设了MindSpore训练营,初学者还可在网上找到相关培训视频资料,这样降低了国内开发人员的入门难度。

4.性能和易用性

性能和易用性是评估深度学习框架的重要因素,但是,对于深度学习框架而言,性能和易用性很难同时兼顾。在1.3节中会介绍深度学习框架的执行模式。大多数深度学习框架选择Graph(图)模式作为执行模式,Graph模式可以分为静态图和动态图两种。其中静态图更容易被优化,因此具有良好的性能;动态图更容易调试,对于编程实现更加友好。这也是性能与易用性不容易兼顾的原因。

MindSpore 提供了动态图和静态图统一的编码方式。开发者可以很方便地用一条语句切换动态图和静态图的执行模式,做到了兼顾性能和易用性,这也是MindSpore框架的特色之一。

5.落地应用的适用性

使用深度学习框架的主要目的之一就是能够方便地将训练好的模型应用到现实生活中,使模型具有更广泛的适用性。MindSpore作为华为全栈全场景AI解决方案的重要组成部分,在部署环境、IP/芯片、计算框架和应用框架等各个层面都有与其高度兼容的同品牌产品。

从部署环境层面看,MindSpore提供了统一模型文件MindIR,同时存储网络结构和权重参数值:支持部署到端(终端设备)、边(边缘设备)、云(云端平台)等各种应用场景;实现一次开发、按需部署。

从IP/芯片层面看,MindSpore与算力最强的AI处理器Ascend 910同时发布,并全面支持昇腾Ascend 910和Ascend 310硬件平台。

因此,在国内使用MindSpore框架训练好的模型具有更好的落地应用的适用性。