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