雷锋网(公众号:雷锋网) AI 开发者按:就在今年 8 月份,机器学习框架 PyTorch 刚发布 1.2 版本(详情可参考:https://www.leiphone.com/news/201908/1G4smDSXUfZfHHqc.html),很多开发者甚至还没来得及吃透 1.2,两个月不到,进击的 Pytorch 又带着我们进入 1.3 版本时代。
与此前 PyTorch 一直受到学术领域研究人员的青睐不同,新版 PyTorch 也引起了业界的广泛关注,这主要得益于新版功能对业界支持度的大幅提升。
新版 Pytorch 1.3 不仅支持安卓 IOS 移动端部署及谷歌云 TPU,进一步加强了框架兼容性;还新增了更多涉及可解释性、加密、以及关于图像语音等工业方面应用;并在量化支持方面,集成了更强的训练功能。该消息一经发布,甚至不少开发者纷纷留言道,要不要转 Pytorch???
Pytorch 1.3 新特性
在 PyTorch 开发者大会上,Facebook 发布了其深度学习框架 PyTorch 1.3,新版 PyTorch 带来了重要的新功能,包括对移动端部署的支持、8 位整数的快速模式量化以及命名张量功能。
PyTorch 移动端
随着应用程序对更低延迟的要求越来越高,在边缘设备上运行机器学习(ML)变得越来越重要。
它也是像联邦学习等隐私保护技术的基础要素。为了在设备上更高效的运行 ML,PyTorch 1.3 现在支持从 Python 到在 iOS 和 Android 上部署的端到端工作流。
在 Python 上部署 iOS 和 Android 移动设备端到端工作流
这个功能还是早期实验版本,针对端到端开发进行了优化,新版本侧重于:
-
大小优化:根据用户应用程序所需的运算符,构建级别优化和选择性编译(即,仅为所需的运算符提供二进制大小字符)
-
性能:进一步改善了移动 CPU 和 GPU 的性能和覆盖范围
-
高级 API:扩展移动原生 API,以覆盖常用预处理和将 ML 集成到移动应用程序中所需的任务。例如计算机视觉和自然语言处理任务。
更多关于 PyTorch 移动端:
量化支持
开发 ML 应用程序时,有效利用服务器端和设备上的计算资源非常重要。为了支持在服务器和边缘设备上进行更有效的部署,PyTorch 1.3 现在支持使用常见的 eager 模式进行 8 位模型量化。量化是指用于以降低的精度执行计算和存储的技术,例如:8-bit 整数。
当前的实验特性包括:对训练后量化(post-training quantization)、动态量化(dynamic quantization)和量化感知训练(quantization-aware training)的支持。
它分别利用了 x86 和 ARM CPU 的 FBGEMM 和 QNNPACK 最新的量化内核后端,这些后端与 PyTorch 集成在一起,并且现在共享一个通用 API。
更多详细设计和架构信息:
https://pytorch.org/docs/master/quantization.html
量化的实际案例参考:
https://pytorch.org/tutorials/advanced/dynamic_quantization_tutorial.html
命名张量
康奈尔大学的 Sasha Rush 认为,尽管张量在深度学习中无处不在,但传统的张量实现仍存在明显的缺陷,例如:暴露私有维度、基于绝对位置的 broadcasting 以及在文档中保留类型信息。他提议将命名张量作为替代方法。
即我们可以被允许通过命名张量来命名和访问维度,而无需再根据位置来跟踪张量维度:
同时,命名也使得代码更具可读性和可维护性。Pythorch 项目总监 JoeSpisak 也曾在电话采访中表示:「命名张量可以让你写出更干净的代码。我可以将这些命名嵌入到代码中,而不必备注这个数字是高度、这个数字是宽度等;所以,这会使代码更可读、更干净且更易于维护。」
用于模型可解释性和隐私性的新工具
可解释性工具 Captum
随着模型变得越来越复杂,开发用于模型可解释性的新方法变得越来越重要。
为了满足这种需求,Facebook 推出了可解释性工具 Captum,该工具可帮助在 PyTorch 开发人员更好的理解其模型生成特定输出的原因。
Captum 提供了先进的工具来了解特定神经元和层的重要性,以及他们如何影响模型做出的预测。Captum 的算法包括:积分梯度(integrated gradients)、电导(conductance),SmoothGrad 和 VarGrad 以及 DeepLift。
下面的案例展示了如何在预训练的 ResNet 模型上应用模型可解释性算法,然后通过将每个像素的属性叠加在图像上来使其可视化。
在预训练的 ResNet 模型上应用 Captum
更多关于 Captum:
CrypTen 加密
ML 通过基于云或机器学习即服务(MLaaS)平台的实际应用提出了一系列安全和隐私挑战。尤其对于这些平台上可能不希望或无法共享未加密数据的用户,这导致他们无法充分利用 ML 工具。
为了应对这些挑战,机器学习社区正在探索各种技术方法,包括:同态加密、安全的多方计算、可信任的执行环境、设备上的计算和差异隐私。Facebook 也发布了 CrypTen 来更好地帮助研究人员理解如何应用其中的某些技术,这是一个新的基于社区的研究开源平台,用于推动隐私保护 ML 领域的发展。
除此之外,Facebook 也一直在与谷歌的深度思维研究科学家安德鲁·特拉斯克(Andrew Trask)一起研究保护隐私的模型,Udacity Course 则是一门学习如何利用工具扩展 PyTorch,从而训练能够保护用户隐私 AI 模型的课程。它还包含一个用于加密深度学习库的开源项目,且覆盖了 Pythorch、TensorFlow 和 Keras 框架的扩展。
更多关于 CrypTen:
https://ai.facebook.com/blog/crypten-a-new-research-tool-for-secure-machine-learning-with-pytorch
GitHub 开源地址:
https://github.com/facebookresearch/crypten
关于 Udacity Course:
多模态 AI 系统工具
目前网上的数字内容通常不是单一形式,而是由多种形式共同组成,可能包含:文本、图像、音频和视频。PyTorch 提供了新的工具和软件库生态系统,来解决构建多模态 ML 系统的问题。以下是一些最新推出的库:
Detectron2
Detectron2 是在 PyTorch 中实现的目标检测库。它提供了对最新模型和任务的支持,以增强的灵活性帮助进行计算机视觉研究,并改善了可维护性和可扩展性,以支持在生产中的用例。
更多关于 Detectron2:
https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-
GitHub:
Fairseq 的语音扩展
语言翻译和音频处理是系统和应用程序如:搜索、翻译、语音和助手中的关键组件。近年来,随着 transformers 等新架构及大规模预训练方法的发展,这些领域取得了巨大的进步。
Facebook 对 Fairseq 进行了扩展,这是一个用于序列到序列应用(语言翻译等 seq2seq 应用)的框架,包括对语音和音频识别任务的端到端学习的支持。
GitHub 开源地址:
https://github.com/pytorch/fairseq/tree/master/examples/speech_recognition
云和硬件生态系统支持
除了新增众多功能外,PyTorch 还宣布了对 Google Cloud TPU 的全面支持,以及与阿里云新推出的 PyTorch 集成。此外,PyTorch 还新增了对两家 AI 硬件的支持,扩展了自己的硬件生态。
-
Google Cloud TPU 支持现已广泛可用。在 Facebook、Google 和 Salesforce 的工程师共同努力下,新版的 PyTorch 加入对了云 TPU 支持,包括对超级计算机云 TPU Pods 的实验性支持。谷歌 Colab 还提供了对云 TPU 的 PyTorch 支持。
-
阿里云中添加了对 PyTorch 的支持。阿里云的集成涉及 PyTorch 1.x 的一键式解决方案,数据科学 Workshop notebook 服务,使用 Gloo/NCCL 进行的分布式训练,以及与阿里巴巴 IaaS(如 OSS、ODPS 和 NAS)的无缝集成。
-
ML 硬件生态系统扩展。除了主要的 GPU 和 CPU 合作伙伴之外,PyTorch 生态系统还支持专用的 ML 加速器。例如:英特尔不久前推出的 NNP-I 推理芯片、Habana Labs 的 AI 处理器。
Pythorch 1.3 意义及未来计划
Facebook 首席技术官迈克•施罗普弗(Mike Schroepfer)在会议开始时表示,在过去两年里,Facebook 已经不再使用其前身 Torch 或 Caffe2,而是努力使 Pythorch 成为深入学习的主要工具。这对于保持研究人员和开发人员处于同一个页面上至关重要。
施罗普弗在台上说:「这意味着它现在是在 Facebook 上进行机器学习(和)深度学习的事实工具,不仅是用于有机发生的研究,而且是在生产中,所以我们绝大多数的模特现在都是在 Pythorch 上训练的。」在计算机视觉、NLP、语音、翻译等多个领域都是如此,所有这些系统现在都在使用 Pythorch。
Facebook 首席技术官迈克•施罗普弗(Mike Schroepfer)也表示,Tensor 处理单元的支持从单芯片训练模型开始,之后将扩展到云计算平台。
原文链接:
https://pytorch.org/blog/pytorch-1-dot-3-adds-mobile-privacy-quantization-and-named-tensors/
博客文章地址:
雷锋网 AI 开发者 雷锋网
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/137311.html