0
雷鋒網 AI 開發者按:就在今年 8 月份,機器學習框架 PyTorch 剛發布 1.2 版本(詳情可參考:http://www.35crmo.cc/news/201908/1G4smDSXUfZfHHqc.html),很多開發者甚至還沒來得及吃透 1.2,兩個月不到,進擊的 Pytorch 又帶著我們進入 1.3 版本時代。
與此前 PyTorch 一直受到學術領域研究人員的青睞不同,新版 PyTorch 也引起了業界的廣泛關注,這主要得益于新版功能對業界支持度的大幅提升。
新版 Pytorch 1.3 不僅支持安卓 IOS 移動端部署及谷歌云 TPU,進一步加強了框架兼容性;還新增了更多涉及可解釋性、加密、以及關于圖像語音等工業方面應用;并在量化支持方面,集成了更強的訓練功能。該消息一經發布,甚至不少開發者紛紛留言道,要不要轉 Pytorch???

在 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:
目前網上的數字內容通常不是單一形式,而是由多種形式共同組成,可能包含:文本、圖像、音頻和視頻。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 處理器。

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 開發者 雷鋒網
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。