在過去十幾年中,云計算已經成為主流技術,改變了很多工業、政府和組織的IT服務的運營模式,也帶來了包括商業模式和技術上的諸多革新。但是,云計算面對現在和未來的IoT的應用,也有一些不足之處。IoT起源于1999年,當時RFID技術剛剛興起,英國一名從事智能家居產業科學家Kevin Ashton預見到,如果RFID聯接到每一個物件上,或者說家里的每一個家具、電器上,就會形成一個新的網絡。這樣的網絡可以和當時興起的Internet相媲美,所以給它取名叫 IoT。
20多年后的今天,IoT已經遠遠超越了智慧家庭、智能家居的應用,成為了一個集成物理世界和計算機世界的廣闊應用領域。它不僅可以感知,還可以進行計算和控制,我們可以看到智慧城市里出現了更多IoT的應用,包括工業物聯網(Industry IoT),自主駕駛和車載網,以及大規模的視頻監控和現在興起的元宇宙的底層VR、AR。這些新型的應用帶來了新的需求,比如如何識別、感知、進行網絡傳輸、計算和控制。這些需求都必須在非常智能化的方式下進行,而傳統的IoT技術無法勝任。因此,要支持先進的IoT應用,就需要新的IoT技術。IoT產生大量的數據,而AI的發展正是基于數據,兩者自然而然地結合在一起,誕生了人工智能物聯網AIoT。大規模的物聯網數據使得AI在物聯網領域的應用是非常蓬勃的,這樣的數據也給IoT的應用帶來很多新的發展。
那么,AI進入IoT的每一個領域之后會帶來什么?首先,分布式的IoT數據可以得到廣泛應用;其次,過去我們講的“Internet of Things”中的”Things”本身是沒有智能的,但是有了AIoT后,它可以嵌入到物聯網里的每一個元素中,使得”Things“變成了”Smart Things“,這樣它就不是一個簡單的設備,而是嵌入到計算和智能的一個系統,這使得實時地在局部做一些智能的決策成為了可能。那么,AIoT是如何發展起來的呢?AIoT的使能技術有很多,本次主要講云計算和分布式云,即Edge cloud,它帶來了實時性。同時Edge cloud上面的AI應用也變成了Edge AI,帶來了智能性。由于能被用戶直接存取,IoT設備將智能和計算帶給了用戶,所以邊緣計算也成為各個產業競爭的戰場。
眾所周知,邊緣計算主要作用是把互聯網所需要的數據和計算,從云端推廣到邊緣側來實現,讓實時數據處理和智能化成為可能。邊緣計算不僅減少了對網絡的需求,還降低了計算和決策所帶來的延遲,增加了實時的反饋。正因為有著諸多好處,邊緣云也叫做分布式云,成為了現在的主流技術。2021年Gartner把邊緣云稱作十大技術趨勢之一,各個主要的云服務廠商包括華為、微軟、Google和亞馬遜都在推廣分布式云技術,其中包含各自的平臺和開源的軟件,包括KubeEdge、Beatyl和OpenYurt,把在云上的Kubernetes技術推廣到邊緣,并能夠無縫地從云到邊緣實現任務的執行。
邊緣計算最開始是將云上資源受限的IoT設備的計算放到邊緣服務器上,主要還是做計算;有了AIoT之后,邊緣服務器除了做計算,還可以做AI方面的智能化決策和模型;下一步,邊緣的服務器和節點將互相配合,即合作式的邊緣計算,各個合作式的邊緣服務器上的智能將變成分布式的智能,這將成為邊緣計算的一個趨勢。
以定位為例,過去使用無線定位,如Wifi、藍牙,都是模型驅動,但是物理模型受到很多限制。其中最大的限制就是干擾,特別是在室外的環境下,在多人、多物件的情況下會很不準確。AI的興起讓數據驅動的方式變得非常流行,這種方式的好處是可以把AI模型放在一個邊緣節點上,獲得極佳的實時性。根據深度學習或深度神經網絡估算距離,可以推出信號強度和距離之間的一個非線性關系。同時因為受到大量數據的訓練,抗干擾性增強,減少誤差。
在食品安全領域,我們可以把一些比較昂貴的設備和技術通過EdgeAI部署到低成本的邊緣節點上。例如真假紅酒的檢測,通過普通的聲波技術,如揚聲器和麥克風,基于真實液體和假液體具有不同的深阻抗這一特征,來檢測出模型異常的假液體,這個方法的準確度可以達到92%-95%。另一個例子是食物新鮮度和真假比較,通過把手機上的低成本的照片傳送到昂貴的高頻光譜的圖像上,通過機器學習的方法來辨別和識別。這些技術都已經被廣泛應用,所以AI在邊緣計算領域的應用是一個非常重要的領域。
那么,如何把AI推廣到分布式的Edge AI上?可以通過合作式的邊緣計算,即邊緣的節點之間共享數據和計算資源,合作完成任務。在這個過程當中,節點要合作完成分布式任務,產生分布式智能。在過去的幾年當中,分布式智能的研究主要集中在三個方面,一是分布式的任務調度和任務執行,二是分布式機器學習,即分布式Edge AI,三是如何讓邊緣節點和分布式IoT設備在自主合作的情況下,用分布式的方法來解決問題。
分布式任務的執行,是對分布式智能最基礎的一個研究領域,即怎樣把在不同的邊緣服務器上執行的任務,通過分布式的調度共享在這些邊緣的服務器上來執行。一個復雜的任務,比如說車載網,需要識別交通流量和道路情況,要先分解成若干子任務,再部署到不同的邊緣服務器上,或者是部署到云上執行。在協作式邊緣計算場景中做任務調度,對任務調度系統和算法可伸縮性提出了新的挑戰:首先,和傳統的并行和分布式計算比較,邊緣計算任務是由終端設備提交,是從下往上的,且任務執行時產生的數據也是由邊緣節點產生的分布式數據;其次,邊緣網絡由不同的節點組成,是不穩定的、帶寬受限的,因此在任務執行方面的通信和計算資源也是耦合在一起的。
第二個是現在大家都在進行研究的分布式機器學習。眾所周知,分布式機器學習實際上不是一個新的領域,那如何將分布式學習推廣到在邊緣網絡上來進行?這就需要利用分散在各個邊緣節點上的本地數據和資源,來共同完成機器學習過程,主要分成模型訓練和模型推理。模型訓練,是指多個邊緣節點利用本地數據,協同訓練一個AI模型,然后聚合這些邊緣節點的模型參數;模型推理,是指單個和多個邊緣節點執行AI模型。在實時的邊緣場景下如何保證訓練和推理的性能、速度和準確度,實際上將面臨很多挑戰,下圖是在云上、數據中心進行分布學習和在邊緣網絡上進行分布學習的對比。
舉一個分布式合作的視頻監控的例子,現在的AI使能的視頻應用往往比較復雜,需要訓練和部署很多模型,組成一個pipeline,比如怎么定義、定位物體,怎么追蹤、重新識別、塑性識別、動作識別等。所以它需要多個網絡服務器之間的合作。下圖是一個合作式的視頻監控的框架,最底下是多個邊緣的服務器,服務器上的資源能夠被統一使用,形成一個統一的資源庫。通過資源管理和任務調度,對資源進行合理、有效地使用,從而加速開發和優化視頻應用的AI模型的性能。平臺層可以提供機器學習的服務、數據服務和可視化的服務,應用層可以實現視頻、監控的這些應用的調度。將上述框架部署在校園場景,可以監控校園里面的人流量、用電量等,同時也可以做一些資源感知的分布式的Egde,學習更好地利用邊緣資源去降低時延,保護隱私和數據分析。
第三方面就是自主的合作,即邊緣節點(如機器人、車)在動態的環境下能自主地做出決定并執行自己的任務,但又進行統一的合作。過去的研究中邊緣節點受限于一個集中的控制,即在發出指令之后,再進行統一的行動,感知并匯報它們的狀態。而在分布式控制場景中沒有集中控制,每一個邊緣節點都是自主的,它們的感知作用于環境,而環境是共享的,且環境變化也會帶給邊緣節點反饋,邊緣節點根據反饋進行進一步的學習和調配。這個時候我們要做的主要就是分布式的強化學習。就像人學習一樣,通過強化學習,車或者機器人就可以觀察周圍的環境,和其他的機器人彼此間共享這個環境和狀態來學會協作的策略。具體來說,分布式強化學習主要分為分布式的訓練和分布式的執行。我們采用的是全分布式,強化學習本身已經非常困難,需要降維和學習策略,那么要進行分布式的強化學習就變得更加困難。因為它不僅需要考慮同環境本身的交互,還需要考慮在這個環境當中各個機器人之間的相互影響。相互影響也對學習帶來許多挑戰:機器人策略的改變會帶來環境的不穩定性;機器人的分布式訓練需要單獨的獎勵反饋,環境給出的反饋怎么分解成對單個機器人的反饋,如何量化每個機器人對團隊合作的貢獻;機器人的數量增多會給學習過程帶來維數災難問題。
我們在多機器人協作方面做了很多研究和工作。我們用強化學習來訓練單個機器人跟蹤不同的規則的車道線。我們使用不同的顏色畫出車道線的邊緣,通過采用機器學習算法從圖像中去提取特征,并根據這些特征用強化學習來控制機器人按照軌跡來行走。針對多機器人合作場景,我們采用層級強化學習的方法來解決協作變道的問題。首先,把機器人的策略學習分成上下兩層,上層是機器人和機器人之間的合作策略怎么進行學習,包括去預測其他機器人的動作,比如說它要超車的時候,就要來預測前一個機器人會不會也超車,一旦它學習到做出決策之后,下層主要是通過單個機器人的動作執行,包括機器人的具體的速度和方向。那么和傳統的強化學習來比較,這樣分層的強化區域具有更快的訓練速度,也更適合分布式多機器人的協作。
在未來的邊緣計算當中,分布式智能的進行將依賴于合作式的邊緣計算。合作式邊緣計算目前的三大研究方向為任務調度、分布式的機器學習和分布式的自主學習。具體來說,我們將研究如何在實時的情況下做到可靠的機器學習,可靠的任務調度,乃至容錯等方面;如何在不同的機器人,不同的車、物體中進行個性化,并保護數據隱私;如何提升邊緣節點的決策速度,并通過離線計算和離線智能方面的研究減少邊緣節點對云或集中控制的依賴。