0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

细数二十一世纪以来深度学习框架的发展历程

Dbwd_Imgtec 来源:机器之心 作者:机器之心 2021-01-08 14:29 次阅读

当前,各式各样深度学习框架的发展充分赋能机器学习,尤其是深度学习领域,为开发者提供了极致便利。在本文中,Waymo 软件工程师 Lin Yuan 细数了二十一世纪以来深度学习框架的发展历程,并划分为了石器、青铜、铁器、罗马和工业化时代。

过去十年,机器学习(尤其是深度学习)领域涌现了大量算法和应用。在这些深度学习算法和应用涌现的背后,是各种各样的深度学习工具和框架。它们是机器学习革命的脚手架:TensorFlow 和 PyTorch 等深度学习框架的广泛使用,使得许多 ML 从业者能够使用适合的领域特定的编程语言和丰富的构建模块更容易地组装模型。

回顾深度学习框架的演变,我们可以清楚地看到深度学习框架和深度学习算法之间的紧密耦合关系。这种相互依赖的良性循环推动了深度学习框架和工具的快速发展。

By Nationalmuseet, CC BY-SA 3.0,

https://commons.wikimedia.org/w/index.php?curid=90400464

石器时代(21 世纪初)

神经网络的概念已经出现一段时间了。在 21 世纪初之前,有一些工具可以用来描述和开发神经网络。这些工具包括 MATLAB、OpenNN、Torch 等,它们要么不是专门为神经网络模型开发定制的,要么拥有复杂的用户 api,缺乏 GPU 支持。在此期间,ML 实践者在使用这些原始的深度学习框架时不得不做很多繁重的工作。

By Nationalmuseet, CC BY-SA 3.0,

https://commons.wikimedia.org/w/index.php?curid=90400464

青铜时代(~2012 年)

2012 年,多伦多大学的 Alex Krizhevsky 等人提出了一种深度神经网络架构,后来被称为 AlexNet[1],该架构在 ImageNet 数据集上达到了 SOTA 精度,并大大超过了第二名的选手。这一出色的结果引发了深度神经网络的热潮,此后各种深度神经网络模型在 ImageNet 数据集的准确性上不断创下新高。

大约在这个时候,一些早期的深度学习框架,如 Caffe、Chainer 和Theano 应运而生。使用这些框架,用户可以方便地建立复杂的深度神经网络模型,如 CNN、RNN、LSTM 等。此外,这些框架还支持多 GPU 训练,这大大减少了对这些模型的训练时间,并且能够对以前无法装入单一 GPU 内存的大型模型进行训练。在这些框架中,Caffe 和 Theano 使用声明式编程风格,而 Chainer 采用命令式编程风格。这两种不同的编程风格也为即将到来的深度学习框架设定了两条不同的开发路径。

Nordisk familjebok — Nordisk familjebok (1910), vol.13, Till art. Järnåldern. https://commons.wikimedia.org/w/index.php?curid=109777

铁器时代(2015 ~ 2016)

AlexNet 的成功引起了计算机视觉领域的高度关注,并重新点燃了神经网络的希望,大型科技公司加入了开发深度学习框架的行列。其中,谷歌开源了著名的 TensorFlow 框架,它至今仍是 ML 领域最流行的深度学习框架。Caffe 的发明者加入了 Facebook 并发布了 Caffe2;与此同时,Facebook AI 研究(FAIR)团队也发布了另一个流行的框架 PyTorch,它基于 Torch 框架,但使用了更流行的 Python api。微软研究院开发了 CNTK 框架。亚马逊采用了 MXNet,这是华盛顿大学、CMU 和其他机构的联合学术项目。TensorFlow 和 CNTK 借鉴了 Theano 的声明式编程风格,而 PyTorch 则继承了 Torch 的直观和用户友好的命令式编程风格。命令式编程风格更加灵活(比如定义一个 While 循环等)并且容易跟踪,而声明式编程风格通常为内存和基于计算图的运行时优化提供了更多的空间。另一方面,被称为「mix」-net 的 MXNet 同时支持一组符号(声明性)api 和一组命令式 api,并通过一种称为杂交(hybridization)的方法优化了使用命令式 api 描述的模型的性能,从而享受了这两个领域的好处。 2015 年,何凯明等人提出了 ResNet[2],再次突破了图像分类的边界,在 ImageNet 的准确率上再创新高。业界和学界已经达成共识,深度学习将成为下一个重大技术趋势,解决各种领域的挑战,这些挑战在过去被认为是不可能的。在此期间,所有深度学习框架都对多 GPU 训练和分布式训练进行了优化,提供了更加用户直观的 api,并衍生出了专门针对计算机视觉、自然语言处理等特定任务的 model zoo 和工具包。还值得注意的是,Francois Chollet 几乎是独自开发了 Keras 框架,该框架在现有框架(如 TensorFlow 和 MXNet)之上提供了神经网络和构建块的更直观的高级抽象。从今天开始,这种抽象成为 TensorFlow 中模型层面事实上的 api。

By User Lamré on sv.wikipedia

https://commons.wikimedia.org/w/index.php?curid=801434

罗马时代(2019 ~ 2020)

正如人类历史的发展一样,深度学习框架经过一轮激烈的竞争,最终形成了两大「帝国」:TensorFlow 和 PyTorch 的双头垄断,这两大「帝国」代表了深度学习框架研发和生产中 95% 以上的用例。2019 年,Chainer 团队_将他们的开发工作转移到 PyTorch;类似地,微软_停止了 CNTK 框架的积极开发,部分团队成员转而支持 Windows 和 ONNX 运行时上的 PyTorch。Keras 被 TensorFlow 收编,并在 TensorFlow 2.0 版本中成为其高级 api 之一。在深度学习框架领域,MXNet 仍然位居第三。

在此期间,深度学习框架空间有两种趋势。首先是大型模型训练。随着 BERT[3] 的诞生,以及它的近亲 GPT-3[4] 的诞生,训练大型模型的能力成为了深度学习框架的理想特性。这就要求深度学习框架能够在数百台(如果不是数千台的话)设备的规模下有效地进行训练。第二个趋势是可用性。这一时期的深度学习框架都采用命令式编程风格,语义灵活,调试方便。同时,这些框架还提供了用户级的装饰器或 api,以通过一些 JIT(即时)编译器技术实现高性能。

By Tharunbr77 — Own work, CC BY-SA 4.0,

https://commons.wikimedia.org/w/index.php?curid=86866550

工业时代(2021+)

深度学习在自动驾驶、个性化推荐、自然语言理解到医疗保健等广泛领域取得了巨大成功,带来了前所未有的用户、开发者和投资者浪潮。这也是未来十年开发深度学习工具和框架的黄金时期。尽管深度学习框架从一开始就有了长足的发展,但它们之于深度学习的地位还远远不如编程语言 JAVA/ c++ 之于互联网应用那样的成熟。还有很多令人兴奋的机会和工作有待探索和完成。 展望未来,有几个技术趋势有望成为下一代深度学习框架的主流:

基于编译器的算子(operator)优化。

如今,许多操作符内核都是通过手动或第三方库实现的,比如 BLAS、CuDNN、OneDNN 等,这些库针对特定的硬件平台。当模型被训练或部署在不同的硬件平台上时,这会造成很大的开销。此外,新的深度学习算法的增长速度往往比这些库的迭代速度快得多,这使得这些库常常不支持新的算子。深度学习编译器,如 Apache TVM、MLIR、Facebook Glow 等,已经提出了在任何硬件后端上有效优化和运行计算的建议。它们可以作为深度学习框架的整个后端。

统一的 API 标准。

许多深度学习框架共享类似但略有不同的用户 api。这给用户从一个框架切换到另一个框架带来了困难和不必要的学习曲线。虽然大多数机器学习从业者和数据科学家都熟悉 NumPy库,但在新的深度学习框架中,NumPy API 自然会成为 tenor 操作 API 的标准。我们已经看到快速发展的框架 JAX 受到了用户的热烈欢迎,它的 api 完全与 NumPy 兼容。

数据搬运作为一等公民。

多节点或多设备训练正在成为深度神经网络训练的规范。最近开发的深度学习框架,如 OneFlow,从设计的第一天起就将这一观点纳入设计考虑,并将数据通信视为模型训练的整体计算图的一部分。这为性能优化打开了更多的机会,而且由于它不需要像以前的深度学习框架那样维护多种训练策略(单设备 vs 分布式训练),因此除了提供更好的性能之外,它还可以提供更简单的用户界面。

总结

我们正处于一场人工智能革命的黎明。人工智能领域的新研究和新应用正在以前所未有的速度涌现。八年前,AlexNet 网络包含 6000 万个参数最新的 GPT-3 网络包含 1750 亿参数,网络规模在 8 年内增加了 3000 倍!另一方面,人类的大脑包含大约 100 万亿个参数(即突触)。这表明,如果有可能的话,神经网络要达到人类的智能水平还有很大的差距。

这种难以接受的网络规模对模型训练和推理的硬件和软件计算效率都提出了很大的挑战。未来的深度学习框架很可能是算法、高性能计算、硬件加速器和分布式系统的跨学科成果。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8122

    浏览量

    130556
  • 深度学习
    +关注

    关注

    73

    文章

    5237

    浏览量

    119905
  • pytorch
    +关注

    关注

    2

    文章

    761

    浏览量

    12829

原文标题:深度学习框架简史:TF和PyTorch双头垄断,未来十年迎来黄金时期

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    闪耀湾区,诺安智能获评第二十一届“深圳知名品牌(湾区知名品牌)”称号

    2024年3月5日,深圳知名品牌评价委员会召开第二十一届“深圳知名品牌”评审会议,审核评选出113个市场占有率高、诚信度高、品牌知名度高的企业品牌为第二十一届深圳知名品牌。诺安智能在全市50多个细分
    的头像 发表于 03-20 09:13 179次阅读
    闪耀湾区,诺安智能获评第<b class='flag-5'>二十一</b>届“深圳知名品牌(湾区知名品牌)”称号

    国产人形机器人产业发展现状

    具备初级感知功能的智能化起步阶段(2001-2015年),进入二十一世纪,随着感知系统及交互系统等技术进步,人形机器人在该阶段可实现与外界环境有限的互动,并且运动自由度提升,能实现行走以外的其他简单行动操作,例如本田由 P系列所迭代出的 ASIMO 系列中的“All-new ASIMO”机器人;
    的头像 发表于 01-12 16:52 1101次阅读
    国产人形机器人产业<b class='flag-5'>发展</b>现状

    浅析轨道交通建筑能耗分析及节能措施

    地铁 能耗表现、影响因素和应用效果的基础上,提出相对有效的节能措施,为后续地铁能效提升方案工作明确方向。 关键词:地铁车站;能耗;通风空调系统;节能 0引言 二十一世纪以来,随着我国经济实力的快速提升以及城市化建设
    的头像 发表于 10-12 11:22 385次阅读
    浅析轨道交通建筑能耗分析及节能措施

    适合嵌入式设备开发的编程语言—Rust语言

    Rust语言是二十一世纪的语言新星。Rust被人广泛承认的一点,就是因为它能运行在多样的目标上,从桌面和服务器设备,到资源有限的嵌入式设备。
    发表于 09-12 09:39 1625次阅读
    适合嵌入式设备开发的编程语言—Rust语言

    深度学习框架深度学习算法教程

    深度学习框架深度学习算法教程 深度学习是机器
    的头像 发表于 08-17 16:11 715次阅读

    深度学习cntk框架介绍

    深度学习cntk框架介绍  深度学习是最近几年来非常热门的话题,它正在彻底改变我们生活和工作的方式。随着越来越多的创新和
    的头像 发表于 08-17 16:11 966次阅读

    深度学习框架连接技术

    深度学习框架连接技术 深度学习框架是一个能够帮助机器学习
    的头像 发表于 08-17 16:11 478次阅读

    深度学习框架对照表

    深度学习框架对照表  随着人工智能技术的发展深度学习正在成为当今最热门的研究领域之一。而
    的头像 发表于 08-17 16:11 489次阅读

    深度学习算法库框架学习

    深度学习算法库框架学习 深度学习是一种非常强大的机器学习
    的头像 发表于 08-17 16:11 435次阅读

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介
    的头像 发表于 08-17 16:11 1442次阅读

    深度学习框架的作用是什么

    深度学习框架的作用是什么 深度学习是一种计算机技术,它利用人工神经网络来模拟人类的学习过程。由于
    的头像 发表于 08-17 16:10 1165次阅读

    深度学习框架是什么?深度学习框架有哪些?

    高模型的精度和性能。随着人工智能和机器学习的迅猛发展深度学习框架已成为了研究和开发人员们必备的工具之一。 目前,市场上存在许多
    的头像 发表于 08-17 16:03 1771次阅读

    深度学习框架pytorch入门与实践

    深度学习框架pytorch入门与实践 深度学习是机器学习中的一个分支,它使用多层神经网络对大量数
    的头像 发表于 08-17 16:03 1195次阅读

    LED虚拟拍摄:影视产业的未来之道

    二十一世纪,影视产业已经经历了巨大的变化。其中,LED虚拟拍摄技术的出现,无疑为这个行业带来了全新的可能性。本文将为您深入解析LED虚拟拍摄的相关内容,包括其定义、发展历程、优点、应用领域以及未来
    的头像 发表于 08-16 17:43 983次阅读

    图扑软件亮相第二十一届中国·海峡创新项目成果交易会

    2023 年 6 月 18 日,第二十一届中国·海峡创新项目成果交易会(以下简称“海创会”)在福建省福州市拉开帷幕。海创会作为福建省广泛吸纳国内外科技成果来闽对接,加快科技成果转化的平台,一直以来
    的头像 发表于 06-30 10:33 421次阅读
    图扑软件亮相第<b class='flag-5'>二十一</b>届中国·海峡创新项目成果交易会