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