E百科 | 基於MEC的邊緣AI服務

  • 2021 年 2 月 24 日
  • 筆記

簡介: 阿里雲邊緣計算團隊付哲解讀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 //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 //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)。目前在阿里雲邊緣計算團隊從事邊緣雲資源調度和創新應用方面的研究。

原文鏈接

本文為阿里雲原創內容,未經允許不得轉載