0
雷鋒網(wǎng) AI 開發(fā)者按:就在今年 8 月份,機器學習框架 PyTorch 剛發(fā)布 1.2 版本(詳情可參考:http://www.ozgbdpf.cn/news/201908/1G4smDSXUfZfHHqc.html),很多開發(fā)者甚至還沒來得及吃透 1.2,兩個月不到,進擊的 Pytorch 又帶著我們進入 1.3 版本時代。
與此前 PyTorch 一直受到學術(shù)領(lǐng)域研究人員的青睞不同,新版 PyTorch 也引起了業(yè)界的廣泛關(guān)注,這主要得益于新版功能對業(yè)界支持度的大幅提升。
新版 Pytorch 1.3 不僅支持安卓 IOS 移動端部署及谷歌云 TPU,進一步加強了框架兼容性;還新增了更多涉及可解釋性、加密、以及關(guān)于圖像語音等工業(yè)方面應用;并在量化支持方面,集成了更強的訓練功能。該消息一經(jīng)發(fā)布,甚至不少開發(fā)者紛紛留言道,要不要轉(zhuǎn) Pytorch???
在 PyTorch 開發(fā)者大會上,F(xiàn)acebook 發(fā)布了其深度學習框架 PyTorch 1.3,新版 PyTorch 帶來了重要的新功能,包括對移動端部署的支持、8 位整數(shù)的快速模式量化以及命名張量功能。
PyTorch 移動端
隨著應用程序?qū)Ω脱舆t的要求越來越高,在邊緣設備上運行機器學習(ML)變得越來越重要。
它也是像聯(lián)邦學習等隱私保護技術(shù)的基礎(chǔ)要素。為了在設備上更高效的運行 ML,PyTorch 1.3 現(xiàn)在支持從 Python 到在 iOS 和 Android 上部署的端到端工作流。
在 Python 上部署 iOS 和 Android 移動設備端到端工作流
這個功能還是早期實驗版本,針對端到端開發(fā)進行了優(yōu)化,新版本側(cè)重于:
大小優(yōu)化:根據(jù)用戶應用程序所需的運算符,構(gòu)建級別優(yōu)化和選擇性編譯(即,僅為所需的運算符提供二進制大小字符)
性能:進一步改善了移動 CPU 和 GPU 的性能和覆蓋范圍
高級 API:擴展移動原生 API,以覆蓋常用預處理和將 ML 集成到移動應用程序中所需的任務。例如計算機視覺和自然語言處理任務。
更多關(guān)于 PyTorch 移動端:
量化支持
開發(fā) ML 應用程序時,有效利用服務器端和設備上的計算資源非常重要。為了支持在服務器和邊緣設備上進行更有效的部署,PyTorch 1.3 現(xiàn)在支持使用常見的 eager 模式進行 8 位模型量化。量化是指用于以降低的精度執(zhí)行計算和存儲的技術(shù),例如:8-bit 整數(shù)。
當前的實驗特性包括:對訓練后量化(post-training quantization)、動態(tài)量化(dynamic quantization)和量化感知訓練(quantization-aware training)的支持。
它分別利用了 x86 和 ARM CPU 的 FBGEMM 和 QNNPACK 最新的量化內(nèi)核后端,這些后端與 PyTorch 集成在一起,并且現(xiàn)在共享一個通用 API。
更多詳細設計和架構(gòu)信息:
https://pytorch.org/docs/master/quantization.html
量化的實際案例參考:
https://pytorch.org/tutorials/advanced/dynamic_quantization_tutorial.html
命名張量
康奈爾大學的 Sasha Rush 認為,盡管張量在深度學習中無處不在,但傳統(tǒng)的張量實現(xiàn)仍存在明顯的缺陷,例如:暴露私有維度、基于絕對位置的 broadcasting 以及在文檔中保留類型信息。他提議將命名張量作為替代方法。
即我們可以被允許通過命名張量來命名和訪問維度,而無需再根據(jù)位置來跟蹤張量維度:
同時,命名也使得代碼更具可讀性和可維護性。Pythorch 項目總監(jiān) JoeSpisak 也曾在電話采訪中表示:「命名張量可以讓你寫出更干凈的代碼。我可以將這些命名嵌入到代碼中,而不必備注這個數(shù)字是高度、這個數(shù)字是寬度等;所以,這會使代碼更可讀、更干凈且更易于維護?!?/p>
可解釋性工具 Captum
隨著模型變得越來越復雜,開發(fā)用于模型可解釋性的新方法變得越來越重要。
為了滿足這種需求,F(xiàn)acebook 推出了可解釋性工具 Captum,該工具可幫助在 PyTorch 開發(fā)人員更好的理解其模型生成特定輸出的原因。
Captum 提供了先進的工具來了解特定神經(jīng)元和層的重要性,以及他們?nèi)绾斡绊懩P妥龀龅念A測。Captum 的算法包括:積分梯度(integrated gradients)、電導(conductance),SmoothGrad 和 VarGrad 以及 DeepLift。
下面的案例展示了如何在預訓練的 ResNet 模型上應用模型可解釋性算法,然后通過將每個像素的屬性疊加在圖像上來使其可視化。
在預訓練的 ResNet 模型上應用 Captum
更多關(guān)于 Captum:
CrypTen 加密
ML 通過基于云或機器學習即服務(MLaaS)平臺的實際應用提出了一系列安全和隱私挑戰(zhàn)。尤其對于這些平臺上可能不希望或無法共享未加密數(shù)據(jù)的用戶,這導致他們無法充分利用 ML 工具。
為了應對這些挑戰(zhàn),機器學習社區(qū)正在探索各種技術(shù)方法,包括:同態(tài)加密、安全的多方計算、可信任的執(zhí)行環(huán)境、設備上的計算和差異隱私。Facebook 也發(fā)布了 CrypTen 來更好地幫助研究人員理解如何應用其中的某些技術(shù),這是一個新的基于社區(qū)的研究開源平臺,用于推動隱私保護 ML 領(lǐng)域的發(fā)展。
除此之外,F(xiàn)acebook 也一直在與谷歌的深度思維研究科學家安德魯·特拉斯克(Andrew Trask)一起研究保護隱私的模型,Udacity Course 則是一門學習如何利用工具擴展 PyTorch,從而訓練能夠保護用戶隱私 AI 模型的課程。它還包含一個用于加密深度學習庫的開源項目,且覆蓋了 Pythorch、TensorFlow 和 Keras 框架的擴展。
更多關(guān)于 CrypTen:
https://ai.facebook.com/blog/crypten-a-new-research-tool-for-secure-machine-learning-with-pytorch
GitHub 開源地址:
https://github.com/facebookresearch/crypten
關(guān)于 Udacity Course:
目前網(wǎng)上的數(shù)字內(nèi)容通常不是單一形式,而是由多種形式共同組成,可能包含:文本、圖像、音頻和視頻。PyTorch 提供了新的工具和軟件庫生態(tài)系統(tǒng),來解決構(gòu)建多模態(tài) ML 系統(tǒng)的問題。以下是一些最新推出的庫:
Detectron2
Detectron2 是在 PyTorch 中實現(xiàn)的目標檢測庫。它提供了對最新模型和任務的支持,以增強的靈活性幫助進行計算機視覺研究,并改善了可維護性和可擴展性,以支持在生產(chǎn)中的用例。
更多關(guān)于 Detectron2:
https://ai.facebook.com/blog/-detectron2-a-pytorch-based-modular-object-detection-library-
GitHub:
Fairseq 的語音擴展
語言翻譯和音頻處理是系統(tǒng)和應用程序如:搜索、翻譯、語音和助手中的關(guān)鍵組件。近年來,隨著 transformers 等新架構(gòu)及大規(guī)模預訓練方法的發(fā)展,這些領(lǐng)域取得了巨大的進步。
Facebook 對 Fairseq 進行了擴展,這是一個用于序列到序列應用(語言翻譯等 seq2seq 應用)的框架,包括對語音和音頻識別任務的端到端學習的支持。
GitHub 開源地址:
https://github.com/pytorch/fairseq/tree/master/examples/speech_recognition
除了新增眾多功能外,PyTorch 還宣布了對 Google Cloud TPU 的全面支持,以及與阿里云新推出的 PyTorch 集成。此外,PyTorch 還新增了對兩家 AI 硬件的支持,擴展了自己的硬件生態(tài)。
Google Cloud TPU 支持現(xiàn)已廣泛可用。在 Facebook、Google 和 Salesforce 的工程師共同努力下,新版的 PyTorch 加入對了云 TPU 支持,包括對超級計算機云 TPU Pods 的實驗性支持。谷歌 Colab 還提供了對云 TPU 的 PyTorch 支持。
阿里云中添加了對 PyTorch 的支持。阿里云的集成涉及 PyTorch 1.x 的一鍵式解決方案,數(shù)據(jù)科學 Workshop notebook 服務,使用 Gloo/NCCL 進行的分布式訓練,以及與阿里巴巴 IaaS(如 OSS、ODPS 和 NAS)的無縫集成。
ML 硬件生態(tài)系統(tǒng)擴展。除了主要的 GPU 和 CPU 合作伙伴之外,PyTorch 生態(tài)系統(tǒng)還支持專用的 ML 加速器。例如:英特爾不久前推出的 NNP-I 推理芯片、Habana Labs 的 AI 處理器。
Facebook 首席技術(shù)官邁克?施羅普弗(Mike Schroepfer)在會議開始時表示,在過去兩年里,F(xiàn)acebook 已經(jīng)不再使用其前身 Torch 或 Caffe2,而是努力使 Pythorch 成為深入學習的主要工具。這對于保持研究人員和開發(fā)人員處于同一個頁面上至關(guān)重要。
施羅普弗在臺上說:「這意味著它現(xiàn)在是在 Facebook 上進行機器學習(和)深度學習的事實工具,不僅是用于有機發(fā)生的研究,而且是在生產(chǎn)中,所以我們絕大多數(shù)的模特現(xiàn)在都是在 Pythorch 上訓練的?!乖谟嬎銠C視覺、NLP、語音、翻譯等多個領(lǐng)域都是如此,所有這些系統(tǒng)現(xiàn)在都在使用 Pythorch。
Facebook 首席技術(shù)官邁克?施羅普弗(Mike Schroepfer)也表示,Tensor 處理單元的支持從單芯片訓練模型開始,之后將擴展到云計算平臺。
原文鏈接:
https://pytorch.org/blog/pytorch-1-dot-3-adds-mobile-privacy-quantization-and-named-tensors/
博客文章地址:
雷鋒網(wǎng) AI 開發(fā)者 雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。