来自 | 机器之心 作者 | Lin Yuan
当前,各式各样深度学习框架的发展充分赋能机器学习,尤其是深度学习领域,为开发者提供了极致便利。在本文中,Waymo 软件工程师 Lin Yuan 细数了二十一世纪以来深度学习框架的发展历程,并划分为了石器、青铜、铁器、罗马和工业化时代。
-
基于编译器的算子(operator)优化。如今,许多操作符内核都是通过手动或第三方库实现的,比如 BLAS、CuDNN、OneDNN 等,这些库针对特定的硬件平台。当模型被训练或部署在不同的硬件平台上时,这会造成很大的开销。此外,新的深度学习算法的增长速度往往比这些库的迭代速度快得多,这使得这些库常常不支持新的算子。深度学习编译器,如 Apache TVM、MLIR、Facebook Glow 等,已经提出了在任何硬件后端上有效优化和运行计算的建议。它们可以作为深度学习框架的整个后端。
-
统一的 API 标准。许多深度学习框架共享类似但略有不同的用户 api。这给用户从一个框架切换到另一个框架带来了困难和不必要的学习曲线。虽然大多数机器学习从业者和数据科学家都熟悉 NumPy库,但在新的深度学习框架中,NumPy API 自然会成为 tenor 操作 API 的标准。我们已经看到快速发展的框架 JAX 受到了用户的热烈欢迎,它的 api 完全与 NumPy 兼容。
-
数据搬运作为一等公民。多节点或多设备训练正在成为深度神经网络训练的规范。最近开发的深度学习框架,如 OneFlow,从设计的第一天起就将这一观点纳入设计考虑,并将数据通信视为模型训练的整体计算图的一部分。这为性能优化打开了更多的机会,而且由于它不需要像以前的深度学习框架那样维护多种训练策略(单设备 vs 分布式训练),因此除了提供更好的性能之外,它还可以提供更简单的用户界面。
[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)
<section data-brushtype="text" style="padding-right: 0em;padding-left: 0em;white-space: normal;letter-spacing: 0.544px;color: rgb(62, 62, 62);font-family: "Helvetica Neue", Helvetica, "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;widows: 1;word-spacing: 2px;caret-color: rgb(255, 0, 0);text-align: center;"><strong style="color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong>完<strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;font-size: 14px;"><strong style="font-size: 16px;letter-spacing: 0.544px;"><span style="letter-spacing: 0.5px;">—</span></strong></span></strong></span></strong></section><pre><pre><section style="letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="letter-spacing: 0.544px;"><section powered-by="xiumi.us"><section style="margin-top: 15px;margin-bottom: 25px;opacity: 0.8;"><section><section style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;text-align: center;"><span style="color: rgb(0, 0, 0);"><strong><span style="font-size: 16px;font-family: 微软雅黑;caret-color: red;">为您推荐</span></strong></span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">一文了解深度推荐算法的演进</section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">吃透空洞卷积(Dilated Convolutions)<br /></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;"><span style="font-size: 14px;">13个算法工程师必须掌握的PyTorch Tricks</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;"><span style="font-size: 14px;">吴恩达上新:生成对抗网络(GAN)专项课程</span></section><section style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;">从SGD到NadaMax,十种优化算法原理及实现</section></section></section></section></section></section></section></section></section>
本篇文章来源于: 深度学习这件小事
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈