国产深度学习框架迎来高光时刻,继清华 Jittor开源后,旷视「天元」纷纷重磅开源!...
关注上方“深度学习技术前沿”,选择“星标公众号”,
资源干货,第一时间送达!
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 或许是一个不错的尝试。
预告:One More Thing
实际上,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时代。
3月25日 14:00
旷视深度学习框架将在线上举办开源发布会
同时开源代码也将发布于 GitHub 和 OpenI
想尝试深度学习算法研发的小伙伴不能错过!
提前报名参加直播发布会
请扫码添加下面群助手微信
回复关键词,“旷视Brain+发布会”
即可进入旷视发布会交流群
入群获取干货资料
???? 长按识别,即可邀请加群
国产深度学习框架迎来高光时刻,继清华 Jittor开源后,旷视「天元」纷纷重磅开源!...相关推荐
- 清华「计图」、旷视「天元」纷纷重磅开源,国产深度学习框架迎来高光时刻...
来源:CSDN 本文约3141字,建议阅读7分钟. 本文介绍清华开源的深度学习框架 Jittor(计图) 引起了广泛关注,支撑旷视诸多业务和战绩的深度学习框架 MegEngine(天元) 也将在近日开 ...
- 实现AI技术自立自强,国产深度学习框架面临三大难题
作为推动AI应用大规模落地的关键力量,深度学习框架的重要性日益凸显.它不仅关系国计民生的行业和领域广泛的应用,同样也对信息系统的科技安全有着决定性的意义. "深度学习框架在人工智能技术体系中 ...
- 【开源项目推荐-ColugoMum】这群本科生基于国产深度学习框架PaddlePadddle开源了零售行业解决方案
零售行业是我国非常重要的行业之一,随着手机支付和购物用户数量的不断提高,以及数字化技术的不断发展,零售行业的企业尤其是线下体验店对数字化转型的意愿不断加强,未来我国智慧零售行业有望持续快速发展. 那么 ...
- 刚刚,华为全场景 AI 计算框架MindSpore正式开源!国产深度学习框架的春天来了!...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 此前,我们刚刚报道了旷视科技在3月25日开源深度学习框架 MegEngine ,3 ...
- 【深度学习】吊打一切现有版本的YOLO!旷视重磅开源YOLOX:新一代目标检测性能速度担当!...
作者丨happy 编辑丨极市平台 导读 YOLO系列终于又回到了Anchor-free的怀抱,不用费劲心思去设计anchor了!旷视开源新的高性能检测器YOLOX,本文将近两年来目标检测领域的各个角度 ...
- 深度学习在人脸识别中的应用 —— 优图祖母模型的「进化」
原作者: 腾讯优图 | 来自: 机器之心 序言--「弱弱」的人工智能 说到人工智能(Artificial Intelligence, AI)人们总是很容易和全知.全能这样的词联系起来.大量关于人工智能 ...
- 深度学习框架哪家强?国产框架OneFlow做了一份测评报告
视学算法报道 机器之心编辑部 近日,国产深度学习框架 OneFlow 发布了人工智能方向深度学习领域的 DLPerf 测评报告. 数据显示,OneFlow 在 4 机 32 卡下的 ResNet50- ...
- 一口气发布11项新升级,免费送出1亿元算力:国产深度学习平台PaddlePaddle大更新...
郭一璞 夏乙 发自 香格里拉 量子位 出品 | 公众号 QbitAI 深度学习框架里的唯一国货PaddlePaddle,集中迎来一大波更新. 百度PaddlePaddle全景图也首次曝光. 在框架核心 ...
- 为什么现在国内很多公司都在做深度学习框架?
作者:袁进辉 链接:https://www.zhihu.com/question/412595912/answer/1393279376 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商 ...
最新文章
- http request header 中的host行的作用
- linux shell 文件比较 diff 简介
- 数据中心建设流程附带建设标准(推荐收藏)
- 实例分析C语言中strlen和sizeof的区别
- JGroups 入门实践(转)
- 编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理
- 【渝粤教育】 国家开放大学2020年春季 2246社会工作概论 参考试题
- 前端学习(2811):小程序学习之学习目录
- 使用Docker-Compose安装GitLab服务器
- 基于JAVA+SpringBoot+Mybatis+MYSQL的实验室预约信息管理系统
- 6月热点:BML全新升级WebIDE编程环境,度目智能视频分析盒G1上新
- iPhone史上最全的使用教程
- 专项UI自动化测试 - appium(元素定位方式和思考)|看了就会
- 夜神模拟器调试Android应用程序
- 关于神经网络中隐藏层和神经元的深入理解
- Oracle常见授权与回收权限——grant和revoke
- DSP-FTU实现DNP3.0
- 2022-09-12-kvm介绍
- Docker for Windows
- 攻城狮生活-3 奇怪的司机
热门文章
- Windows 8.1 应用再出发 - 创建我的第一个应用
- yolo-mask的损失函数l包含三部分_损失函数总结-应用和trick
- oracle 全局临时变量,如何解析Oracle PL / SQL中的简单XML片段并将其加载到全局临时表中?...
- python 元组是有序不可变的类型
- unsupported operand type(s) for + NoneType and int
- 报名即将关闭丨AAAI 2020论文预讲会
- 日本漫画巨匠力作,看漫画就能学会Python,简直不要太轻松
- 今天,向 6 女性程序员先驱致敬
- 两年的等待,近700页干货,同系列累计销量25万+,第三版内容更扎实
- 倚天·屠龙——唯我独尊