今天,F(xiàn)acebook正式公布PyTorch 1.0,這個(gè)新的框架將PyTorch 0.4與Caffe2合并,并整合ONNX格式,讓開發(fā)者可以無(wú)縫地將AI模型從研究轉(zhuǎn)到生產(chǎn),而無(wú)需處理遷移。
今天,F(xiàn)acebook正式公布PyTorch 1.0,這是將基于Python的PyTorch與Caffe2合并的一個(gè)新版本的框架,讓開發(fā)者可以無(wú)縫地將AI模型從研究轉(zhuǎn)到生產(chǎn),而無(wú)需處理遷移。
“現(xiàn)在,你只需要使用PyTorch 1.0,就可以在一個(gè)框架中無(wú)縫地進(jìn)行從研究到生產(chǎn)的全部過(guò)程,而不需要為訓(xùn)練/研究和生產(chǎn)分別選擇框架?!盕acebook發(fā)言人在F8大會(huì)上說(shuō)。
Facebook去年與微軟合作推出開放神經(jīng)網(wǎng)絡(luò)交換(ONNX)格式,這是一個(gè)用于表示深度學(xué)習(xí)模型的標(biāo)準(zhǔn),旨在使不同框架之間的移動(dòng)更加簡(jiǎn)單?,F(xiàn)在,F(xiàn)acebook已經(jīng)將ONNX整合到PyTorch 1.0中,使模型能夠與其他框架進(jìn)行互操作,并且開發(fā)人員可以“混合搭配”。
Facebook還表示,將統(tǒng)一PyTorch 0.4和Caffe2的代碼庫(kù),以創(chuàng)建一個(gè)統(tǒng)一的框架,支持多種功能,包括高效的圖形模式執(zhí)行、分析、移動(dòng)部署等。
PyTorch 1.0將在未來(lái)幾個(gè)月內(nèi)發(fā)布,據(jù)悉,微軟計(jì)劃在Azure中支持該框架,亞馬遜也將在其云產(chǎn)品中支持PyTorch 1.0。
PyTorch官方博客介紹了PyTorch 1.0的更多細(xì)節(jié):
生產(chǎn)性:在PyTorch 1.0中,你的代碼可以繼續(xù)按原樣運(yùn)行,我們沒(méi)有對(duì)現(xiàn)有的API做任何大更改。如果你不需要優(yōu)化或?qū)С瞿P停瑒t不必使用這些新功能,也不會(huì)有任何缺點(diǎn)。此外,可以逐步使用traced或@script模塊/函數(shù)。
JIT編譯器:使用torch.jit編譯器將模型導(dǎo)出到非Python環(huán)境,并提高其性能。對(duì)于不包含循環(huán)和if語(yǔ)句的網(wǎng)絡(luò),trace是非侵入式的,并且足夠穩(wěn)健,可以處理各種編碼風(fēng)格;對(duì)于主要使用控制流的模型(如RNN),我們的解決方案是腳本模式(@script)。
優(yōu)化和導(dǎo)出:Caffe2 / ONNX中模型的python-free表示
后端:我們正在替換(或重構(gòu))后端ATen庫(kù),以整合來(lái)自Caffe2的功能和優(yōu)化。
Timeline:我們的目標(biāo)是在今年夏天推出PyTorch 1.0。
PyTorch 1.0:一個(gè)框架實(shí)現(xiàn)AI從研究到生產(chǎn)的全過(guò)程
AI的開發(fā)從研究到生產(chǎn)的過(guò)程,涉及多個(gè)步驟和工具,這使得測(cè)試新方法、部署它們,以及迭代以提高準(zhǔn)確性和性能都非常耗時(shí)而且復(fù)雜。為了幫助加速和優(yōu)化這個(gè)過(guò)程,我們推出PyTorch 1.0。
PyTorch 1.0采用了Caffe2和ONNX的模塊化、面向生產(chǎn)的功能,并將它們與PyTorch現(xiàn)有的靈活的、側(cè)重于研究的設(shè)計(jì)結(jié)合起來(lái),為各種AI項(xiàng)目提供從研究原型到生產(chǎn)部署的快速、無(wú)縫的路徑。
使用PyTorch 1.0,AI開發(fā)人員可以通過(guò)在命令式執(zhí)行模式和聲明式執(zhí)行模式之間無(wú)縫切換的混合前端進(jìn)行快速實(shí)驗(yàn)和性能優(yōu)化。PyTorch 1.0中的技術(shù)已經(jīng)為Facebook的許多產(chǎn)品和服務(wù)提供支持,包括每天執(zhí)行60億次的文本翻譯。
PyTorch 1.0將在未來(lái)幾個(gè)月內(nèi)推出,并將包含一系列工具、庫(kù)、預(yù)訓(xùn)練的模型和各個(gè)開發(fā)階段的數(shù)據(jù)集,使社區(qū)能夠大規(guī)模地快速創(chuàng)建和部署新的AI創(chuàng)新。
從研究到生產(chǎn)的路徑
PyTorch的命令式前端通過(guò)其靈活且高效的編程模型實(shí)現(xiàn)了更快速的原型設(shè)計(jì)和實(shí)驗(yàn)。PyTorch的第一個(gè)版本是在一年前推出的,它的快速、高效和支持動(dòng)態(tài)圖等先進(jìn)AI模型的能力使其迅速成為廣受AI研究人員歡迎的重要開發(fā)工具。PyTorch的下載量已經(jīng)超過(guò)110萬(wàn)次,是ArXiv上個(gè)月引用量第二大的深度學(xué)習(xí)框架。例如,加州大學(xué)伯克利分校的計(jì)算機(jī)科學(xué)家將PyTorch的動(dòng)態(tài)圖功能用于他們的CycleGAN image-to-image轉(zhuǎn)換的工作。
CycleGAN的PyTorch實(shí)現(xiàn)
盡管當(dāng)前版本的PyTorch為AI的研究和開發(fā)提供了很大的靈活性,但由于它與Python的緊密結(jié)合,在生產(chǎn)規(guī)模上的性能有時(shí)是一個(gè)挑戰(zhàn)。我們經(jīng)常需要將研究代碼(訓(xùn)練腳本或訓(xùn)練模型 )翻譯成Caffe2的圖形模式表示,以便在生產(chǎn)規(guī)模上運(yùn)行。Caffe2的基于圖形的執(zhí)行程序允許開發(fā)者利用先進(jìn)的優(yōu)化方式,例如圖形轉(zhuǎn)換、高效的內(nèi)存重用以及緊密的硬件接口集成。
Caffe2項(xiàng)目是兩年前推出的,目的是使我們的生產(chǎn)AI工具標(biāo)準(zhǔn)化,現(xiàn)在它已經(jīng)在Facebook服務(wù)器和世界范圍超過(guò)10億部手機(jī)上運(yùn)行神經(jīng)網(wǎng)絡(luò),跨越8代iPhone和6代Android CPU架構(gòu)。今天,Caffe2每天在各種大小模型提供超過(guò)200萬(wàn)億次的預(yù)測(cè),并優(yōu)化生產(chǎn)性能。
從PyTorch遷移到Caffe2以進(jìn)行生產(chǎn),以前這是一個(gè)手動(dòng)的過(guò)程,耗時(shí)多且容易出錯(cuò)。為了解決這個(gè)問(wèn)題,我們與主要的硬件和軟件公司合作創(chuàng)建了ONNX(開放式神經(jīng)網(wǎng)絡(luò)交換),這是一種表示深度學(xué)習(xí)模式的開放式格式。借助ONNX,開發(fā)人員可以在不同框架之間共享模型,例如,導(dǎo)出使用PyTorch構(gòu)建的模型并將其導(dǎo)入Caffe2。
我們已經(jīng)使用這些工具(PyTorch,Caffe2和ONNX)來(lái)構(gòu)建和部署Translate,這個(gè)工具現(xiàn)在可以對(duì)Facebook上48種最常用語(yǔ)言的進(jìn)行翻譯。在VR方面,這些工具對(duì)于將Oculus的新研究部署到生產(chǎn)中至關(guān)重要。
但是,盡管這三種不同工具的組合是有效的,但仍然存在手工步驟復(fù)雜、耗費(fèi)時(shí)間長(zhǎng)等問(wèn)題。因此,僅僅是將這些工具組合還無(wú)法像我們期待的那樣無(wú)縫地將AI的研究創(chuàng)新帶入生產(chǎn)過(guò)程。
在一個(gè)框架中統(tǒng)一研究和生產(chǎn)的能力
PyTorch 1.0將即時(shí)模式和圖形執(zhí)行模式融合在一起,為生產(chǎn)的研究和性能優(yōu)化提供了靈活性。更具體地說(shuō),PyTorch 1.0不是強(qiáng)制開發(fā)者重寫整個(gè)代碼以實(shí)現(xiàn)優(yōu)化或從Python遷移,而是提供了一個(gè)混合的前端,使開發(fā)者能夠在用于原型制作的即時(shí)模式和用于生產(chǎn)的圖形執(zhí)行模式之間無(wú)縫地共享大部分代碼。
此外,ONNX本身被加入到PyTorch 1.0中作為一種模型輸出格式,這使得PyTorch 1.0中的模型可與其他AI框架進(jìn)行互操作。ONNX還可用作加速運(yùn)行時(shí)間或硬件特定庫(kù)的集成接口。這使得開發(fā)人員可以完全自由地混合和匹配最佳的AI框架和工具,而無(wú)需采用資源密集型的定制工程。Facebook將支持ONNX的新特征和功能,ONNX仍然是一種強(qiáng)大的開放格式,同時(shí)也是使用PyTorch 1.0進(jìn)行開發(fā)的重要組成部分。
構(gòu)建一個(gè)端到端的深度學(xué)習(xí)系統(tǒng)
除了PyTorch 1.0之外,F(xiàn)acebook還開源了多個(gè)AI工具,包括Translate——一個(gè)PyTorch語(yǔ)言庫(kù),用于快速、靈活的神經(jīng)機(jī)器翻譯;以及下一代ELF——一個(gè)綜合的AI推理應(yīng)用游戲平臺(tái)。開發(fā)人員還可以利用Glow這樣機(jī)器學(xué)習(xí)編譯器,可以加速不同硬件平臺(tái)上的框架性能;還可以使用Tensor Comprehensions這種自動(dòng)生成高級(jí)數(shù)學(xué)運(yùn)算的高效GPU代碼的工具。Facebook也開源了其他庫(kù),如Detectron,支持對(duì)象檢測(cè)研究,涵蓋了邊界框和對(duì)象實(shí)例分割輸出。
Facebook推出一個(gè)AI開發(fā)者網(wǎng)站,列舉了所有這些開源工具:
facebook.ai/developers
在接下來(lái)的幾個(gè)月中,我們將重構(gòu)并統(tǒng)一Caffe2和PyTorch 0.4框架的代碼庫(kù)。最終將形成一個(gè)統(tǒng)一的框架,支持高效的圖形模式執(zhí)行,包括profiling,移動(dòng)部署,廣泛的vendor集成等。與ONNX等其他開放式AI計(jì)劃一樣,我們也與其他公司和社區(qū)合作,為更多開發(fā)者提供這些加速研究的生產(chǎn)能力。首先,微軟計(jì)劃在他們的Azure云和開發(fā)者產(chǎn)品中支持PyTorch 1.0,包括Azure機(jī)器學(xué)習(xí)服務(wù)和數(shù)據(jù)科學(xué)虛擬機(jī);Amazon Web Services目前支持最新版本的PyTorch,針對(duì)P3 GPU實(shí)例進(jìn)行了優(yōu)化,并計(jì)劃在其云產(chǎn)品發(fā)布后不久支持 PyTorch 1.0,其中包括其深度學(xué)習(xí)AMI(Amazon Machine Image)。
-
AI
+關(guān)注
關(guān)注
87文章
28899瀏覽量
266267 -
Facebook
+關(guān)注
關(guān)注
3文章
1429瀏覽量
54479 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5422瀏覽量
120597 -
pytorch
+關(guān)注
關(guān)注
2文章
794瀏覽量
13013
原文標(biāo)題:PyTorch 1.0 正式公開,Caffe2并入PyTorch實(shí)現(xiàn)AI研究和生產(chǎn)一條龍
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論