天天看點

E百科 | 第1期 基于MEC的邊緣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正滲透到社會生活每個角落。

E百科 | 第1期 基于MEC的邊緣AI服務

圖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移動通信技術系統的重要技術之一。

為了避免技術叙述上的枯燥,先舉一個通俗的例子。假設我們有兩個快遞件要發,一個是從深圳發往北京,一個是從深圳福田區發往同城的寶安區。第一個快遞會先從深圳發往某地的快遞集散中心(例如鄭州集散中心),然後再發往北京,最終通過逐級快遞點送到使用者手中,這種方式是沒有問題的。但是如果按此方式運送第二個快遞,那麼第二個快遞也會先從福田區發往鄭州集散中心,然後再傳回寶安區,最終送到使用者手中。

E百科 | 第1期 基于MEC的邊緣AI服務

圖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帶來的技術紅利。

E百科 | 第1期 基于MEC的邊緣AI服務

圖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容器狀态監測和相關日志服務

E百科 | 第1期 基于MEC的邊緣AI服務

圖4 Astraea AI模型封裝

實時車牌識别DEMO

為了驗證基于MEC的AI服務的技術能力,以下基于Astraea實作了一個簡單的車牌識别(License Plate Reader)服務示例。實驗中使用了Raspberry Pi 4模拟終端攝像頭裝置。由于目前Raspberry Pi沒有5G通信子產品,是以實驗中額外購置了5G WiFi将5G信号轉化為可供Raspberry Pi連接配接的WiFi信号,用于模拟5G通信鍊路。

E百科 | 第1期 基于MEC的邊緣AI服務

圖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處理能力。

E百科 | 第1期 基于MEC的邊緣AI服務

圖6 基于Astraea的實時車牌識别服務

總結

關于阿裡雲EdgePlus官方公衆号,了解更多邊緣計算技術資訊,更有粉絲專屬福利等你來領

基于MEC等邊緣雲基礎設施的能力,AI及其他計算任務可以解除安裝到離使用者最近的計算節點執行,在處理時延、處理功耗、網絡帶寬等方面達到較優的權衡。通過Astraea,模型開發者能将已有模型一鍵部署到指定的MEC等邊緣雲節點,提供易部署和低延遲時間AI服務能力。Astraea的願景是希望在5G時代,AI服務在邊緣的部署與運維就像如今使用CDN分發圖檔和視訊一樣簡單。

對這個項目感興趣的夥伴,歡迎聯系付哲[email protected]

文章參考:

[1] 5G之花,

http://www.imt2020.org.cn/en/category/65591

[2] Astraea: Deploy AI Services at the Edge in Elegant Ways,

https://ieeexplore.ieee.org/document/9284292 2021極速奔跑吧活動火熱進行中,點選了解詳情

繼續閱讀