AI 與邊緣計算結合的雙向優化

在面向物聯網、大流量等場景下,爲了滿足更廣連接、更低時延、更好控制等需求,雲計算在向一種更加全局化的分佈式節點組合形態進階,邊緣計算是其向邊緣側分佈式拓展的新觸角。

作者|華爲雲原生團隊

來源丨容器魔方

以物聯網場景舉例,設備產生大量數據,上傳到雲端進行處理,會對雲端造成巨大壓力,爲分擔雲端的壓力,邊緣計算節點可以負責自己範圍內的數據計算。

同時,經過處理的數據從邊緣節點匯聚到中心雲,雲計算做大數據分析挖掘、數據共享,同時進行算法模型的訓練和升級,升級後的算法推送到邊緣,使邊緣設備更新和升級,完成自主學習閉環。

對於邊緣AI總體來說,核心訴求是高性能、低成本、高靈活性。其技術發展趨勢可總結爲以下幾點:

  • 可編程性、通用性;

  • 伸縮性,同一個架構支持不同場景

  • 低功耗,適應更多邊緣場景的環境和電力要求

  • 軟硬件深度結合

  • 高效的分佈式互聯和協作計算能力

筆者分別從邊緣計算AI加速、端/邊/雲協同以及邊緣計算AI框架等三個部分繼續深入剖析AI應用與邊緣計算結合之後的雙向優化,進一步優化AI應用的用戶體驗。

01

邊緣計算AI加速

針對基於邊緣計算場景進行AI加速,筆者參考相關論文認爲大致可歸結爲以下四個方面:

雲邊協同(雲端訓練、邊緣推理)

爲彌補邊緣設備計算、存儲等能力的不足,滿足人工智能方法訓練過程中對強大計算能力、存儲能力的需求,研究人員提出雲計算和邊緣計算協同服務架構。如下圖所示,研究人員提出將訓練過程部署在雲端,而將訓練好的模型部署在邊緣設備。顯然,這種服務模型能夠在一定程度上彌補人工智能在邊緣設備上對計算、存儲等能力的需求。

模型分割(雲邊協同推理)

爲了將人工智能方法部署在邊緣設備,如下圖提出了切割訓練模型,它是一種邊緣服務器和終端設備協同訓練的方法。它將計算量大的計算任務卸載到邊緣端服務器進行計算,而計算量小的計算任務則保留在終端設備本地進行計算。顯然,上述終端設備與邊緣服務器協同推斷的方法能有效地降低深度學習模型的推斷時延。然而,不同的模型切分點將導致不同的計算時間,因此需要選擇最佳的模型切分點,以最大化地發揮終端與邊緣協同的優勢。

模型裁剪

爲了減少人工智能方法對計算、存儲等能力的需求,一些研究人員提出了一系列的技術,在不影響準確度的情況下裁剪訓練模型,如在訓練過程中丟棄非必要數據、稀疏數據表示、稀疏代價函數等。下圖展示了一個裁剪的多層感知網絡,網絡中許多神經元的值爲零,這些神經元在計算過程中不起作用,因而可以將其移除,以減少訓練過程中對計算和存儲的需求,儘可能使訓練過程在邊緣設備進行。在參考文獻中,作者也提出了一些壓縮、裁剪技巧,能夠在幾乎不影響準確度的情況下極大地減少網絡神經元的個數。

設計輕量級加速體系架構

在工業界,有很多公司開始研究低功耗加速芯片。如寒武紀公司推出的思元系列及華爲公司推出的昇騰系列,能夠適配併兼容多樣化的硬件架構,進而支撐邊緣計算典型的應用場景。

在學術界,對於邊緣AI硬件的設計工作主要集中在提高深度神經網絡及相關算法如CNN、FCN和RNN等的計算性能和效率。研究人員利用神經網絡的冗餘和彈性等特性來優化計算操作和數據移動,以降低NN算法在專用硬件上的功耗並提高性能。下表總結了一些低功耗機器學習處理器的相關情況。

AI在過去幾年中,爲互聯網應用、工業互聯網、醫學和生物學及自動駕駛等領域帶來了突飛猛進的進展。同時,隨着邊緣計算的逐步成熟,業界必將更加關注邊緣計算AI加速方面的研究進展。

由於邊緣計算場景的特點,其硬件的異構化程度會顯著高於傳統數據中心,對現有計算框架也會有非常大的挑戰。如何快速支持異構的計算芯片並保證計算的高效,也非常值得產業內的研發力量持續投入。

02

端/邊/雲協同

資源協同

對於邊緣計算,需要對計算資源和網絡資源有全局的判斷,比如邊緣設備、邊緣節點及中心雲資源的使用情況,站在全局角度,進行資源的合理分配,確保性能、成本、服務最優。

數據協同

邊緣AI會處理用戶的數據,可以從兩個維度來考慮。

一方面,橫向考慮,邊緣的網絡環境多種多樣,終端用戶設備具有移動性,可能會從一個服務節點移動到另一個服務節點,從一個邊緣移動到另一個邊緣,從WiFi切換爲5G移動網絡,甚至從一個運營商切換到另一個運營商,那麼用戶在舊的環境中產生的數據如何與新環境中的AI程序進行同步會成爲一個問題。這裏的數據協同不僅需要技術上的支持,更需要商業模式上的支持。

另一方面,縱向考慮,如下圖所示,用戶在邊緣側產生的數據按照隱私級別可以分爲不同類型,如User-Private、Edge-Private、Public等,這些數據可以自下而上分層儲存在雲邊協同系統中的不同層級的數據庫中,同時也可以對應不同算力支持的邊緣AI的訪問權限,例如可以允許雲上運行的AI程序讀取Public數據來訓練一個通用的模型,在邊緣側的AI可以讀取Edge-Private數據來在通用模型的基礎上訓練邊緣模型等等。

算力協同

通過合理的模型拆解,將不同的服務模型根據資源、成本、質量、時延等要求部署在合適的位置。通過完成的協同計算框架,確保各子模型之間的協同處理。比如結合產品設計,我們可以將簡單的識別推理全部置於端側設備,如需要判斷視頻中的物體屬於動物還是植物等。

但是進一步的識別功能,我們可以結合邊緣側的推理能力,識別動物爲貓科動物或犬科動物等。如果用戶需要更加精細的識別,我們可以將邊緣側的識別結果及處理之後得到的特徵數據發送至雲端,結合雲端完善的數據模型和知識體系,將該貓科動物判定爲是東北虎還是華南虎。這樣通過端、邊、雲三者的協同,能夠在極大保證用戶體驗的同時,合理的使用各類資源。

合理利用算力協同,也能夠做到在邊緣側進行訓練。目前工業界還沒有成熟的模式,但學術界有相關的研究。如下圖所示的ICE智能協同計算框架,將邊緣AI的訓練分爲三個階段:

  • 第一階段爲預訓練階段(pre-train),雲上的應用可以通過讀取雲端存儲的公共數據,來訓練一個通用的模型,這是邊緣AI的底座,如果沒有云端強大算力的幫助,只靠邊緣側算力是難以得到比雲端訓練更優秀的AI模型。

  • 第二階段將通用模型下發至邊緣側,讀取邊緣私有數據,通過轉移學習(Transfer Learning),來得到邊緣模型。

  • 第三階段讀取增量數據,利用增量學習(Incremental Learning)生成最終邊緣模型,這個最終邊緣模型就可以用於用戶側的推理了。

這種三步學習的算力協同的模式,可以更好地滿足邊緣智能的個性化服務需求。

通過資源協同、算力協同以及數據協同,邊緣智能能夠高效合理的利用端、邊、雲的各類資源,極大地優化AI應用在邊緣計算場景下的用戶體驗,進一步放大AI應用的商業價值。

03

邊緣計算AI計算框架

在雲數據中心中,算法執行框架更多地執行模型訓練任務,在訓練過程中需要接收大規模、批量化的信息數據,比較關注訓練的迭代速度和收斂率等。而在邊緣設備上更多的是執行預測任務,輸入一般是實時的小規模數據,大多數場景下執行預測任務,因此更加關注於預測算法執行速度及端側或邊緣側的資源開銷。

目前業界針對邊緣計算場景,也提出了針對性的設計方案,例如用於移動設備或嵌入式設備的輕量級解決方案TensorFlow Lite,Caffe2和Pytorch等。

TensorFlow Lite

TensorFlow Lite 提供了轉換 TensorFlow 模型,並在移動端(mobile)、嵌入式(embeded)和物聯網(IoT)設備上運行 TensorFlow 模型所需的所有工具。

特點:

  • 只含推理(inference)功能,使用的模型文件需要通過離線的方式訓練得到。

  • 最終生成的模型文件較小,均小於500kB。

  • 爲了提升執行速度,都使用了ARM NEON指令進行加速。

  • 支持跨平臺,包括Linux、Android和iOs。

Caffe2

Caffe2 是一個兼具表現力、速度和模塊性的深度學習框架,是 Caffe 的實驗性重構,能以更靈活的方式組織計算。Caffe2可幫助開發人員和研究人員 訓練大規模機器學習模型,並在移動應用中提供 AI 驅動的用戶體驗。現在,開發人員可以獲取許多相同的工具,能夠在大規模分佈式場景訓練模型,併爲移動設備創建機器學習應用。

特點:

  • 可以在iOS系統、Android系統和樹莓派(Raspberry Pi)上訓練和部署模型;

  • 使用比較簡單,只需要運行幾行代碼即可調用Caffe2中預先訓練好的Model Zoo模型;

  • NVIDIA(英偉達),Qualcomm(高通),Intel(英特爾),Amazon(亞馬遜)和Microsoft(微軟)等公司的雲平臺都已支持Caffe2;

PyTorch

PyTorch 是最新的深度學習框架之一,由 Facebook 的團隊開發,並於 2017 年在 GitHub 上開源。PyTorch 很簡潔、易於使用、支持動態計算圖而且內存使用很高效,因此越來越受歡迎。

特點:

  • 改進現有的神經網絡,提供了更快速的方法——不需要從頭重新構建整個網絡,這是由於 PyTorch 採用了動態計算圖(dynamic computational graph)結構,而不是大多數開源框架(TensorFlow、Caffe、CNTK、Theano 等)採用的靜態計算圖;

  • 強大的社區支持,facebook的FAIR強力支持,FAIR是全球TOP3的AI研究機構。PyTorch論壇,文檔,tutorial,一應俱全。FAIR的幾位工程師更是全職維護開發,github上PyTorch每天都有許多pull request和討論。


支持iOS系統、Android系統運行

這些邊緣AI執行框架通過優化移動應用程序內核、預先激活和量化內核等方法來減少執行預測任務的延遲和內存佔用量。

此外,邊緣計算在AI訓練提速、安全信息預處理、邊雲一體的AI算法上仍處於起步階段。設計面向輕量級、高效和可擴展的邊緣計算AI框架是實現邊緣智能,極大拓展更多邊緣AI場景落地的重要步驟。

04

結語

AI和邊緣計算已獲得國內外學術界和工業界的廣泛關注和認可,並且已經在很多商業場景下發揮作用。將AI應用部署至邊緣已成爲提升智能服務的有效途徑。

儘管目前邊緣智能仍處於發展的初期,然而,筆者相信,邊緣智能夠產生極大的促進效果,併成爲各行各業的黏合劑和智能產業發展的催化劑,促進多個行業的升級轉型。

感謝閱讀,歡迎擴散傳播!感謝!

邊緣計算社區:促進邊緣計算領域知識傳播,中立,客觀,如果您關注邊緣計算、5G、物聯網、雲原生等領域請關注我們。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章