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

簡介: 阿里雲邊緣計算團隊付哲解讀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正滲透到社會生活每一個角落。json

圖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服務。curl

站在用戶的角度,AI服務(尤爲是推理階段)一般可分爲在端側或者在雲側執行。手機等終端設備的計算能力逐漸加強,使得一些簡單的AI模型跑在終端上成爲了可能。然而,終端設備有限的功耗是始終沒法忽略的問題,很多運行在終端上的AI模型每每會遇到發熱、降頻、耗電過快的問題;此外,數量更大的其餘終端設備,例如攝像頭、傳感器以及其餘IoT設備,其受限的計算資源使得他們難以運行常見的端側AI模型。另外一方面,雲側雖然算力強大,可是因爲其執行的AI模型因爲離端側更遠,時延沒法獲得保證;即便對時延並不敏感,在萬物互聯場景下若是海量端側設備都依賴雲中心的AI服務的話,它們的帶寬流量會對現有網絡帶來不小的衝擊。ide

爲了解決這一困境,基於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)。目前在阿里雲邊緣計算團隊從事邊緣雲資源調度和創新應用方面的研究。

原文連接本文爲阿里雲原創內容,未經容許不得轉載

相關文章
相關標籤/搜索