农企新闻网

PyTorch 团队宣布周年感言:感激日益壮大的社群,这一年迎来六大中心打破

发布者:刘俊东
导读雷锋网 AI 研习社按,2017 年 1 月,Facebook 开源 PyTorch,短短一年工夫,PyTorch 便开展成一线开发者争相运用的工具。这一年间,有哪些研讨人员对 PyTorch 的开展做出了奉献?关于 PyTorch 的经典课程有哪些?它阅历了什么样的改动?研讨人员又带来了哪些创新?在 PyTorch 开源一周年岁念日,其开发团队在官方 Blog 上宣布《PyTorch, a ye

雷锋网 AI 研习社按,2017 年 1 月,Facebook 开源 PyTorch,短短一年工夫,PyTorch 便开展成一线开发者争相运用的工具。这一年间,有哪些研讨人员对 PyTorch 的开展做出了奉献?关于 PyTorch 的经典课程有哪些?它阅历了什么样的改动?研讨人员又带来了哪些创新?

在 PyTorch 开源一周年岁念日,其开发团队在官方 Blog 上宣布《PyTorch, a year in....》一文,为我们解答了上述成绩。雷锋网 (大众号:雷锋网) AI 研习社将原文编译整理如下:

间隔我们开源 PyTorch 曾经有一年工夫。在这一年工夫里,我们寻求树立一个灵敏的深度学习研讨平台,这是一段极棒的旅程。感激一切运用 PyTorch,为 PyTorch 的开展做出奉献,并不时传达 PyTorch 的人,是你们一步一步树立了这样一个充溢惊喜的社群。

下文中,我们总结了 PyTorch 在这一年间获得的停顿、相关旧事和亮点。

社群

PyTorch 社群是一个强壮的无机体,感激社群里喜欢 PyTorch 的研讨人员和工程师。我们的社群构成多种多样,中心团队中有来自于多个国度、公司和大学的工程师和研讨人员,假如没有他们的点滴奉献,PyTorch 不能够开展得像如今这么好。

论文、工具包和 Github

PyTorch 发布之后,一些用户很快就应用 PyTorch 完成了他们喜欢的论文,并在 Github 上发布代码。现阶段,开源代码是研讨人员的重要工具。

大家在一同,发明出了 torchtext , torchvision  和 torchaudio  工具包,协助放慢 PyTorch 在不同范畴的开展。

Brandon Amos 发布了第一个基于 PyTorch 的工具包——Block,使得操作分块矩阵愈加容易。随后,CMU 的 Locus Lab 实验室发布了一系列关于 PyTorch 的工具包( https://github.com/locuslab ),完成了他们大局部的研讨效果。首篇应用 PyTorch 完成的论文是 Sergey Zagoruyko 的 Paying more attention to attention。

Jun-Yan Zhu, Taesung Park, Phillip Isola, Alyosha Efros 和来自加州大学伯克利分校的团队发布了 Cycle-GAN and pix2pix ,这个工具包极受欢送,能完成图像转换。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

HarvardNLP 和 Systran 的研讨人员开端应用 PyTorch 开发和改良 OpenNMT ,这最后是由 Adam Lerer 应用 [Lua]Torch 重完成的。

Twitter 的 MagicPony 团队也很早就将他们超分辨率的任务用 PyTorch 完成了。

Salesforce Research 也发布了几个工具包,其中就包括最广为人知的 PyTorch-QRNN ,这比用 CuDNN 优化的规范 LSTM 的速度快了 2-17 倍。James Bradbury 和他的团队是 PyTorch 社群中最活泼、最吸引人的力气之一。

来自 Uber, Northeastern 和 Stanford 的研讨人员聚于一同,围绕 Pyro 和 ProbTorch ,组成了一个活泼的概率编程社区。他们正积极开发 torch.distributions 中心包。这个社区十分活泼,正在疾速开展,在 NIPS2017 上,我们第一次展开了 PyTorch 概率编程见面会,会上,我们同 Fritz Obermeyer, Noah Goodman, Jan-Willem van de Meent, Brooks Paige, Dustin Tran 和其他 22 位与会者讨论了如何让世界变得更贝叶斯。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

英伟达的研讨人员发布了三个高质量的 PyTorch 库,辨别完成了 pix2pix-HD 、 Sentiment Neuron 和 FlowNet2 。他们基于 PyTorch 对数据并行模型的可伸缩性剖析( https://github.com/NVIDIA/sentiment-discovery/blob/master/analysis/scale.md )极有协助。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破 PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

艾伦人工智能研讨院发布 AllenNLP ,其中包括一些针对规范 NLP 义务的最先进模型,也有参考样例和一些易于运用的 web demo 。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

7 月,grt123 团队在 Kaggle DataScience Bowl 2017 中的肺癌预测项目上获得成功,随后发布 代码 。他们是第一支应用 PyTorch 获得成功的团队。

在可视化方面,Tzu-Wei Huang 发布 TensorBoard-PyTorch 插件,Facebook 人工智能研讨院也发布了能与 PyTorch 兼容的 visdom 可视化包。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

随后,Facebook 人工智能研讨院开源 ParlAI、fairseq-py、VoiceLoop 和 FaderNetworks 等工具包,能在多个范畴完成先进的模型。

这里还有很多好的项目,我们就不逐个阐明,大家可以点击如下链接: https://github.com/soumith?tab=stars

我们也想对 Forum 上那些积极协助别人的人,特别是 ptrblck, jpeg729, QuantScientist, albanD, tom 和 chenyuntc 表示激烈感激,你们为别人提供的协助是无价的。

数据比照

  • Github 上共有 87769 行 Python 代码引入 torch;

  • Github 共有 3983 个库的称号或描绘中提及 PyTorch;

  • PyTorch 文件的下载量超越 50 万次,准确来说,数量是 651916 次;

  • 在关于 PyTorch 的这个论坛 (http://discuss.pytorch.org/) 上,共有 5400 名用户写下 21500 篇文章,讨论了 5200 个不同主题;

  • 在 Reddit 上的 r/machinelearning 这个版块,PyTorch 被提及 131 次,异样的工夫段内,TensorFlow 被提及 255 次。

PyTorch 是一个以研讨为中心的框架,因而,论文(与机器学习相关)中 PyTorch 的运用率也是我们关注的一点。

论文中被提及次数:

  • 在 ICLR2018 提交的论文中,有 87 篇论文提及 PyTorch,比照起来,TensorFlow 被 228 篇论文提及,Keras 是 42 篇,Theano 和 Matlab 是 32 篇。

  • 按月来看,在 arxiv 上,PyTorch 每月均匀被提及 72 次,TensorFlow 均匀被提及 273 次, Keras,Caffe 和 Theano 被提及的次数辨别是 100 、94、53。

课程与书籍

发布 PyTorch 时,我们曾经预备了优秀的 API 文档,但是仅限于一些 ipython notebook 教程,虽然有用,但远远不够。

Sasank Chilamkurthy 亲身修正了这些教程,整理在 pytorch.org/tutorials/ 页面上,十分清楚和明晰。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破

Sean Robertson 和 Justin Johnson 基于 PyTorch 写了很棒的 NLP 教程,他们还举了很多例子。Yunjey Choi 的教程十分优美,大少数模型的完成只需求 30 行或更少的代码。每个教程都提供新的办法,协助用户更快地上手。

Delip Rao 和 Goku Mohandas 修正了他们正在写的书中的代码内容——改为用 PyTorch 完成。

我们也看到,很多大学的机器学习课程中把 PyTorch 作为重要工具,比方哈佛的 CS287。另外,如下三个在线课程均运用 PyTorch 来教学:

  • Fast.ai 的「Deep Learning for Coders」是一门很受欢送的在线课程。9 月,Jeremy 和 Rachel 宣布,在下一阶段,Fast.ai 的课程将简直全都基于 PyTorch。

  • 在新加坡国立大学和清华大学任教的 Ritchie Ng 研讨员发布了名为「Practical Deep Learning with PyTorch」的 Udemy 课程。

  • 香港科技大学的 Sung Kim 在 Youtube 上发布「PyTorch Zero to All」在线课程,旨在向群众普及 PyTorch。

工程化

过来一年间,我们完善了 PyTorch 的多项功用,改良其功能,并修复了少量 bug。大家可以在 发布阐明 中看到我们做的一切更新和改良。以下是过来一年间一些注目的改良:

1、高阶梯度

随着梯度惩罚在多篇论文中的完成,以及随之而来的对二阶梯度法的研讨,在 PyTorch 中完成高阶梯度必不可少。8 月,我们完成了一个通用接口,支持 n 阶导数,同时添加了支持高阶梯度函数的量。

2、 散布式 PyTorch

8 月,我们发布了一个小的散布式工具包,集合了许多盛行的 MPI 办法。这个工具包掩盖 TCP、MPI、Gloo 和 NCCL2 等很多后端,支持多品种型的 CPU/GPU 集合操作和用例,并集成了 Infiniband 和 RoCE 等散布式技术。想要做到散布式比拟困难,在最后的迭代中我们常常碰到 bug。在随后的版本中,我们提供的包愈加波动、功能更好。

3、与 NumPy 联络更紧

用户最大的需求之一是他们熟习的 NumPy 功用。这些功用中,Broadcasting 和 Advanced Indexing 都很方便,可以协助用户增加冗余。PyTorch 目前支持这些特性,它的 API 逐步向 NumPy 靠拢。

4、稀疏张量

3 月,我们发布了一个支持稀疏张量的小工具包,基于这个工具包,我们在 5 月发布了带有 CUDA 支持的工具包。这个工具包很小,功用无限,用于完成 Sparse Embedding 以及深度学习中常用的稀疏范例。目前这个工具包仍很小,需求持续扩展——假如你想奉献本人的一份力,可以与我们联络。

5、功能

功能的提升是一场耐久战,对 PyTorch 这样一个静态框架来说尤甚。在过来的一年里,我们竭力提升其灵敏性,从中心张量库到神经网络运算,PyTorch 的功能失掉了极大提升。

  • 针对张量操作添加了 AVX 和 AVX2

  • 针对 concatenation 和 Softmax 等较为罕见的任务负荷,编写了更快的 GPU kernel

  • 重写了若干神经网络运算的代码

将框架的开支降低十倍

由于 PyTorch 是静态图框架,训练中,每次迭代时都必需创立一个新的图表,因而,框架开支必需很低,或许任务负载必需足够大。往年 8 月,DyNet 的作者(Graham Neubig 等)展现了 DyNet 在一些小的 NLP 模型上速度比 PyTorch 快得多。

于是我们开端重写 PyTorch 的外部构造,这是一次大的调整,调整之后,每个算子的执行工夫从十多微秒降低到一微秒。

ATen

当重新设计 PyTorch 外部构造时,我们构建了 ATen C++11 库 ,这个库如今控制一切的 PyTorch 后端。ATen 中有一个 API 能反映 PyTorch 的 Python API,这使得它十分合适用于张量计算——变得愈加方便。

6、从模型输入到消费——支持 onNX 和 JIT 编译器

大家常常对我们提出这样的恳求——希望将 PyTorch 模型导出到另一个框架中。基于 PyTorch,开发者能停止疾速的研讨,一旦研讨做完,他们想将失掉的模型导入更大的项目。

思索到用户的需求,我们在 PyTorch 中构建了一个 tracer,它能将 PyTorch 模型输入为两头表示。大家可以应用随后的 trace 高效执行以后的 PyTorch 模型,或许将其转换成 onNX 格式,加载至 Caffe2, MXNet, TensorFlow 等框架中,还可以直接加载至 CoreML 或 TensorRT 等硬件减速库。

接上去一段工夫,大家会听到更多关于 JIT 编译器的音讯,它能改善 PyTorch 的功能。

via: PyTorch blog

雷锋网 AI 研习社编译整理。

雷锋网版权文章,未经受权制止转载。概况见。

PyTorch 团队发表周年感言:感谢日益壮大的社群,这一年迎来六大核心突破