深度学习框架简史 (A Brief History of Deep Learning Frameworks)
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
过去⼗年,机器学习(尤其是深度学习领域)涌现了⼤量算法和应⽤。在这些深度学习算法和应⽤涌现的背后,是各种各样的深度学习⼯具和框架。它们是机器学习⾰命的脚⼿架:TensorFlow和PyTorch等深度学习框架的⼴泛使⽤,使许多机器学习从业者能够使⽤适合领域的特定编程语⾔和丰富的构建模块更容易地组装模型。
展望未来,有⼏个技术趋势有望成为下⼀代深度学习框架的主流:
基于编译器的算⼦(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万亿个参数(即突触)。这表明,如果有可能的话,神经⽹络要达到⼈类的智能⽔平还有很⼤的差距。
这种难以接受的⽹络规模对模型训练和推理的硬件和软件计算效率都提出了很⼤的挑战。未来的深度学习框架很可能是算法、⾼性能计算、硬件加速器和分布式系统的跨学科成果。
作者简介
Lin Yuan是Waymo的一名资深软件工程师。他为自动驾驶汽车的感知和规划任务开发了机器学习平台。在加入Waymo之前,他曾在Amazon AI从事大规模分布式学习。他是Apache深度学习框架MXNet和LFAI分布式学习库Horovod的代码提交者和主要贡献者。
在从事AI领域的工作之前,他在VLSI设计和自动化方面积累了丰富的经验。他曾担任半导体设计自动化会议ICCAD和DAC的技术程序委员会(Technical Program Committee)委员。他获得了马里兰大学帕克分校的计算机工程博士学位。
注释
[1] Alex Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks(2012), NeurIPS 2012
[2] Kaiming He et al., Deep Residual Learning for Image Recognition (2016), CVPR 2016
[3] Jacob Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
[4] Tom B. Brown et al., Language Models are Few-Shot Learners (2020), NeurIPS 2020
[5] Announcing the Consortium for Python Data API Standards (2020)
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~