當前位置:
首頁 > 最新 > PyTorch 1.0震撼來襲!

PyTorch 1.0震撼來襲!

PyTorchv0.4.0正式版發布沒幾天,Facebook在F8開發者大會第二天宣布將發布PyTorch 1.0,還提前展示了這款新框架的特性。

前戲

深度學習框架Caffe和Caffe2的作者,現Facebook AI科學家 賈揚清博士在知乎上發文「Caffe2 + PyTorch = PyTorch 1.0」,即對此事件作出了闡述。

鏈接:https://zhuanlan.zhihu.com/p/36353529

這麼重磅的新聞,知乎怎麼會錯過?來看看話題下大佬們的精彩發言

知乎話題:如何評價 PyTorch 1.0 Roadmap?

鏈接:https://www.zhihu.com/question/275682850

正文

鏈接:https://pytorch.org/2018/05/02/road-to-1.0.html

Dear PyTorch Users,

We would like to give you a preview of the roadmap for PyTorch 1.0 , the next release of PyTorch. Over the last year, we』ve had 0.2, 0.3 and 0.4 transform PyTorch from a [Torch+Chainer]-like interface into something cleaner, adding double-backwards, numpy-like functions, advanced indexing and removing Variable boilerplate. At this time, we』re confident that the API is in a reasonable and stable state to confidently release a 1.0.

However, 1.0 isn』t just about stability of the interface.

One of PyTorch』s biggest strengths is its first-class Python integration, imperative style, simplicity of the API and options. These are aspects that make PyTorch good for research and hackability.

One of its biggest downsides has been production-support. What we mean by production-support is the countless things one has to do to models to run them efficiently at massive scale:

exporting to C++-only runtimes for use in larger projects

optimizing mobile systems on iPhone, Android, Qualcomm and other systems

using more efficient data layouts and performing kernel fusion to do faster inference (saving 10% of speed or memory at scale is a big win)

quantized inference (such as 8-bit inference)

Startups, large companies and anyone who wants to build a product around PyTorch have asked for production support. At Facebook (the largest stakeholder for PyTorch) we have Caffe2, which has been the production-ready platform, running in our datacenters and shipping to more than 1 billion phones spanning eight generations of iPhones and six generations of Android CPU architectures. It has server-optimized inference on Intel / ARM, TensorRT support, and all the necessary bits for production. Considering all this value locked-in to a platform that the PyTorch team works quite closely with,we decided to marry PyTorch and Caffe2 which gives the production-level readiness for PyTorch.

Supporting production features without adding usability issues for our researchers and end-users needs creative solutions.

高潮

下面翻譯自Caffe2 + PyTorch = PyTorch 1.0

鏈接:https://zhuanlan.zhihu.com/p/36353529

面向研究和生產的PyTorch 1.0發布

由於歷史原因,人工智慧(AI)從研究到生產的開發過程中涉及多個步驟和工具,這使得測試、部署以及迭代改進準確性和性能變得非常耗時和複雜。為了幫助加速和優化這個過程,我們引入了PyTorch 1.0,這是我們開源AI框架的下一個版本。

PyTorch 1.0吸取了Caffe2和ONNX的模塊化以及面向生產的特點,並將它們與PyTorch現有的靈活以及注重研究的設計結合起來,使得各項AI項目能從研究原型快速無縫銜接到生產部署。PyTorch 1.0擁有能在命令式執行模式和聲明式執行模式之間無縫轉換的混合前端,這使得AI開發人員可以同時做到快速驗證和優化性能。PyTorch 1.0中的技術已經為大量Facebook產品和服務提供了支持,其中包括每天執行60億次文本翻譯。

PyTorch 1.0的測試版將在未來幾個月內推出,並將包括一系列工具、庫、預訓練模型和每個開發階段所需要的數據集,使社區能夠大規模地快速創建和部署新的AI創新應用。

從研究到生產的路徑

PyTorch的命令式前端通過其靈活而高效的編程模型實現了更快速的原型設計和實驗。 PyTorch的第一個版本是在一年前推出的,它的速度、生產力和支持動態圖形等尖端AI模型的能力使其迅速成為廣受人工智慧研究人員歡迎的重要開發工具。它已經被下載超過110萬次,是arxiv上個月引用次數第二高的深度學習框架。例如,加州大學伯克利分校的計算機科學家將PyTorch的動態圖功能應用於他們的CycleGAN(圖像到圖像轉換)工作中。

儘管當前版本的PyTorch為AI研發和部署提供了很大的靈活性,但由於與Python的緊密關係,在大規模的生產環境中性能有時是一項挑戰。我們經常需要將研究代碼 ,無論是訓練腳本還是訓練模型, 翻譯成Caffe2中的圖表達,以達到生產性能需要。 Caffe2基於圖(graph)的執行器允許開發人員利用最先進的性能優化方法,比如圖轉換,高效的內存重用以及緊密的硬體介面集成。 Caffe2項目是兩年前推出的,目的是將我們的AI生產工具標準化,目前全球各地的Facebook伺服器和超過10億部手機通過Caffe2運行神經網路,其中包含了八代iPhone和六代Android CPU架構。今天,Caffe2利用其經過優化的生產效率,每天在所有的或大或小的模型上提供超過200萬億次的預測。

從PyTorch遷移到Caffe2以轉換到生產環境是一個手動過程,耗時且易出錯。為了解決這個問題,我們與主要的硬體和軟體公司合作開發了ONNX(開放式神經網路交換),這是一種開放的表達深度學習模型的格式。藉助ONNX,開發人員可以在不同框架之間共享模型,例如,導出使用PyTorch構建的模型並將其導入Caffe2。在Facebook上,這使得我們能在AI研究、訓練和大規模伺服器和移動設備上的部署之間平滑轉換。

我們已經使用這些工具(PyTorch,Caffe2和ONNX)來構建和部署Translate,該工具現在可以支持Facebook上48種最常用語言的翻譯。在虛擬現實中,這些工具對於將Oculus的新研究成功部署到生產環境中至關重要,這可以使虛擬形象更加逼真。

儘管三種不同工具的這種組合是有效的,但仍然存在複雜且耗時的手動步驟。它不允許我們無縫地將新的人工智慧研究創新帶入生產過程,就像我們期望的那樣。

在一個框架中統一研究和生產能力

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之外,我們還會開源許多我們今天使用的AI工具。其中包括翻譯,一個PyTorch語言庫,用於快速,靈活的神經機器翻譯,以及下一代ELF,這是一個綜合的AI推理應用遊戲平台。開發人員還可以利用像Glow這樣的機器學習編譯器工具,Glow可以加速框架在不同硬體平台上的性能,還可以使用Tensor Comprehensions這種自動從高級數學運算生成高效GPU代碼的工具。我們還開放了其他庫,如Detectron,它支持目標檢測研究,涵蓋邊界框和目標實例分割輸出。請訪問我們的AI開發者網站facebook.ai/developers獲取完整列表,並在PyTorch和Caffe2博客中了解更多關於PyTorch的信息。

在接下來的幾個月中,我們將重構和統一Caffe2和PyTorch 0.4框架的代碼庫,以刪除重複的組件並共享抽象。其結果將是一個統一的框架,支持高效的圖模式執行、移動部署、廣泛的供應商集成等等。與ONNX等其他開放AI計劃一樣,我們也與其他公司和社區合作,為更多開發者提供這些加速研究的生產能力。首先,Microsoft計劃在他們的Azure雲和開發人員產品中支持PyTorch 1.0,包括Azure機器學習服務和數據科學虛擬機,Amazon Web Services目前支持最新版本的PyTorch,並針對P3 GPU進行了優化,並計劃在其雲產品中提供在PyTorch 1.0服務,其中包括其深度學習AMI(Amazon Machine Image)。

這只是開始,因為我們希望創建和分享更好的AI編程模型、介面和自動優化。 現在AI是Facebook的基礎技術,它使得Facebook的現有產品更好,並為全新的體驗提供動力。通過論文、代碼和模型開放我們的工作,我們可以與所有人工智慧研究和從業人員合作,以更快地推進現有技術水平並幫助以新方式應用這些技術。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 深度學習與神經網路 的精彩文章:

重磅:Caffe2與PyTorch強強聯合

TAG:深度學習與神經網路 |