PyTorch 1.0 穩(wěn)定版終于正式發(fā)布了!新版本增加了JIT編譯器、全新的分布式包、C++ 前端,以及 Torch Hub等新功能,支持AWS、谷歌云、微軟Azure等云平臺(tái),一句話,強(qiáng)大!
昨天,在 NeurIPS 大會(huì)上,F(xiàn)acebook 正式發(fā)布PyTorch 1.0 穩(wěn)定版!
這距離 PyTorch 1.0 預(yù)覽版發(fā)布僅僅過(guò)去了兩個(gè)月。PyTorch 1.0 預(yù)覽版首次發(fā)布是在 10 月份的 PyTorch 開(kāi)發(fā)者大會(huì),新增了面向生產(chǎn)的特征和主要云平臺(tái)的支持等功能,被認(rèn)為 90% 的功能能經(jīng)受住業(yè)界的考驗(yàn)。
題外話,NeurIPS 大會(huì)上,同一天 TensorFlow 團(tuán)隊(duì)和 PyTorch 團(tuán)隊(duì)先后有一個(gè)演講,介紹他們的框架。網(wǎng)友表示,這就像現(xiàn)實(shí)版的 “Mac 和 PC 之爭(zhēng)”(PyTorch 是 Mac)。TensorFlow 2.0 將在 2019 年正式發(fā)布。
回到 PyTorch1.0,研究人員和工程師現(xiàn)在可以輕松地充分利用這個(gè)開(kāi)源深度學(xué)習(xí)框架的新特性,包括一個(gè)用于 eager 和 graph execution 模型無(wú)縫轉(zhuǎn)換的 hybrid 前端,改進(jìn)的分布式訓(xùn)練,用于高性能研究的純 C++ 前端,以及與云平臺(tái)的深度集成。
PyTorch團(tuán)隊(duì)主要成員,包括賈揚(yáng)清
此外,PyTorch 1.0 加速了 AI 從研究原型開(kāi)發(fā)到生產(chǎn)部署的工作流程,并使其更容易入門。在過(guò)去幾個(gè)月,初學(xué)者通過(guò)各種教育項(xiàng)目快速開(kāi)始使用 PyTorch,專家們構(gòu)建各種創(chuàng)新項(xiàng)目,將框架擴(kuò)展到從自然語(yǔ)言處理到概率編程的各個(gè)領(lǐng)域。
PyTorch 1.0 穩(wěn)定版增加了一系列新功能,包括 JIT Compiler,全新的分布式包、C++ 前端,以及 Torch Hub。以及大量更新、新增特征、bug修復(fù)等:
地址:
https://github.com/pytorch/pytorch/releases/tag/v1.0.0
JIT編譯器、C++ 前端等四大新功能
JIT
JIT 是一組編譯器工具,用于縮小 PyTorch 在研究和生產(chǎn)上的鴻溝。它允許創(chuàng)建可以在不依賴 Python 解釋器的情況下運(yùn)行的模型,并且可以更積極地優(yōu)化這些模型。
使用程序注釋可以將現(xiàn)有模型轉(zhuǎn)換為 Torch 腳本,這是 PyTorch 可以直接運(yùn)行的 Python 子集。模型代碼仍然是有效的 Python 代碼,并且可以使用標(biāo)準(zhǔn) Python 工具鏈進(jìn)行調(diào)試。
PyTorch 1.0 提供了兩種方法使現(xiàn)有代碼與 JIT 兼容的方法,torch.jit.trace 或 torch.jit.script。一旦加上注釋,Torch Script 代碼就可以被積極地優(yōu)化,并且可以序列化,以便在新的 c++ API 中使用。這個(gè) API 完全不依賴 Python。
全新的分布式包
torch.distributed 軟件包和 torch.nn.parallel.DistributedDataParallel 模塊由全新的、重新設(shè)計(jì)的分布式庫(kù)提供支持。新的庫(kù)的主要亮點(diǎn)有:
新的 torch.distributed 是性能驅(qū)動(dòng)的,并且對(duì)所有后端 (Gloo,NCCL 和 MPI) 完全異步操作。
顯著的分布式數(shù)據(jù)并行性能改進(jìn),尤其適用于網(wǎng)絡(luò)較慢的主機(jī),如基于以太網(wǎng)的主機(jī)。
為 torch.distributedpackage 中的所有分布式集合操作添加異步支持。
在 Gloo 后端添加以下 CPU 操作:send,recv,reduce,all_gather,gather,scatter
在 NCCL 后端添加 barrier 操作
為 NCCL 后端添加 new_group 支持
C++ 前端
C ++ 前端是 PyTorch 后端的純 C ++ 接口,它遵循已建立的 Python 前端的 API 和體系結(jié)構(gòu)。它旨在實(shí)現(xiàn)高性能、低延遲和裸機(jī) C ++ 應(yīng)用程序的研究。它提供了 torch.nn,torch.optim,torch.data 和 Python 前端的其他組件的對(duì)應(yīng)版本。以下是兩種語(yǔ)言前端的比較:
作為 PyTorch 1.0 的一部分,我們發(fā)布的是標(biāo)記有 “API Unstable” 的 C ++ 前端。這意味著它已準(zhǔn)備好用于你的研究應(yīng)用程序,但仍有一些不穩(wěn)定,我們將在接下來(lái)的幾個(gè)版本中穩(wěn)定下來(lái)。在此期間,API 的某些部分可能會(huì)發(fā)生大的更改。
Torch Hub
Torch Hub 是一個(gè)預(yù)訓(xùn)練的模型庫(kù),旨在促進(jìn)研究的可重復(fù)性。
Torch Hub 支持使用簡(jiǎn)單的 hubconf.py 文件將預(yù)訓(xùn)練的模型(模型定義和預(yù)訓(xùn)練的權(quán)重)發(fā)布到 github 存儲(chǔ)庫(kù); 以 pytorch/vision 中的 resnet 模型為例,請(qǐng)參閱 hubconf for resnet models in pytorch/vision。
發(fā)布后,用戶可以使用 torch.hub.load API 加載預(yù)先訓(xùn)練的模型。更多詳細(xì)信息,請(qǐng)閱讀 torch.hub 文檔。
不斷增長(zhǎng)的 PyTorch 社區(qū)
PyTorch 在 2017 年初首次推出,很快成為 AI 研究人員的熱門選擇。他們發(fā)現(xiàn),由于其靈活、動(dòng)態(tài)的編程環(huán)境和用戶友好的界面,PyTorch 是快速實(shí)驗(yàn)的理想選擇。從那時(shí)起,這個(gè)社區(qū)迅速發(fā)展起來(lái)。
PyTorch 現(xiàn)在是GitHub 上增長(zhǎng)速度第二快的開(kāi)源項(xiàng)目,在過(guò)去的 12 個(gè)月里,貢獻(xiàn)者增加了 2.8 倍。
此外,F(xiàn)acebook 提供了一系列教育項(xiàng)目,幫助開(kāi)發(fā)人員更輕松地學(xué)習(xí)如何使用 PyTorch 構(gòu)建、訓(xùn)練和部署機(jī)器學(xué)習(xí)模型。
上個(gè)月,Udacity 和 Facebook 聯(lián)合推出一門新課程——PyTorch 深度學(xué)習(xí)入門 (Introduction to Deep Learning with PyTorch),以及 PyTorch Challenge Program,該項(xiàng)目旨在為繼續(xù)接受 AI 教育提供獎(jiǎng)學(xué)金。僅僅幾個(gè)星期,已經(jīng)有全球各地成千上萬(wàn)的學(xué)生在網(wǎng)上積極學(xué)習(xí)。
所有人都可以通過(guò) Udacity 網(wǎng)站免費(fèi)獲得完整的課程,更高級(jí)的 PyTorch 課程則將很快通過(guò) Udacity 的 AI 納米學(xué)位提供。
除了在線教育課程,fast.ai 等組織還提供了一些軟件庫(kù)來(lái)支持開(kāi)發(fā)人員學(xué)習(xí)如何使用 PyTorch 構(gòu)建神經(jīng)網(wǎng)絡(luò)。fastai 是一個(gè)簡(jiǎn)化訓(xùn)練神經(jīng)網(wǎng)絡(luò)的庫(kù),自從兩個(gè)月前發(fā)布以來(lái),已經(jīng)在 GitHub 上獲得了 10000 顆星星。
我們非常高興看到開(kāi)發(fā)人員使用這個(gè)庫(kù)取得的成功。例如,Santhosh Shetty 使用 fastai 將災(zāi)后損傷等級(jí)分類的準(zhǔn)確率提高了一倍;Alena Harley 將腫瘤正常測(cè)序的假陽(yáng)性率降低了 7 倍;Jason Antic 創(chuàng)建了一個(gè)名為 DeOldify 的項(xiàng)目,使用深度學(xué)習(xí)對(duì)舊圖像進(jìn)行著色和恢復(fù)。
圖片由 Jason Antic 提供
PyTorch 已經(jīng)被應(yīng)用于從圖像識(shí)別到機(jī)器翻譯的各種用例。因此,我們看到來(lái)自開(kāi)發(fā)者社區(qū)的各種各樣的項(xiàng)目,這些項(xiàng)目擴(kuò)展并支持了 PyTorch 開(kāi)發(fā)。其中一些項(xiàng)目包括:
Horovod——一個(gè)分布式訓(xùn)練框架,它使開(kāi)發(fā)人員可以輕松地使用單個(gè) GPU 程序,并在多個(gè) GPU 上快速進(jìn)行訓(xùn)練。
PyTorch Geometry——PyTorch 的幾何計(jì)算機(jī)視覺(jué)庫(kù),提供一組例程和可微分模塊。
TensorBoardX—一個(gè)將 PyTorch 模型記錄到 TensorBoard 的模塊,允許開(kāi)發(fā)人員使用可視化工具進(jìn)行模型訓(xùn)練。
此外,F(xiàn)acebook 的團(tuán)隊(duì)也在為 PyTorch 構(gòu)建和開(kāi)源項(xiàng)目,比如 Translate,這是一個(gè)基于 Facebook 機(jī)器翻譯系統(tǒng)的用于訓(xùn)練 sequence-to-sequence 模型的庫(kù)。
支持各種云
為了使 PyTorch 更易于訪問(wèn)和用戶友好,我們繼續(xù)深化與云平臺(tái)和服務(wù)的合作,例如Amazon Web services、Google Cloud Platform和Microsoft Azure。
就在最近,AWS 推出了支持 PyTorch 的 Amazon SageMaker Neo,允許開(kāi)發(fā)人員在 PyTorch 中構(gòu)建機(jī)器學(xué)習(xí)模型,一次訓(xùn)練后即可部署到云或邊緣的任何地方,并且性能提高了兩倍。
開(kāi)發(fā)人員現(xiàn)在還可以通過(guò)創(chuàng)建一個(gè)新的深度學(xué)習(xí) VM 實(shí)例,在谷歌云平臺(tái)上試用 PyTorch 1.0。
此外,微軟的 Azure 機(jī)器學(xué)習(xí)服務(wù)現(xiàn)在已經(jīng)普遍可用,它允許數(shù)據(jù)科學(xué)家在 Azure 上無(wú)縫地訓(xùn)練、管理和部署 PyTorch 模型。使用該服務(wù)的 Python SDK, PyTorch 開(kāi)發(fā)人員可以利用按需分布式計(jì)算功能,用 PyTorch 1.0 大規(guī)模訓(xùn)練模型,以加速生產(chǎn)過(guò)程。
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5506瀏覽量
121259 -
自然語(yǔ)言處理
+關(guān)注
關(guān)注
1文章
619瀏覽量
13579 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13246
原文標(biāo)題:PyTorch 1.0 穩(wěn)定版正式發(fā)布!
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論