- 人阅读
- 2020-03-27 14:27:14
来源:CSDN
- 相关关键词
1956年,美国的达特茅斯会议成为人工智能开启的标志性事件。同年,中国第一批自主制造的汽车——解放牌汽车在长春第一汽车厂出厂,才结束了我国不能生产汽车的历史。2020年,中国汽车产销量已经连续多年蝉联全球第一。与此同时,人工智能的技术研究与应用在中国已经遍地开花,并涌现出了包括旷视、商汤、依图、寒武纪等在内的一大批具有代表性的AI初创公司。而深度学习框架作为人工智能时代的操作系统,一直被 Google 的 TensorFlow 和 Facebook 的 PyTorch所统治,因此深度学习框架的国产化替代也成为了政产学研界关注的焦点。近日,清华开源的深度学习框架 Jittor(计图) 引起了广泛关注,支撑旷视诸多业务和战绩的深度学习框架 MegEngine(天元) 也将在近日开源。据悉,华为也将开源自己的深度学习框架。加上百度的 PaddlePaddle(飞桨)等,国产深度学习框架的发展迎来了高光时刻。
从1.0到3.0:由静到动,动静结合,深度学习框架进化史
深度学习框架的技术发展史可以用一句话来形容:由静到动。依据采用动态计算或是静态计算的不同,可以将这些众多的深度学习框架划分成两大阵营:其中静态图机制以 TensorFlow 1.0 为代表,动态图机制以 PyTorch 为代表。
图片已获授权
静态计算则意味着程序在编译执行时将先生成神经网络的结构,然后再执行相应操作,它是通过先定义后运行的方式,之后再次运行的时候就不再需要重新构建计算图,所以速度会比动态图更快。动态计算意味着程序将按照我们编写命令的顺序进行执行。这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易。通常来说,静态图机制能够对整体性做编译优化,更有利于性能的提升,占用资源少且易于部署,符合工业部署应用的需求;而动态图则非常便于用户对程序进行调试,简单灵活且易于上手,符合科研探索的需求。由于动态图的灵活性、易用性展现出对科研人员极大的吸引力,更多框架也开始支持动态图,比如 TensorFlow 2.0,清华的 Jittor。不过,训练效率和规模化始终是工业界最重要的问题,动态图下的性能优化问题也需要解决。因此,各框架取长补短趋同性比较明显,前端易用性、计算高效性、框架稳定性成为持续优化方向。而这一趋势也意味着,动静结合正在成为 3.0 时代的解决方案。以旷视即将开源的MegEngine 为例,其运行时管理层包括两个模块,分别是内核调度和内存管理和优化两大模块。在内存管理和优化模块中,MegEngine 采用了动态、静态内存分配并存的方式,因此可同时支持动态图和静态图模式。因此,MegEngine 整合了动态图与静态图各自的优势,在充分利用动态图模型训练优势时,通过动静态一键转换功能,以静态图的形式完成生产和部署;此外,MegEngine 还支持动静态的混合编程,灵活性更强。旷视研究人员在接受采访时称,即便是新同学不到1个月就可以快速上手。
TensorFlow:Google 出品,2015 年开源,是目前主流的深度学习框架之一。开发者群体庞大,应用成熟,在部署效率和异构设备支持上表现突出。然而自 TensorFlow 2.0 推出之后,由 API 混乱,众多 issue 得不到解决等问题引起的讨论,其霸主地位正受到竞争者的挑战。Keras:Google 工程师 François Chollet 作品,是一个由Python编写的开源人工神经网络库,对新手友好。自2017年起,Keras得到了Tensorflow团队的支持,其大部分组件被整合至Tensorflow的Python API中。在2018年Tensorflow 2.0.0公开后,Keras被正式确立为Tensorflow 高阶API,即tf.keras 。MxNet:AWS AI 首席科学家李沐作品,支持动态图,支持Python,R,Scala和C++等语言,而且有Gluon系列工具。不过相比 TensorFlow 和 PyTorch,开发者用户明显偏少,更适合自定义需求高的公司和研究人员。PyTorch:Facebook 出品,开发社区非常活跃,也很善于听取开发者的意见。由于对动态图的支持, PyTorch 的灵活性相比 TensorFlow 大大提升,特别是用于快速验证和复算法复现,因此备受学术界的青睐。在工业界,由于需要考虑兼容和部署等问题,PyTorch 也在原有的基础上整合了为生产环境设计的 Caffe2 ,不过其实际效果还有待进一步验证。CNTK:微软出品,所有API均基于C++设计,因此在速度和可用性上很好。用户基数小,学习曲线较陡,被吐槽其主要使用方式是 import keras,由于未来 Keras 将不再把重心放在支持多平台上,预计 CNTK 会受到影响。PaddlePaddle(飞桨):百度出品,2016年开源。目前已经升级为全面的深度学习开发套件,除了核心框架,还开放了VisualDL、PARL、AutoDL、EasyDL、AI Studio等一整套的深度学习工具组件和服务平台。除了以上的深度学习框架之外,即将开源的MegEngine也值得关注。MegEngine 架构上具体分为计算接口、图表示、优化与编译、运行时管理和计算内核五层。
图片已获授权
- 在顶层的计算接口上,MegEngine配置了C++和Python接口,解决框架学习接口各异,模型难以复现的问题
- 在图表示层,MegEngine内置动静态转换功能,支持开发者混合使用动态图和静态图模式进行编程。
- 在优化与编译层,MegEngine构建了核心计算图支持用户高效交互,以进一步优化和编译API表达的计算,具体包括自动求导器、图优化和图编译功能。
- 在运行时设备管理中, MegEngine 配置计算调度和内存管理两个模块,通过计算调度模块将设备抽象为执行流,并通过调度器实现智能调度,在内存优化上,天元同时采用了动态、静态内存分配并存的方式,支持自动亚线性内存优化。
- MegEngine底层拥有一个基于异构架构,内置高效计算机视觉算子的计算内核,具备X86,CUDA等主流硬件设备智能适配能力。此外,MegEngine还配备高性能异构通信库,支持用户在不同机器和计算卡之间进行高性能的通信,以实现多机多卡、大规模、分布式的算法训练。
虽然目前 TensorFlow 和 PyTorch 等深度学习框架备受业界关注,但是中国AI应用场景非常多样,很多细分的需求也待进一步满足,很难说能有一家独大,因此未来更贴近中国用户需求的国产深度学习框架未来也有很大的机会。
纵观深度学习框架的发展,都在朝着降低开发者的门槛努力。但是由于各家框架的特性不一样,而且都在不断改进,因此开发者需要根据自己或者公司的切实需求来选择框架,才能做到事半功倍。首先,要易于上手,学习曲线不能太过陡峭;其次,要能真正帮助模型的部署和落地。
由于旷视的 MegEngine 具备 Pythonic 的 API ,并且支持PyTorch Module功能,可以直接导入模型,因此上手更快,学习成本和迁移成本都更低。此外,MegEngine 也整合了动态图与静态图各自的优势,更具灵活性。
MegEngine 还支持训练推理一体化,既可支持研究员进行算法训练,同时训练得到的模型和产物是可以直接进行用于产品的推理、封装,并且可以实现速度和精度的无损迁移,并且在部署时还可以自动删除冗余代码,实现模型自动优化。而且 MegEngine 也提供原语级别的支持,方便用户进行模型并行设置和执行。最终,模型并行可以和数据并行模式混合使用。有了深度学习框架天生对分布式计算的支持,MegEngine 在训练和推理效率上达到了很高的水平。对于开发者来说,MegEngine 或许是一个不错的尝试。
实际上,MegEngine 并不是旷视最新研发的产物,而是诞生于 2014 年,并经受住了诸多业务的考验。2013 年,由于 Theano 等早期开源框架无法满足「炼丹」效率的需求。2014 年初,旷视研究院 3 名实习生从第一行代码写起,不到半年的时间,正式诞生了旷视自研的初版深度学习框架——MegEngine。2015 年年中,旷视完成了自研框架与公司内部所有业务的接轨,公司业务线上的模型全部换成了自研框架训练出来的版本。从自用走向开源,旷视意图传递AI的普世价值。一直以来,人工智能都是一个具有很强的马太效应的产业,繁荣背后其实是靠互联网巨头和旷视、商汤、依图、寒武纪等明星AI企业在支撑,而明星AI企业背后通常也是靠个别或一小群天才在支撑。少数的一流天才支撑着少数的主流AI企业,且呈现强者恒强的趋势。另一方面,传统厂商和中小企业却对AI是望梅止渴,研发成本高、笼络不到AI人才,也没有大举投入算法研发的决心。因此,为了推动AI技术加速落地,2019 年旷视开始筹备将其 Brain++ 平台最核心的深度学习框架开源,还特意为 MegEngine 起了一个中文名字——天元,让更多的开发者和企业用户都能使用 AI “源力”,降本增效。3月25日,旷视将通过线上直播开源其深度学习框架 MegEngine,进一步展现框架更多的技术细节和效果,旷视核心深度学习框架的开源有望让AI成为普惠性工具,助推AI从1.0迈向2.0时代。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。