由微軟打造的深度學習開放聯盟ONNX成立
導讀 | 如今的微軟已經一躍成為全球市值最高的高科技公司之一。2018年11月底,微軟公司市值曾兩次超越了蘋果,成為全球市值最高的公司,之後也一直處於與蘋果膠著的狀態。市場驚歎微軟是一家有能力改造自己並取得成功的公司!自微軟CEO薩堤亞·納德拉於2014年2月上任以來,微軟就處於穩定復甦的狀態中,而納德拉上任之後最震驚業界的舉動之一就是對外宣佈微軟愛Linux。如今,繼Linux之後,微軟更愛下一個“作業系統”:ONNX。 |
ONNX(Open Neural Network Exchange)是2017年9月由微軟與Facebook、AWS共同創立的開放神經網路格式交換計劃,其目的是提高神經網路軟體之間的互操作性,也就是可以用不同的神經網路框架開發軟體,但經過ONNX的格式交換後就可以轉換成通用軟體執行在Windows、Linux以及蘋果OS硬體及雲服務之上。ONNX吸引了AMD、ARM、NVIDIA、INTEL、高通、華為、HPE、IBM等晶片及伺服器巨頭,以及百度、騰訊、阿里等網際網路巨頭,還有MathWork、CEVA、Synopsys等專業軟體和積體電路公司等20家全球企業。
2018年3月,微軟宣佈將在下一個Windows版本中原生支援ONNX硬體加速功能,這把ONNX推向了上億的Windows裝置,包括IoT邊緣裝置、HoloLens、2合1筆記本以及桌面PC等。這意味著資料科學家和開發者用Facebook、AWS、BAT等公司的深度神經網路框架所開發的模型,可以直接部署到上億的Windows裝置中。ONNX還原生支援Linux Ubuntu虛機、Azure ML服務、Windows Server 2019虛機,並通過轉換程式連線蘋果等裝置。
2018年11月26日,ONNX研討會首次來到中國。微軟專案總經理Venky Veeraraghavan在2018 ONNX中國研討會後接受採訪時表示:AI想要成功,必須要軟體和硬體兩手抓,兩手都要硬。這可以類比商用作業系統的思路:一處開發的應用軟體,可以處處執行在不同硬體上。
人工智慧已經成為新一輪科技革命和產業變革的核心驅動力,正在對世界經濟、社會進步和人類生活產生深刻的影響。普化永道曾預測,由人工智慧所帶來的全球GDP增長,將在2030年達到14%,即15.7萬億美元。但Gartner的2018年CIO議程調查卻顯示,全球僅有4%的CIO實施了人工智慧專案,儘管還有46%的CIO已經開發了人工智慧相關計劃。
換句話說,人工智慧在落地方面還遇到很多挑戰,其中之一就是不同深度神經網路框架之間缺乏互操作性。簡單理解,用一種深度神經網路框架訓練出的模型,並不能直接用在其它神經網路框架所支援的執行平臺(即推理平臺),例如Caffe2訓練出的模型僅能執行在Caffe2支援的硬體上,這相當於間接創造了人工智慧的“孤島”。而開源的神經網路框架都多少種呢?主流的開源神經網路框架至少有十餘種。
除了神經網路框架之間的差異化處,神經網路軟體如果想要執行的好,還需要與不同硬體系統之間的打磨。NVIDIA GPU、Intel CPU等都提供了神經網路的硬體加速功能,HPE、華為、IBM等Linux和Windows伺服器以及微軟的Windows裝置等,都需要在晶片、板卡和作業系統及應用軟體之間進行整體優化,才能達到流暢的人工智慧應用執行效果。
Venky Veeraraghavan表示:“在談到深度學習的時候,會涉及到海量的資料處理,這就意味著需要有極高速或者可加速的硬體裝置。但開發者會遇到不同的硬體介面、不同的介面和不同的格式,這是很困擾的事情。ONNX在硬體和軟體之間提供了通用的語言和介面,讓硬體和應用軟體有機結合起來,執行在任何地方。”
微軟ONNX技術進展ONNX帶來的互操作性可以讓各種開發創意更快速地投入生產環境。利用ONNX,資料科學家可以為其工作選擇最適合的框架,而開發者花費更少的時間就能訓練出適合生產環境的機器學習模型,並且將其部署到雲端或者是邊緣。同時,ONNX也使得開發者能更靈活地在不同框架間切換,為不同的場景選擇最佳的深度學習模型。
目前,在多種人工智慧開發框架中都能建立ONNX模型,包括PyTorch、Chainer、CNTK、MXNet、ML.Net、TensorFlow、Keras、SciKit-Learn,還在不斷增加。此外,為ONNX模型實現視覺化和加速的開發工具生態系統也已初具規模,已經出現了針對典型場景預先訓練的ONNX模型。2018 年 9 月,ONNX 社群釋出了 1.3 版本的模型標準。
作為ONNX的主要支持者,微軟的主流產品,包括Bing、廣告、Office、視覺服務等,後臺都開始採用ONNX格式。2018年10月,微軟釋出了ONNX Runtime執行時預覽版,這是一個高效能的機器學習推理引擎,可以用最有效的方式利用各種晶片加速器,從而實現跨多種硬體平臺和裝置執行神經網路演算法的結果。
微軟ONNX Runtime相容ONNX 1.2版本,自帶支援CPU和GPU的Python包,可在Azure機器學習服務或任何執行Ubuntu 16的Linux裝置上進行推理運算。ONNX Runtime的釋出進一步擴充套件了微軟對ONNX的支援,除了讓ONNX模型推理可以在多種平臺和裝置上執行外,ONNX Runtime全面覆蓋和支援ONNX定義的所有運算子,能為一系列不同平臺和硬體的組合提供多種定製化的加速器,從而保證推理運算的最佳效能表現。INTEL、NVIDIA都在積極將ONNX Runtime整合到硬體加速器中,目前INTEL的MKL-DNN、nGraph編譯器以及NVIDIA優化的TensorRT推理引擎都已完成整合。
在2018年3月釋出的Windows機器學習(Windows ML)為ONNX提供了作業系統層面的支援。通過Windows ML,開發人員可以在雲服務中訓練模型並將其匯出為ONNX格式,之後就可以通過Visual Studio在Windows應用程式中內建ONNX模型。現在,Windows ML可利用任何支援DirectX的GPU為其提供硬體加速,從伺服器到物聯網的各個版本的Windows都能提供這項功能。
ONNX模型可以通過Azure 機器學習(Azure ML)、ONNX Runtime和Windows 機器學習等方式部署到Azure雲中、Windows 10裝置、Linux裝置或使用ONNX社群提供的轉換器部署到其它平臺。在通過ONNX建設開放互操作人工智慧生態系統的同時,微軟也在將Azure打造成最佳人工智慧雲平臺,從預先訓練好的模型到幫助構建模型的雲服務,Azure提供了完善的機器學習平臺。
為了簡化語音、視覺、語言相關機器學習解決方案的開發,微軟在認知服務中提供了一系列強大的預訓練模型。微軟在雲端提供了多樣化的機器學習服務,從Azure Databricks、Azure機器學習服務到機器學習虛擬機器,可以滿足不同規模的使用需求。為了幫助開發者更快速地構建和訓練模型,微軟還提供了大規模GPU叢集上的分散式深度學習能力。一旦完成了模型的訓練,開發者可以自由選擇部署到本地、雲端,或者是包括離線環境在內的邊緣環境中。
除了ONNX Runtime,微軟也釋出了ONNX.JS,讓web開發者可以直接在瀏覽器中執行訓練好的ONNX模型,不但能夠減少伺服器到端的通訊需求、保護使用者隱私,還提供了免安裝、跨平臺的瀏覽器內建機器學習體驗。ONNX.JS支援CPU和GPU執行,可以藉助一系列優化技術減少CPU和GPU間的資料傳輸,減少GPU處理的迴圈次數,從而將效能最大化。
開放標準需要中國的參與對微軟而言,ONNX研討會在中國的落地不僅能夠讓中國的開發者和企業獲得更加方便的深度學習框架格式,同時也能為ONNX創造更大的發展空間。
Veeraraghavan表示:“在開源標準的範疇之下,如果沒有中國的參與,沒有中國企業的採納,實際上是沒有意義的,因為很難想象某個開源標準僅僅是美國標準而沒有得到中國的認可和採納,這也是我們為什麼花費時間和精力來中國組織ONNX活動的原因。我們希望藉此機會將中國本地的夥伴和客戶都吸引到ONNX聯盟中,最終實現一個統一的、開放的軟體平臺和標準,讓各種不同的神經網路模型可以處處執行。”
據微軟人工智慧平臺團隊首席專案經理Prasanth Pulavarthi介紹,有超過20多家相關的中國企業和合作夥伴來到首屆中國ONNX研討會,就重要的技術發展方向以及具體規則或者標準制訂進行了探討。“阿里巴巴、騰訊、華為和百度等都已經加入了ONNX,這是非常有意義的,中國將在ONNX的工作中發揮重要作用。”Pulavarthi表示。
現在ONNX並不能解決所有的痛點和問題,但處在快速發展和成熟當中,隨著市面上越來越多的神經網路模型出現以及越來越多的客戶在使用,為ONNX提供了學習、反饋、總結的機會。Pulavarthi強調,ONNX的工作也不能憑藉微軟一己之力完成,更多是一個社群的共同努力,ONNX本身就是以社群開展工作的聯盟,IBM、Facebook等都貢獻了轉化器。
ONNX在中國的落地不僅要吸引中國的大小企業,還要有政府以及大學學界的關注和參與。“總而言之我們的目的就是希望為整個AI的世界搭建一個統一、開放的平臺,讓所有各方都有機會真正參與進來。”Veeraraghavan強調。
微軟對ONNX的“愛”是真愛。除了把上億Windows裝置以及Windows產品與服務都貢獻出來,微軟還投入真金白銀和時間精力,搭建起了一個團隊負責在中國AI開源社群進行推廣。該團隊負責人、微軟中國人工智慧產品部主管唐猛表示,“接下來微軟會在ONNX推廣、宣傳、社群關係建設方面有較大的投入。我們的工作還在起步階段,在未來將會聽到更多關於微軟在AI開源社群方面投入的訊息。”