昨天,Facebook 在 PyTorch 开发者大会上给出一个数据:
仅在 2019 年上半年,ArXiv 论文中 PyTorch 的引用量增长了 194%;PyTorch 平台的贡献者数量比去年增长了 50% 以上,达到近 1200 人。
PyTorch 正在快速增长,尤其在学术圈中地位飙升,大有取代 “老大哥” TensorFlow,成为机器学习框架 No. 1 的势头。
不过,thegradient 利用多个数据来源,细致分析 2019 年机器学习框架现状,得出结论:PyTorch 主导了学术界,TensorFlow 主导了工业界。
这一趋势也可能变化,因为就在昨天,微软、Uber 等宣布将使用 PyTorch 作为公司最重要的机器学习研究和产品工作负载的基础。
在 PyTorch 开发者大会上,Facebook 重磅发布了 PyTorch 1.3,推出一系列新特性,如支持无缝模型部署到移动设备,模型量化以在推理时获得更好的性能,以及前端改进,如命名张量 (name tensors) 等。此外,还推出了一大波工具和库,增加 Cloud TPU 和阿里云支持等。
接下来,我们先来看 PyTorch 1.3 的新特性和新工具,再对比 PyTorch 和 TensorFlow。
来新智元AI朋友圈,投票选出你最看好的机器学习框架吧!
PyTorch 1.3一大波重磅升级PyTorch 1.3 带来了一系列重要的新特性,包括对移动设备部署的实验支持、 8-bit 整数的 eager mode 量化,以及 name tensors 等。
命名张量 (Named tensors)
康奈尔大学的 Sasha Rush 认为,尽管张量在深度学习中无处不在,但是传统的张量实现存在明显的缺点,比如暴露私有维度、基于绝对位置的 broadcasting 以及在文档中保留类型信息。他提出将 named tensors 作为替代方法。
通过 named tensors,我们可以命名和访问维度:
命名也使代码更易于阅读和维护:
量化 (Quantization)
在开发 ML 应用程序时,有效地利用服务器端和设备上的计算资源非常重要。为了在服务器和边缘设备上支持更高效的部署,PyTorch 1.3 现在支持使用熟悉的 eager 模式 Python API 的 8-bit 模型量化。
量化是指用于执行精度较低的计算和存储的技术,如 8-bit 整数。当前的实验特性包括对训练后量化、动态量化和量化感知训练的支持。
要了解更多关于设计和架构的信息,请查看: https://pytorch.org/docs/master/quantization.htmlPyTorch mobile
在边缘设备上运行 ML 变得越来越重要,因为应用程序需要更低的延迟。它也是联邦学习等隐私保护技术的基础元素。为了在设备上实现更高效的 ML, PyTorch 1.3 现在支持从 Python 到在 iOS 和 Android 上部署的端到端工作流。
了解更多:http://pytorch.org/mobile
用于模型可解释性和隐私性的新工具
Captum
随着模型变得越来越复杂,开发用于模型可解释性的新方法变得越来越重要。为了帮助解决这个需求,我们推出了 Captum,这是一个帮助 PyTorch 开发人员理解为什么他们的模型生成特定输出的工具。Captum 提供了最先进的工具来了解特定神经元和层的重要性,并影响模型的预测。Captum 的算法包括 integrated gradients,conductance, SmoothGrad 和 VarGrad,以及 DeepLift。
下面的例子展示了如何将模型可解释性算法应用到一个预训练好的 ResNet 模型上,然后将每个像素的属性叠加在图像上进行可视化。
noise_tunnel = NoiseTunnel(integrated_gradients) attributions_ig_nt, delta = noise_tunnel.attribute(input, n_samples=10, nt_type='smoothgrad_sq', target=pred_label_idx)_ = viz.visualize_image_attr_multiple(["original_image", "heat_map"], ["all", "positive"], np.transpose(attributions_ig_nt.squeeze().cpu().detach().numpy(), (1,2,0)), np.transpose(transformed_img.squeeze().cpu().detach().numpy(), (1,2,0)), cmap=default_cmap, show_colorbar=True)
在该图中,使用 integrated gradients 计算特征属性,并显示在右侧的图像中。(图片由 Pixabay 提供。)
了解更多:https://www.captum.ai/
CrypTen
ML 通过基于云或机器学习即服务 (MLaaS) 平台的实际应用对安全性和隐私提出了一系列挑战。为了应对这些挑战,ML 社区正在探索各种技术方法,包括同态加密、安全多方计算、可信执行环境、设备上的计算和差异隐私。
为了更好地理解如何应用这些技术,我们发布了 CrypTen,这是一个新的基于社区的研究平台,用于推进隐私保护 ML 领域的发展。
了解更多:https://facebookresearch.github.io/CrypTen/
用于多模态 AI 系统的工具
数字内容通常由几种形式组成,如文本、图像、音频和视频。PyTorch 丰富的工具和库提供了强大的方法来解决构建多模式 ML 系统的挑战。以下是最新推出的库:
Detectron2
这是一个在 PyTorch 中实现的对象检测库。Detectron2 提供对最新模型和任务的支持,增强的灵活性以帮助进行计算机视觉研究,并改善了可维护性和可扩展性以支持生产用例。
fairseq 的语音扩展
语言翻译和音频处理是搜索、翻译、语音和助手等系统和应用程序中的关键组件。近年来,随着 transformers 等新架构的发展,以及大规模的预训练方法,这些领域取得了巨大的进步。我们扩展了 fairseq,这是一个用于序列到序列应用 (如语言翻译) 的框架,包括对语音和音频识别任务的端到端学习的支持。
云和硬件生态系统支持
AWS、Microsoft Azure 和谷歌云等云提供商为任何希望在 PyTorch 上开发 ML 并将其部署到生产环境中的人提供了广泛的支持。
现在,PyTorch 已经广泛支持谷歌云 TPU,并与阿里云进行了新的整合。
2019年机器学习框架之战,PyTorch还是TensorFlow? 自2012年深度学习重新获得重视以来,许多机器学习框架便争相成为研究人员和行业从业人员的新宠。从早期的学术成果Caffe和Theano到庞大的产业支持的PyTorch和TensorFlow,在这么多选择中,到底最流行的是哪一个? 如果你只浏览Reddit,则可能会假设每个人都在用PyTorch。若从Francois Chollet的Twitter来判断,TensorFlow或Keras可能是主流,而PyTorch却停滞不前。 在2019年,机器学习框架之战还有两个主要竞争者:PyTorch和TensorFlow。分析表明,研究人员正在放弃TensorFlow并大量涌向PyTorch。同时,在行业中,Tensorflow当前是首选平台,但从长远来看可能并非如此。PyTorch 占领了研究界,并试图将其在研究领域的成功推广到工业界。
TensorFlow 试图在不牺牲太多生产能力的情况下,遏制其在研究领域的损失。
研究人员的偏好会对业界产生多大的影响?
TensorFlow 的 eager 模式在可用性方面能赶上 PyTorch 吗?
PyTorch 达到生产状态的速度有多快?
谷歌在行业上的孤立会伤害它吗?
想要了解更多资讯,请扫描下方二维码,关注机器学习研究会
转自:新智元