機器學習有著很高的處理需求,而其通信成本意味著人們最終需要它在邊緣的地方(智能手機)發揮作用。
如今,人們正在進入由人工智能(AI)驅動的新一輪技術創新時代,機器學習處于技術最前沿。即使在今天,機器學習也是任何設備體驗的重要技術,為各種任務、功能、應用程序提供支持。從設備上的安全性(如面部解鎖、面部識別和指紋識別),到智能手機攝像頭和音頻功能(允許用戶通過諸如Socratic、Snapchat、FaceApp、Shazam等應用程序獲得更智能和有趣的體驗),經常使用各種基于機器學習的功能由消費者提供。
但是,對于創建大量數據的基于機器學習的任務,這些任務通常會轉移到云端進行處理,然后再通過操作發送回設備。例如,Socratic和Shazam都在云中使用機器學習處理,而不是在設備上。這就帶來了一個問題:在設備上進行機器學習處理會不會更簡單、更快捷?
能夠在設備或邊緣上執行基于機器學習的任務,而不是將其發送到云端進行處理,許多人將其描述為“機器學習演進的下一個階段”。有許多重要的限制,功耗、成本、延遲、隱私等限制因素使得在云端和設備之間來回傳輸的機器學習數據不切實際。幾年前,機器學習在邊緣領域似乎是一個“白日夢”,而設備的技術創新使它們能夠處理計算密集型任務。
云計算的約束
云端的機器學習處理的所有約束都是相互關聯的。
首先,處理云端的機器學習任務所需的大量數據的功率和成本是巨大的,更不用說通過不斷增長的帶寬需求產生的大量流量。早在2017年,就有人指出,如果每個人每天使用他們的Android語音助手三分鐘,那么谷歌公司必須將其擁有的數據中心數量翻一番。
而在2019年,谷歌公司可能解決了這一特殊挑戰——事實上,在最近的會議中,谷歌公司表示可以讓500GB語音輔助模式縮小到0.5GB,因此它可以在移動設備上完全運行。然而,它確實說明了云端的機器學習可以處理巨大基礎設施和經濟需求。邊緣的機器學習可以通過減少對基于云計算的機器學習所需的云計算服務和支持基礎設施的依賴來減輕這些負擔。
用于云端的機器學習處理的巨大經濟成本可能最好通過開發人員的經驗來說明。每臺設備在服務器上進行一秒鐘的計算大約需要0.00003美元。這顯然是一個非常小的成本,但是當考慮到開發商的目標是盡可能多的受眾時,其成本很快就會開始上升。例如,對于一百萬臺設備,服務器上一秒鐘的計算成本是28美元,即每分鐘1680美元。對于以1億用戶為目標的極其成功應用程序,開發商將支付每分鐘160萬美元的費用!
最重要的是,將云計算用于基于機器學習的任務根本不可行。即使距離很近,也需要大量的電力才能將數據發送到云端。在設備上,基于機器學習的處理所需的功率量要小得多。
在設備和云端之間來回發送數據將會產生明顯的滯后或延遲,大多數基于機器學習的應用程序,特別是那些對時間要求嚴格的應用程序來說都是不能容忍的。改善延遲開啟了基于機器學習的應用程序可以完成的新功能。例如,如果由于發送、處理、接收增強視頻所花費的時間而在云端完成機器學習處理,那么Snapchat AR體驗是不可能的。
通過逐步查看流程,可以最好地說明用于云端的機器學習處理的延遲問題。在當前的4G網絡上以一種方式(從設備到云端)啟動數據流提供50ms的理論延遲,這大約是4個視頻幀的延遲。然后,為了處理云端的機器學習數據,一個視頻幀可能延遲16ms。最后,從云端回流到設備是50ms的延遲。因此,整個過程大約有10個視頻幀的延遲,使得其延遲遠遠高于提供即時響應設備上的機器學習。5G技術確實有可能將此設備更改為邊緣處理,因為其部署只有1ms的延遲,但5G技術的廣泛應用仍需要一段時間。
最后,云計算與設備之間的持續交互創建了一個更容易受到隱私威脅的場景。用戶可以更容易地在他們的設備上處理他們的個人數據,而不是將其發送到云端。如果為機器學習任務生成的數據經過數百英里到達云端,然后返回到設備并做出決定,那么很有可能受到影響。基本上,防止攻擊用戶隱私的最佳方法是確保敏感數據不會離開設備。
開發人員希望機器學習處于邊緣
開發人員的需求最適合邊緣的機器學習處理。機器學習正在改變開發人員編寫算法的方式。在以往,針對特定用例需要人工編寫代碼,這非常耗時,并且使用機器學習有時容易出錯,開發人員不再需要編寫代碼。相反,他們創建了一個模型,并用數據集對其進行訓練,與人工編寫代碼相比,這種方法更加強大。
機器學習多年來一直為開發人員所熟知,但主要用于數據中心的高計算設備。直到最近,它才被用于移動設備,因為它們的計算效率變得更高,并且能夠運行更復雜的機器學習模型。將最新的設備創新與開發人員的需求結合起來,使機器學習成為了首選。設備上的機器學習處理通過實時處理和低延遲為開發人員提供即時結果,同時允許他們在沒有網絡連接的情況下執行機器學習任務。
云計算機器學習處理有時可能是適當的
盡管面臨各種挑戰,但數據處理的云計算模型意味著可以不斷更改和升級機器學習算法。因此,任何與云計算交互的設備也可以改進其處理機器學習任務的方式。此外,還有一些需要大量計算,并對時間不敏感的任務。因此,云計算的延遲并不是一個大問題。其例子包括無人機的數據處理,這些無人機為研究、工業、軍隊提供詳細圖像或視頻輸入,或者對患者進行放射學或X射線檢查等醫學成像。雖然仍然很重要,但邊緣的機器學習并不一定是所有基于機器學習的任務的“一刀切”解決方案。所有參與機器學習處理的團隊(從開發人員到原始設備制造商)都需要確定設備上的哪些任務能從邊緣的機器學習中獲益。
邊緣的機器學習是未來的需求
利用各種基于機器學習的任務和應用程序的移動設備已經被全世界數十億人使用。大多數情況下,需要設備上的實時響應,而邊緣的機器學習將提供這種響應。用戶和開發人員不希望依賴云計算技術,因為云計算的功率、成本、隱私和速度受到限制。對于智能設備來說,現在還處于起步階段,但機器學習將是未來發展的最佳選擇。