物聯網設備在瘋狂增長,預計到2020年全球物聯網設備數量將達到204億,同時,這些設備也在以超乎我們想象的速度產生數據。以智能攝像頭為例,隨著攝像頭的分辨率從1080P轉向4K,其一天所采集到的數據量將達到200GB。同樣,智能醫院、自動駕駛和智能工廠,它們一天所產生的數據將分別超過3TB、4TB和1PB。有人預測,到2020年,一個互聯網用戶平均每天將產生的數據量大概是1.5GB。由此可見,世界正在面臨著洶涌澎湃的數據洪流。
?如果將源源不斷產生的數據全部傳輸到云端,云端服務器將面臨巨大的存儲壓力,因此有人提出了邊緣計算的解決方案。所謂邊緣計算,是一種在物理上靠近數據生成的位置處理數據的方法。如何在網絡邊緣實現智能化,是駕馭數據洪流的關鍵環節之一,也是物聯網未來發展的重要趨勢。在物聯網時代,隨著數字化的轉型,它需要更敏捷地連接、更有效地數據處理,同時要有更好地數據保護。由于邊緣計算能夠有效的降低對帶寬的要求,能夠提供及時的響應,并且對數據的隱私提供保護,因此邊緣計算在今后物聯網的發展過程中會起到非常重要的作用。
邊緣計算不會替代云計算,二者會實現互補
既然邊緣計算如此重要,這是否意味著它可以替代云計算?邊緣計算不會代替云計算,二者之間會實現互補。因為邊緣計算所處理的數據是個局部的數據,并不能形成對于全局的認知。這些認知的形成還需要云計算平臺,在后端對各種不同的邊緣采集到的數據進行融會貫通。
他列舉了智能交通領域和雙十一的例子,智能攝像頭通過各種智能方法能夠識別出攝像頭前經過的各種人,以及對車輛的車型、車的顏色、車款以及車牌的識別,但是并不能了解車的軌跡。如果要形成車輛的完整軌跡,還是需要有云計算平臺的支持。雙11天貓商城上銷售峰值超過25億/秒,如此大量的計算也需要一個很大的云計算平臺在后面支撐。
物聯網發展可以分成三個階段:互聯、智能、自治。物聯網系統發展到自治階段同樣是端到端的一個系統,邊緣計算和云計算二者之間會協同工作。
人工智能和負載整合的結合會在邊緣計算系統里發生
分析數據洪流你會發現,以前需要處理的數據很多都是結構化數據,通過Excel表格或者簡單關系型的數據庫就可以對其進行維護和管理。但今后,物聯網會帶來越來越多的非結構化數據,我們要從非結構化的數據中發現內在的關聯,就需要用到人工智能技術。
在2012年以前,人工智能做圖像識別的準確度低于人類。虛線的部分代表人的識別水平,這樣一個曲線代表機器識別的錯誤率。到2012年,AlexNet等一大批新的人工神經網絡的出現,使得人工智能的水平上了一個新檔次。在人工智能新技術的推動下,機器進行圖像識別的水平開始超過人類。
雖然人工智能現在已經取得了非常大的突破,但同樣還面臨著很多挑戰。最大的就是,人工智能在進行處理時,還需要消耗大量的計算資源和存儲資源。以百度搜索為例,要完成一次搜索需要完成千億億次計算,在推理階段即使去處理一個非常典型的224×224分辨率的圖片,像AlexNet或者是GoogleNet這樣一些人工智能網絡,處理起來計算量同樣是要超過10億次。如此大量的計算,需要一個很強大的計算芯片支撐,所以說,人工智能的發展實際上對芯片提出了更高的要求。
在芯片研制的過程中,芯片的工藝是決定性因素,英特爾是摩爾定律的創始者,也是摩爾定律的踐行者。從22納米到14納米,從14納米到10納米的過程中,從半導體晶體管的密度變化來看,密度增長速度實際超過2倍,雖然英特爾的工藝迭代時間延長了,但是從更新速率來看,仍然是按照摩爾定律的速度向前發展。摩爾定律還在不斷推動半導體工藝的進步,同時為人工智能等新的計算模式提供源源不斷的計算力。因此,人工智能的應用對邊緣計算提出了更高的要求,對邊緣計算設備的演進起到了推動作用。
在邊緣側趨向負載整合是物聯網演進的一個必然趨勢。原來在不同設備上分立的負載會越來越多地通過虛擬化等技術,整合到一個單一的高性能的計算平臺上,來實現一個綜合的復雜的功能,各個功能子系統既能分享設備提供的計算,存儲,網絡等資源,同時還能具有一定的獨立性,避免彼此的相互影響,從而可以簡化系統架構,降低系統總體。同時,負載整合實際上也為邊緣計算的實現以及為實施人工智能的應用提供了條件。整合后的設備既是邊緣數據的匯聚節點,同時也是邊緣控制的中心,這為邊緣智能提供了處理所需的數據,同時也提供了控制的入口。因此英特爾認為人工智能和負載整合的結合,會在今后的邊緣計算的系統里發生。
利用硬件優勢,給用戶提供全面合適的解決方案
物聯網系統一定是一個邊緣協同的端到端系統,人工智能會在物聯網系統里廣泛應用,不僅是在前端,也在后端。物聯網中不同的網源所需要的計算力需求不同,再加上人工智能部署,需要不同特性硬件平臺以及軟硬件協同優化。英特爾提供了端到端的、業界領先的人工智能全棧解決方案,包括:涵蓋至強處理器、至強融核處理器、英特爾Nervana神經網絡處理器和FPGA、網絡以及存儲技術等領先而完整的硬件平臺,以及多種軟件工具及函數庫,優化開源框架。值得一提的是,對于邊緣計算而言如何平衡功耗和計算力所面臨的一大挑戰,憑借Movidius領先的單瓦計算能力,英特爾可以為業界提供低功耗、高性能的邊緣計算解決方案。對于前端的攝像機來說,對功耗要求嚴格,使用Movidius這樣的低功耗芯片更合適;對于設備偏向于邊緣域的連接相機的設備或者服務器服務中心運行算法的,使用FPGA更適合。
目前針對人工智能應用也涌現出AI芯片設計公司,AI芯片未來會是會怎樣的發展態勢?張宇認為,“現實系統要解決的問題不同,以及在系統里所處的位置不同,對硬件要求、計算要求也不一樣,用戶要根據不同的要求來選擇比較合適的硬件架構。當下的人工智能很多的應用實際是圍繞著圖象處理,即使像AlphaGo,Alphago下圍棋也是把棋盤轉變成二維的圖像作為輸入,然后用神經網絡分析得到最終結果,包括權重網絡、估值網絡等,最后得到下一步棋放在哪個位置贏面最大的結論。但這是不是代表了人工智能的未來?很難說。原因在于以后用人腦或者用機器分析的問題的種類很多,有些可以歸結到圖像,有些不可以,如果歸結到圖像可以用卷積來做,如果不能歸結到圖像是不是有另外一個更有效的架構?隨著對處理問題的復雜度越來越高、處理問題的種類越來越多、對問題的認識越來越清晰,可能在今后會找到適于某種特定應用、特定問題的應用架構。”
有了邊緣計算和云計算,開發者做設計的時候更關注如何界定邊緣計算和云計算?采用哪個更合適?英特爾認為,我們有一個共性的技術需要理解和掌握,就是怎么樣使計算架構變得更容易被軟件定義。不管是什么樣的業務類型都可以更靈活的在云端、在邊緣側,甚至在終端節點上運行。如果沒有軟件定義的靈活性,我要把工作負載從云端遷移到前端是非常困難的事情,從芯片廠商角度來說我們要做一個這樣的考量。
網絡優化是人工智能運用于邊緣計算的關鍵
人工智能理論基礎尚不完備,這就造成目前很多人工智能很大一部分計算是冗余的,如果想將人工智能用到邊緣側,網絡優化是一個關鍵的技術。英特爾的網絡優化思路分三個方面:低比特、剪枝和參數量化。
所謂低比特,在傳統的深度學習領域,參數往往是用32比特的單精度浮點來進行表述,但是我們看到,在很多應用場景里,比如在安防領域、機器學習以及機器視覺領域,實際上精度要求沒有那么高,英特爾把整個參數的精度在不影響最終的識別率的情況下,從32比特的單精度浮點,轉變成16比特的半精,甚至于轉變成8比特的整精或者是2比特的整精。隨著比特數量不斷地降低,存儲量和計算量都降低了,這樣就可以在原來相對計算能力有限的平臺上做更復雜的操作。
剪枝也類似,如果把一個人工智能的網絡比喻成一個樹枝,這個樹的每個不同的分杈,實際上對應的是不同的檢測特征。對于不同的應用場景關注的特征不一樣,很可能這些處理和檢測特征對最終檢測是沒有效果的。對于沒有效果的分支,完全可以剪掉,剪枝能夠極大地降低計算。
量化就是參數可以根據它的一些特征做聚類。一類參數可以用相對簡單的一些符號或者一些數字來表述,這樣能夠極大地降低人工智能對于存儲的要求。對這樣的優化思路,英特爾在不斷地發展人工智能技術和硬件配合,形成很好的互動。
壯大生態系統,才能更好地推動發展
邊緣計算是一個很大的生態,任何一家公司都無法提供這個產業鏈里所涉及的上下游所有環節。在這個產業鏈,英特爾定位自己是一家芯片公司,提供計算、通信、存儲所需要的芯片解決方案。僅憑我們的一己之力不足以實現邊緣計算產業的宏大目標,我們需要眾多類型的公司和機構來參加,就像各位在ECC邊緣計算聯盟所看到的,有來自學術機構的參與,有來自政府機構的支持,這樣才能齊頭并進,才能夠真正地讓人工智能的潛力全部發揮出來,讓人能夠憑借人工智能技術做到更多以前我們做不到的事情。
邊緣計算需要芯片,但是光有硬件還不夠,還需要軟件進行配合。張宇提出,“我們還為用戶提供圍繞芯片相關的底層軟件和中間件元素。利用我們提供的零件能夠幫助合作伙伴更好地開發它們的相應產品。”目前英特爾與華為和沈陽自動化研究所已經達成了合作,華為剛發布了基于英特爾處理器的邊緣網關產品AR550i,利用這個產品,華為在整個產業鏈起到ODM、OEM的角色。在本次邊緣計算產業聯盟峰會上,英特爾聯合沈陽自動化研究所展示邊緣計算測試床——智能機器人,目的是驗證基于深度學習的機器視覺方案在實際系統中的工作效果。
我們對于垂直行業的認知肯定沒有行業合作伙伴那么深,在這方面我們和他們之間是很好的配合作用,我們提供解決方案,他們提供他們的應用方案,大家一起構架滿足特定垂直行業要求的整體方案來加速它的落地。英特爾除了可以在邊緣計算的節點持續做研發外,還具有云計算的能力以及在網絡通信基礎設施上的能力,我們可以更宏觀、更整體的服務于整個行業的需求。”