Categories
程式開發

對話京東:開發者需對端側AI研發多些耐心


隨著物聯網的快速發展,越來越多的用戶希望將 AI 能力下沉到邊緣層,讓邊緣設備能夠自動處理關心的一些數據,再把結果上報到雲平台。這樣做既節省了資源,又提高了運算效率。目前,很多廠商都推出了針對此場景的工具、平台,InfoQ希望通過該選題讓廣大開發者了解廣大公司的實踐落地以及技術選型等信息,推動這一領域的發展。

隨著技術進步,手機等移動設備已成為非常重要的本地深度學習載體,然而日趨異構化的硬件平台和復雜的終端側的使用狀況,讓AI技術在端側的應用能力頗受挑戰。端側模型的推理往往面臨著算力和內存的限制,為了能夠完整的支持眾多硬件架構,並且實現在這些硬件之上人工智能應用性能的優化,不少科技公司開啟了深入研究。本文,InfoQ採訪了京東雲與AI視覺研發部的產品經理張志強,了解京東AI技術在端側的應用。

AI技術在端側能解決什麼問題?

在探討這個話題之前,我們需要先明確端側的定義。採訪中,張志強表示,端側其實是相對於雲中心側來講的。雲中心側其實是一種集中式服務,所有採集和感知到的視頻、圖像數據都通過網絡傳輸到雲中心側進行後續處理。雲側的資源高度集中並且具有很高的通用性,但是隨著IoT設備和數據的指數爆發式增長,雲側的集中式計算模型慢慢暴露出了很多不足,比如數據處理的實時性,網絡條件製約,數據安全等。

AI技術用於端側也就是我們常說的邊緣計算,張志強表示,這種模式可以更好的支持AIoT場景,具有如下優點:一是AI技術用於端側可以第一時間對收集的數據進行處理,不需要通過網絡上傳到雲側的處理中心,極大加快了系統響應也減少了系統處理延遲,5G技術的普及也為端側處理提供了保證;二是端側計算可以更高效的處理有價值的關鍵數據(大約20%),其餘的數據(大約80%)只是臨時性的,在端側結合AI能力,不僅可以更及時處理數據,而且減輕網絡帶寬的限制和緩解對中心側數據存儲的壓力;三是在端側的AI技術可以高效地對用戶的源數據進行處理,將一些敏感的數據進行清洗和保護,端側設備只將AI處理後的結果進行上報。

總的來說,AI在邊緣側的執行可以實時進行數據處理,實時響應,有效降低因數據傳送到雲計算中心而導致的延遲。

目前,主要的應用是物聯網的邊緣計算,京東對內、對外都有一些落地案例,例如:無人售貨機和智能結算台上使用了AI的商品檢測技術,包括顧客所選取的商品SKU等,主要採用的是端側的AI能力;以及在智慧園區裡進行基本的人臉結構化、人體結構化、車輛結構化,還有基於視頻分析的周界安全檢測、物體遺留等場景。某些場景不僅結合了邊緣計算的AI能力,同時也使用了雲端的AI能力進行二次分析,採用的形式是雲端協同。在一些更複雜的場景,比如智慧園區,智慧社區,智慧城市的項目落地中,大多都是採用的端雲協同的應用形式。

端側AI的研發難點

眾所周知,端側的技術難度是如何在資源有限的硬件環境裡滿足業務對性能的要求,無論是存儲、內存,或者計算資源都比較有限。張志強表示,端側對AI模型提出了更高的要求,比如對模型生命週期的管理,發布,回滾,灰度,版本管理等,如何方便模型的升級更新需要建立一套完善通用的機制和平台。另外,邊緣計算的硬件設備種類很多,在初期對不同硬件架構的學習、適配和模型遷移工作會佔用比較長的時間,比如有很多之前自定義的模型算法算子不支持,需要算法側重新設計和開發,無形中增加了AI在端側應用的複雜度。

為此,經過前期積累,京東也針對市面上流行的不同邊緣計算硬件產品進行了抽象和平台化,屏蔽底層差異化,統一建設了從算法開發、模型適配、本地測試,部署上線等的一系列CI/CD機制,實現快速交付。

過往,不少開發者都會遇到離線訓練和在線推理結果不一致的問題。對此,京東方面發現訓練和推理的結果不會完全一樣,但是基本一致。可以從以下三方面考慮:一是在模型設計上盡可能輕量化。在保證模型性能的前提下,使網絡參數減少的同時,不損失網絡性能,盡可能的降低模型的複雜度以及運算量;二是性能與精度進行權衡,找到平衡點;三是檢測兩者的預處理與後處理有無差異,可以在網絡處理前後進行預判和比較。

京東端側AI技術實踐

2019年中,京東雲與AI視覺研發部開始規劃在端側場景下的AI視頻分析平台mVCG-Air,與該版本相呼應的是在雲端場景部署的mVCG-Pro,二者統稱為mVCG(mega -Video Computing Grid),也就是超大規模的視頻計算分析網絡。

對話京東:開發者需對端側AI研發多些耐心 1

mVCG-Air技術整體架構圖

mVCG-Air是AI視頻分析處理能力在端側應用的典型產品,經過快速迭代mVCG-Air目前已經在不同場景落地。張志強表示,該平台解決了在落地場景中接入的設備多,同時對視頻分析的時效性很高,雲端處理受網絡帶寬有滯後影響的問題。

此外,mVCG-Air結合了目前性能較高的端側計算設備,同時內部全部使用了京東智聯云自研的AI核心技術,所有算法模型針對端側計算設備進行了全面優化和加速,開發者可以輕鬆實現定制化、快速交付。

有必要統一模型研發流程

綜合整個實踐過程,張志強表示,非常有必要統一所有模型的研發流程,使得模型研發之初的特徵工程再到模型訓練,再到推理上線等做統一的規劃。比如,京東同一個模型未來可能會在不同的場景都需要部署落地,有的是基於邊緣計算的mVCG-Air部署,有的是基於雲中心的mVCG-Pro進行部署,那麼就需要有統一的模型訓練和轉換機制。同時,同一個模型有可能會在不同的邊緣硬件上進行部署,在模型設計之初就需要考慮後續的一致性等問題。京東內部已經沉澱了一套完整的模型研發測試流程,使得一個模型可以輕鬆同時落地不同的異構硬件設備上。

資源調度設計

關於資源調度,其實包括邊緣側mVCG-Air和中心側mVCG-Pro的調度,也包括mVCG-Air管理的設備之間的調度。張志強表示,在mVCG內部有個很重要的模塊組件,就是模型倉庫,與其相關聯的有算力調度,任務調度等。

對話京東:開發者需對端側AI研發多些耐心 2

算法倉庫體系架構圖

算法倉庫體系架構使得智能分析能力不再固化在mVCG的產品中,實現“一套平台,多種算法”,具有系統高可用、資源高利用率、算法靈活開放等優勢。基於算法倉庫可以對mVCG所有算法模型進行統一高效管理,包括模型管理、模型灰度部署、模型發布、模型升級、模型算法版本管理。每個模型都有自己的畫像Model Profile,通過分佈式組件,根據模型畫像和當前業務負載實現模型算力的靈活分配和調度,所有模型算法是基於插件機制實現靈活部署、自動分配、快速加載、高效運行和無感知版本更新。

硬件選型

事實上,軟件層面的定制優化永無止境,這包括模型加速推理,模型量化剪枝,讓模型體積更小,佔用資源小同時又不失精度。當然,軟件層面的優化工作也需要取決於邊緣側設備的開放程度。

除了軟件層面的能力,AI所需的超強算力必須有合適的硬件與之相匹配。張志強表示,京東雲與AI視覺研發部mVCG-Air在研發過程中使用了ARM架構的CPU+NPU,現在不斷有更新、更快的硬件加速卡或者是端側產品推出,選取性價比最高,同時最適合業務場景的才是最好的。

接下來,張志強透露,mVCG-Air將繼續賦能感知設備以智能,並融合雲端物聯網和信息網的數據,實現對人(人臉、人體)、車、物體、場景、行為的全息感知,同時深入挖掘多維數據的潛在價值。應用的重點包括京東內部的很多重要場景,也包括對外的場景,比如智慧園區,智慧城市,智慧車站,智慧警務等。

未來規劃

邊緣計算作為傳統雲計算的重要補充,各自發揮特長,隨著端側設備處理能力的大幅度提升,基於AI的智能設備正在發揮越來越重要的作用。

AI和端側的結合其實屬於AIoT的一部分,因為智能物聯網AIoT是在2018年興起的概念,目前各類AI公司、芯片公司都處在百家爭鳴的階段,市場空間非常大,包括端側人工智能在建築人居、工業製造、智慧城市等不同產業領域的瞭望,都充滿了期待。

採訪最後,張志強表示,2020年,AIoT正在發生的一個趨勢是人工智能和設備的加速融合。大多數情況下,端側人工智能計算和雲側計算將會長期共存,甚至採用混合的方式,一部分由設備自身的AI能力及時執行運算,另一部分通過統一云中心完成。現在,業界對於端側人工智能討論比較多的還是軟硬件選型、動態調度和垂類落地的問題。作為雲計算的下沉計算模型,端側的人工智能發展還需要一些時間和耐心。

嘉賓介紹:

張志強,京東雲與AI視覺研發部產品經理,主要負責人工智能計算機視覺領域相關產品的設計和打造。加入京東之前,先後在國內外知名企業從事大數據平台和搜索推薦的開發工作。