在邊緣裝置執行經過訓練的機器學習模型,可以減少對雲端的需求並降低延遲。操作張量(Tensor)中存取的資料是機器學習的基礎,在嵌入式系統的限制下進行有效的張量操作,為邊緣裝置的挑戰所在。
縮小機器學習模型
(承前文)即使擁有訓練有素的模型,邊緣機器學習的性能表現仍十分依賴可用的處理資源。嵌入式系統設計的首要目標始終是盡可能使用較少的資源,為了解決這種情況,研究人員試圖尋找縮小訓練模型的方法。
兩種常見的方法是「量化」(Quantization)和「剪枝」(Pruning)。量化涉及簡化浮點數或將其轉換為整數,量化後的值所占用的記憶體較少。為了確保準確度,在訓練過程中使用浮點數來儲存每個節點在層中的權重,因為它們提供了最大精確度。目標是在不影響整體精確度的情況下,降低浮點數的精確度,或在訓練後將浮點數轉換為整數。在許多節點中,精度的損失對結果影響不大,但記憶體資源的減少可能相當顯著。
剪枝涉及刪除那些權重過低、對結果沒有顯著影響的節點,開發人員可以選擇根據權重的大小進行修剪,僅刪除值接近零的權重。在這兩種情況下,模型都需要進行迭代測試,以確保其保持足夠的準確性以發揮作用。
加速硬體的張量操作
一般而言,半導體製造商會採取三種方法來加速機器學習模型:
.建立傳統但大規模並行的架構。
.針對張量最佳化開發新的處理器架構。
.在傳統架構旁添加硬體加速器。
每種方法各有其優點,最適合邊緣機器學習的方法將取決於該解決方案所需的整體資源(記憶體、功率),同時也取決於邊緣裝置的定義,其可能是資源有限的嵌入式解決方案,如感測器,但也可能是運算模組。
大規模並行架構增加了執行任務所需的多個實例函數。乘積累加運算(Multiply and Accumulate, MAC)即為訊號處理中所使用的一種函數,GPU通常為大規模並行,並且因其可實現的高效能而在市場上占有一席之地。同樣,現場可程式化邏輯閘陣列(FPGA)由於其邏輯結構支援並行性,因此成為受歡迎的選擇。儘管數位訊號處理器(DSP)是專為數學而設計,但DSP尚未被視為是AI和機器學習的好選擇。
同質多核處理器是並行性如何提供效能的另一個例子,具備2、4或8核心的處理器比起單核處理器具有更優秀的效能。由於該架構仍可擴展,RISC-V在AI和機器學習的多核心設計中越來越受到青睞。這種可擴展性允許將自定義指令實例化為硬體加速區塊。目前已經可以看到採用RISC-V以加速AI和機器學習的例子。
市場上也出現了大型和小型半導體供應商為張量處理所設計的新架構,這裡的權衡(Trade-off)可能是考量新指令集架構的編碼難易度及效能增益。
MCU針對機器學習應用持續優化
無論老牌或新創的半導體業者都在以各種方式探索AI加速的可能,隨著需求增加,每家企業都希望能在市場上分一杯羹。若將邊緣機器學習視為純粹的嵌入式系統設計挑戰,那麼其中許多解決方案的應用可能將受到限制。
原因很簡單。嵌入式系統仍然受到限制,每個嵌入式工程師都知道,目標並非追求更高的效能,而是剛好夠用的效能。對於深度嵌入式的機器學習應用,可能更傾向於使用具有硬體加速且熟悉的微控制器(MCU)。
由於機器學習執行的性質,硬體加速將需要深度整合至微控制器架構中。微控制器製造商正積極開發整合機器學習加速的新解決方案,某些開發的細節已經公開,但樣品仍需要等上幾個月的時間。
與此同時,這些製造商繼續為在其現有微控制器裝置上運行的模型提供軟體支援,包括模型訓練和模型大小優化。
應對邊緣機器學習的需求
邊緣機器學習具有不同的樣貌,一些應用或將能使用高效能的64位元多核心處理器,有些則是考量到預算而採用更符合成本需求的硬體。
未來幾年,大規模的物聯網將見證數十億智慧裝置上線,其中許多裝置皆已內建機器學習功能。半導體製造商應當已經預想到這種轉變,現在可以看到他們正在摩拳擦掌準備應對持續上升的需求。
(本文由安富利Avnet提供)
嵌入式系統決定邊緣裝置ML效能(1)
嵌入式系統決定邊緣裝置ML效能(2)