ww77800 - PyTorch1.3发布:能在移动端部署,支持Colab云TPU,阿里云也能用
2020-01-11 11:59:36

ww77800 - PyTorch1.3发布:能在移动端部署,支持Colab云TPU,阿里云也能用

ww77800,晓查 一璞 发自 凹非寺

量子位 报道 | 公众号 qbitai

“我要转pytorch!”

看到1.3版本的新特性之后,有开发者在推特上喊。

今天是pytorch开发者大会第一天,pytorch 1.3率先公布。

新的版本不仅能支持安卓ios移动端部署,甚至还能让用户去对手google的colab上调用云tpu。

不方便薅google羊毛的国内的开发者,pytorch也被集成在了阿里云上,阿里云全家桶用户可以更方便的使用pytorch了。

此外还有一大波新工具,涉及可解释性、加密、以及关于图像语音的诸多功能。

又兼容又有新工具,怪不得有普通铁杆粉丝感叹:自己对facebook开源库的“忠诚度”越来越高了。

牛逼!可能是个人感觉吧,facebook比google在开源库方面好多了,而且各方支持也是最好的。

react对比angular,pytorch对比tensorflow。这就是其中两个例子,facebook框架上市晚,但得到了强有力的支持,不断改进,而google的框架虽然出来得早但没啥兼容升级,最终成为弃子。

我对facebook开源库的“忠诚度”一直在增长。

pytorch 1.3新功能

pytorch 1.3带来了三个实验性的新功能。

命名张量

允许用户给张量维度命名,从而让张量更易用,这样就可以直接喊他们的名字,不用根据位置来跟踪张量维度。

升级之前,你需要在代码里写注释来给张量命名:

升级之后,就直接能在代码里写了,这样可读性大大提高:

另外,这项功能还能自动检查api是否被正确的使用,提升了安全性,还可以直接用名字来重新排列尺寸。

你可以这样命名:

也可以这样命名:

用align_to就可以重新排序:

是不是方便多了?

量化支持

开发ml应用程序时,有效利用服务器端和设备上的计算资源非常重要。

为了支持在服务器和边缘设备上进行更有效的部署,pytorch 1.3现在支持用eager模式进行8位模型量化。所谓量化,是指降低精度执行计算和存储的技术。

当前处于实验性的量化功能包括对后训练量化(post-training quantization)、动态量化(dynamic quantization)和量化感知训练(quantization-aware training)的支持。它分别利用了x86和arm cpu的fbgemm和qnnpack最新的量化内核后端,这些后端与pytorch集成在一起,并且现在共享一个通用api。

具体的api文档可以参阅:

https://pytorch.org/docs/master/quantization.html

facebook提供了一个量化的实际案例供开发者参考:

https://pytorch.org/tutorials/advanced/dynamic_quantization_tutorial.html

移动端

另外,为了在边缘设备上高效的运行机器学习,pytorch 1.3支持端到端的工作流,从python到部署在ios和安卓端。

当然,这个功能还是早期实验版本,针对端到端做了优化,新版本重点在:

1、大小优化,根据用户需要构建级别优化和选择性编译。

2、提升了移动cpu和gpu上的性能。

3、高级api:扩展移动原生api,覆盖常用预处理、将机器学习合并到移动应用需要的集成任务,比如计算机视觉或者nlp的任务。

移动端部署细节:

https://pytorch.org/mobile/home/

新工具

可解释性工具captum

随着ai模型变得越来越复杂,开发用于模型可解释性的新方法变得越来越重要。为了满足这种需求,facebook推出了captum。

captum可以帮助使用pytorch的开发者了解为什么他们的模型生成某个特定输出。captum提供了先进的工具来理解特定神经元和层如何影响模型做出的预测。

captum的算法包括integrated gradients、conductance、smoothgrad、vargrad和deeplift。

下面的案例展示了如何在预训练的resnet模型上应用模型可解释性算法,然后通过将每个像素的属性叠加在图像上,使其可视化。

了解更多:

https://www.captum.ai/

加密工具crypten

通过基于云或机器学习即服务(mlaas)平台的ml的实际应用提出了一系列安全和隐私挑战。

这些平台的用户可能不希望或是无法共享未加密数据,这使他们无法充分利用机器学习工具。为了应对这些挑战,机器学习社区正在探索各种成熟度不同的技术方法。这些包括同态加密(homomorphic encryption)、安全多方计算(secure multiparty computation)、可信执行环境(trusted execution environments)、设备计算(on-device computation)和差分隐私(differential privacy)。

为了更好地理解如何应用其中的某些技术,facebook发布了crypten,这是一个新的基于社区的研究平台,用于推动隐私保护ml领域的发展。

crypten的更多细节:

https://ai.facebook.com/blog/crypten-a-new-research-tool-for-secure-machine-learning-with-pytorch

目前crypten已经在github上开源:

https://github.com/facebookresearch/crypten

多模ai系统工具

如今网上的数字内容通常不是单一形式,而是由多种形式共同组成,可能包含文本、图像、音频和视频。pytorch提供了新的工具和软件库生态系统,来处理机器学习ml系统。

detectron2

detectron2是在pytorch中实现的目标检测库。它以增强的灵活性帮助计算机视觉研究,并改善可维护性和可伸缩性,以支持在生产中的用例。

更多细节:

https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-

github:

https://github.com/facebookresearch/detectron2

fairseq的语音扩展

语言翻译和音频处理是系统和应用程序(例如搜索,翻译,语音和助手)中的关键组件。由于变压器等新架构的发展以及大规模的预训练方法的发展,最近在这些领域取得了巨大的进步。

facebook已经扩展了fairseq(语言翻译等seq2seq应用框架),包括对语音和音频识别任务的端到端学习的支持。fairseq的这些扩展可以加快对新语音研究的探索和原型开发。

github:

https://github.com/pytorch/fairseq/tree/master/examples/speech_recognition

云端支持

今天的开发者大会上,另一个激动人心的消息是,pytorch宣布了对谷歌云tpu的全面支持,以及阿里云对pytorch的集成。此外,pytorch还将新增了对两家ai硬件的支持,扩展了了自己的硬件生态。

谷歌云tpu

在facebook、google和salesforce的工程师共同努力下,新版的pytorch加入对了云tpu支持,包括对超级计算机云tpu pods的实验性支持。谷歌colab还提供了对云tpu的pytorch支持。

阿里云

阿里云的集成涉及pytorch 1.x的一键式解决方案,数据科学workshop notebook服务,使用gloo/nccl进行的分布式训练,以及与阿里巴巴iaas(如oss、odps和nas)的无缝集成。

硬件生态扩展

除了主要的gpu和cpu合作伙伴之外,pytorch生态系统还支持专用的机器学习加速器。比如英特尔不久前推出的nnp-i推理芯片、habana labs的ai处理器。

这两家公司分别在博客中展示了自家硬件对pytorch glow优化编译器的支持,使开发人员能够利用这些特定于市场的解决方案。

回馈ai社区

最后facebook感谢ai社区对pytorch生态做出的贡献,过去一段时间里,一些开发者的优秀开源项目让pytorch框架受益。比如:

1、mila speechbrain:多合一语音工具包

《kaldi拜拜!pytorch语音工具包speechbrain要来了,支持多种语音任务,实现最强水准》

2、spacy:用于nlp的高级软件库

3、huggingface pytorch-transformers:用于nlp的最新的预训练模型库。

《一个api调用27个nlp预训练模型:bert、gpt-2全囊括,像导入numpy一样容易》

4、pytorch lightning:一个类似keras的ml库

《在pytorch上用”keras”,分布式训练开箱即用,告别没完没了的debug》

最近,facebook举行了首次在线的全球pytorch夏季黑客马拉松,共有近1500名开发者参加了比赛。facebook在今天公布了获奖项目,他们分别是:

1、torchmeta:提供了pytorch的扩展,简化pytorch中元学习算法的开发。

2、open-unmix:使用pytorch进行端到端音乐混合的系统。

3、endless ai-generated tees:这是一家向全球售卖ai设计t恤的商店。他们使用由pytorch构建的stylegan,接受现代艺术的训练。

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(qbitai)对话界面,回复“招聘”两个字。

量子位 qbitai · 头条号签约作者

վ'ᴗ' ի 追踪ai技术和产品新动态

关键字: