簡介: 阿里雲邊緣計算團隊付哲解讀5G下熱門場景:邊緣AI。作者:阿里雲付哲,計算機科學與技術專業博士後,在流量檢測、資源排程領域有深入研究,其論文《Astraea: Deploy AI Services at the Edge in Elegant Ways》曾入選2020年IEEE邊緣計算國際會議(IEEE International Conference on Edge Computing)。目前在阿里雲邊緣計算團隊從事邊緣雲資源排程和創新應用方面的研究。
5G關鍵能力近年來,5G已成為各國戰略競爭制高點和未來社會發展、資訊化的關鍵技術。目前,各國紛紛加快5G戰略和政策佈局。2019年工業和資訊化部正式向中國電信、中國移動、中國聯通、中國廣電發放5G商用牌照,中國正式進入5G商用元年,這比原計劃商用提前了一年。最新報告顯示,截至2020年12月,我國三大運營商5G使用者已經超過了2.5億。隨著5G技術和商業化的不斷普及,5G正滲透到社會生活每個角落。
圖1 5G之花-5G關鍵能力
目前對5G的認知,關注的焦點是極致的速度。但對於5G更多能力的願景,現階段涉及還比較少。行動通訊專家在5G標準設立之初,為了形象地描述5G關鍵能力,畫出了一朵“5G之花”[1],花朵的每一瓣都表示一種核心技術能力,如圖1所示。
在5G的場景中,不僅是道路速度快了10倍,道路寬了100倍,道路承載的流量、移動性、各種效率等指標也均有明顯的提升。很多人都存在一個疑問,這些嚴苛的能力真的能實現嗎?例如端到端1毫秒的時延,5G通訊怎麼可能時延比固網通訊還要低?這裡需要澄清一下,5G毫秒級的時延指的不是遠距離傳輸的時延。以光速計算,1毫秒時間資訊也只能傳遞300000*1/1000=300公里的距離。無論是5G,還是6G、7G,也是無法突破這一物理定律的。而透過5G網路定製的低時延切片以及多接入邊緣計算等技術,將核心網等下沉到市、縣、鄉等離終端使用者百公里級的範圍之內,毫秒級時延也並不完全是一句空談。
多接入邊緣計算(MEC)多接入邊緣計算(Multi-access Edge Computing)的概念最早提出於2009年卡耐基梅隆大學所研發的cloudlet計算平臺,並逐漸被世界各個標準協會納入通訊標準,發展演進成為5G移動通訊技術系統的重要技術之一。為了避免技術敘述上的枯燥,先舉一個通俗的例子。假設我們有兩個快遞件要發,一個是從深圳發往北京,一個是從深圳福田區發往同城的寶安區。第一個快遞會先從深圳發往某地的快遞集散中心(例如鄭州集散中心),然後再發往北京,最終透過逐級快遞點送到使用者手中,這種方式是沒有問題的。但是如果按此方式運送第二個快遞,那麼第二個快遞也會先從福田區發往鄭州集散中心,然後再返回寶安區,最終送到使用者手中。
圖2 5G與MEC
大家一定會覺得這種方式瘋了,同市的快遞為什麼不直接在市內排程就好,而要先運送到千里之外的集散中心?現實很殘酷,5G之前的網路(包括5G非獨立組網),資料基本上都是按照接入網->承載網->核心網的處理方式,最後再由核心網決定怎麼去排程和處理。即使是同一個城市、同一個基站下的兩個終端間的通訊,還是得先上報到核心網處理再回來。這一去一回,使用者感知的時延明顯增大了。而MEC技術,可以將計算能力下沉到基站側,終端使用者的業務請求可以呼叫就近的算力解決,而不用一層層上報至核心計算中心,再下發處理,從而能夠降低網路傳輸時延,並且減少湧入中心雲的網路流量。
基於MEC的邊緣AI服務5G普及之後,大部分的計算互動都可以直接在MEC節點處進行處理,由於節省了承載網、核心網的介入,大大降低了網路時延,同時節省了網路頻寬資源。高畫質影片、VR/AR、雲遊戲等應用預計將會隨著5G的普及迎來下一波爆發。本文將會介紹5G場景下的熱點應用之一:邊緣AI服務。
站在使用者的角度,AI服務(尤其是推理階段)通常可分為在端側或者在雲側執行。手機等終端裝置的計算能力逐漸增強,使得一些簡單的AI模型跑在終端上成為了可能。然而,終端裝置有限的功耗是始終無法忽略的問題,不少執行在終端上的AI模型往往會遇到發熱、降頻、耗電過快的問題;此外,數量更大的其他終端裝置,例如攝像頭、感測器以及其他IoT裝置,其受限的計算資源使得他們難以執行常見的端側AI模型。另一方面,雲側雖然算力強大,但是由於其執行的AI模型由於離端側更遠,時延無法得到保證;即使對時延並不敏感,在萬物互聯場景下如果海量端側裝置都依賴雲中心的AI服務的話,它們的頻寬流量會對現有網路帶來不小的衝擊。
為了解決這一困境,基於MEC的邊緣AI服務應運而生。MEC節點的計算能力雖然比不上中心雲,但是相較於終端裝置還是要高不少的,部分MEC節點也包含GPU、FPGA等計算加速硬體。解除安裝到邊緣節點的AI服務不僅僅能夠節省終端到雲中心的通訊成本,而且能夠提供低至毫秒級的網路通訊時延。
計算解除安裝是邊緣計算的主要功能之一,為簡化這一場景,我們僅以單任務決策為例進行建模分析。對於終端使用者來說,如果滿足以下條件(1),那麼將AI計算從端裝置解除安裝到邊緣執行,在任務完成時延上有明顯體驗上的提升的。
C / Pd > C / Pe + D / Bc (1)
類似地,當條件(2)滿足時,將AI計算任務從端裝置解除安裝到邊緣執行,可以降低計算能耗。
C × Ed / Pd > C × Ee / Pe + D × Ec / Bc (2)
以上公式中各引數含義如下:Pd: 端裝置處理速度Pe: 邊緣雲伺服器處理速度C: 計算任務量D:需要傳輸的任務大小Bc: 端裝置到邊緣節點的頻寬大小Ed: 端裝置處理功耗Ee: 邊緣雲伺服器處理功耗Ec: 端裝置到邊緣節點的通訊功耗
邊緣AI部署專案Astraea人工智慧模型的開發人員和資料科學家通常不知道或不太關心他們的模型在生產環境中是如何服務的。例如,在邊緣部署模型時,必須考慮到不同框架的AI模型需要不同的部署方式,同時也需要一個API伺服器將AI模型對外提供給終端使用者。此外,邊緣人工智慧服務還需要全生命週期管理的能力,包括版本升級、灰度釋出、自動縮放等,以及靈活的排程能力,以最佳化使用者體驗、計算成本和流量成本之間的權衡。為此,阿里雲邊緣計算團隊提出了Astraea[2] — 一個適用於邊緣計算場景的新型AI服務部署平臺,它簡化了部署階段,同時充分利用了邊緣計算的優勢。透過邊緣AI部署專案Astraea,模型開發者能夠自動化地完成AI服務在MEC等邊緣節點的部署,並將AI服務的推理過程轉化為Restful API介面,供終端裝置呼叫,使得終端裝置能夠充分利用5G/MEC帶來的技術紅利。
圖3 Astraea 總體架構
Astraea具有以下優點。首先,Astraea的使用者只需要提交不到10行的模板配置,Astraea能夠在1分鐘時間內構建映像,在5分鐘時間內完成服務邊緣部署。其次,Astraea支援Scikit learn、TensorFlow、Pythorch、ONNX等多個人工智慧框架,可以一鍵化為AI服務自動生成Restful API。藉助Astraea以及阿里雲邊緣節點服務,AI服務可以下沉到距離使用者10公里的範圍內。同時,Astraea基於阿里雲邊緣節點服務能力實現運維自動化。
Astraea可以基於邊緣節點服務平臺實現以下能力:映象倉庫:作為邊緣AI映象的儲存倉庫,並提供映象分發加速能力應用釋出:提供邊緣AI服務的一鍵部署和灰度釋出功能監測運維:負責邊緣AI容器狀態監測和相關日誌服務
圖4 Astraea AI模型封裝
實時車牌識別DEMO為了驗證基於MEC的AI服務的技術能力,以下基於Astraea實現了一個簡單的車牌識別(License Plate Reader)服務示例。實驗中使用了Raspberry Pi 4模擬終端攝像頭裝置。由於目前Raspberry Pi沒有5G通訊模組,因此實驗中額外購置了5G WiFi將5G訊號轉化為可供Raspberry Pi連線的WiFi訊號,用於模擬5G通訊鏈路。
圖5 原型驗證中使用的實驗硬體
由於Raspberry Pi採用的是ARM架構CPU,算力較弱,實測在Raspberry上直接執行車牌檢測的程式,採用預訓練好的模型,需要大概13s的時間才能識別出一張圖片中的車牌數字及其位置。顯然,想利用Raspberry Pi本身實現實時的車牌識別是不可能的。
下面,我們將車牌識別這一AI服務部署至邊緣節點。在專案目錄執行:
astraea build
該步驟將車牌識別的AI模型打包成AI服務映象,按照使用者定義的配置檔案暴露出API介面,並推送到到邊緣節點的映象倉庫中。
接下來,執行:
astraea deploy
該步驟中,Astraea根據配置檔案中指定的排程域、規格和數量資訊將AI服務排程到指定的節點。例如,可以將服務部署到了位於上海寶山區的邊緣節點,能夠為上海寶山區的使用者提供就近訪問的低時延車牌識別能力。
Astraea能夠按照模板定義好的模型呼叫方法自動生成Restful API,返回服務IP地址以及埠號,提供介面供使用者呼叫。本示例中,直接呼叫以下介面,就能獲得車牌識別的結果。
curl -g http://IP:port/predict -d 'json={"jsonData": "img_base64"}'
被呼叫後,API會返回車牌號識別結果,包括車牌字串、位置以及置信機率)。該服務同時支援多車牌識別,如果一張圖片裡有多個車牌,那麼結果將以json陣列形式返回。一個API返回示例如下:
{ "code": 0, "request_id": "xxx-xxx-xxx", "data": { "msg": {}, "ndarray": [{ "confidence": 0.8996933911527906, "rect": [120.92, 103.3, 73.57536804199219, 23.4], "res": "\u9c81A88888" }] },}
此外,Astraea還提供了基本的監控功能,訪問以下介面,能獲得諸如QPM、平均推理耗時、模型呼叫次數等統計資訊。
curl -g http://IP:port/monitor
返回值如下:
{"AvgQPM":33.35,"AvgReqTime":"0.009s","Counter":3022}
該返回值表示該AI服務平均每分鐘被呼叫33.35次,平均處理時延為9ms,一共被呼叫了3022次。
將Astraea自動生成的API介面進一步封裝,就能夠實現視覺化、以及實時的車牌識別。例如,下圖是基於Raspberry Pi 4的實時車牌識別結果。可以看到,基於部署在邊緣節點邊緣車牌識別服務,算力較弱的終端裝置(例如Raspberry Pi、老舊攝像頭等)也能實現強大而又低時延的AI處理能力。
圖6 基於Astraea的實時車牌識別服務
總結基於MEC等邊緣雲基礎設施的能力,AI及其他計算任務可以解除安裝到離使用者最近的計算節點執行,在處理時延、處理功耗、網路頻寬等方面達到較優的權衡。透過Astraea,模型開發者能將已有模型一鍵部署到指定的MEC等邊緣雲節點,提供易部署和低時延AI服務能力。Astraea的願景是希望在5G時代,AI服務在邊緣的部署與運維就像如今使用CDN分發圖片和影片一樣簡單。
作者:阿里雲付哲,計算機科學與技術專業博士後,在流量檢測、資源排程領域有深入研究,其論文《Astraea: Deploy AI Services at the Edge in Elegant Ways》曾入選2020年IEEE邊緣計算國際會議(IEEE International Conference on Edge Computing)。目前在阿里雲邊緣計算團隊從事邊緣雲資源排程和創新應用方面的研究。