Arm正在運用以支援AI快速發展為設計目標的解決方案,來打造邁向未來的路徑。其中的一項挑戰,是讓相關社群能夠取用新興的技術。在這篇部落格文章中我們將介紹Arm機器學習推論諮詢工具(Arm ML Inference Advisor,Arm MLIA),並讓大家看到如何運用它來提升Arm IP的模型效能。我們同時也會解釋一些相關的前置作業,以及為何這些作業如此重要。
機器學習中未知的硬體部分
只要問過任何設計網路的人,就知道這件事相當具有挑戰性,你必須瞭解一些複雜的概念才能搞定。在機器學習的領域裡,許多人熟悉如TensorFlow 與PyTorch等高階的應用程式介面,這些強大的工具協助我們針對使用場景設立流程:訓練、微調與產生runtime。
當為了部署而對模型進行編譯時,一般的假設是任務已至尾聲;你在訓練過程中針對模型的參數進行微調,而你的機器學習流程也已完成最佳化。當你把這個模型部署到目標硬體將會如何呢?會影響整個處理器的效能嗎?今天我們就來了解這個任務的其他環節。
低階處理器架構不是個簡單的題目,要知道它的重要性不難,難在了解「為何」它很重要。對機器學習開發人員而言,了解執行推論的硬體或許不是優先事項。同時,嵌入式軟體開發人員要瞭解機器學習模型最佳化領域,可能頗為艱難。
有了Arm機器學習推論諮詢工具,我們的目標是縮短其間的落差,並讓所有抽象層級的開發人員,都能取用Arm的機器學習IP。在深入探討該工具的功能之前,我們先花點時間了解此一硬體觀點。
從雲端到邊緣再到終端裝置,Arm致力於為機器學習推論帶來極大的效能、功耗與面積效率。
- 我們最佳化神經網路的運算子,讓機器學習工作負載的運行更快速。這意味著我們檢視核心的實作,並使用Arm指令集來取代通用的呼叫。這可以為Arm IP對運算子進行加速。請參考CMSIS-NN 以及Arm NN TensorFlow Lite Delegate的實例。
- 我們在效能的分析上投入許多時間,以了解其瓶頸所在。我們藉由掌握指令週期在每一層所花的時間並執行記憶體管理,以極大化硬體與軟體的資源使用效率。
- 我們進行模型調節,以便極小化記憶體的面積或推論的時間。例如,使用量化方法可以縮小模型的大小,同時維持精確度。
這些面向將對神經網路的效能造成顯著的差異。其中一個實例是Arm Ethos處理器,這是一種神經網路處理器(NPU),可搭配Arm Cortex-M處理器核心。此一NPU的設計用意是在嵌入式裝置執行機器學習網路,意味著在這個空間內載入越多的運算子,你的網路運作效能就會越好。
舉例來說,Ethos-U65結合具備AI功能的Cortex-M55處理器,與現有的Cortex-M CPU相比,針對量化的關鍵詞辨識Micronet模型,機器學習的效能可提升高達1,916倍。
在Micronet模型上使用Ethos-U55帶來的效能提升。
現在我們已經了解對硬體目標進行模型最佳化如此重要的原因,現在就來談談如何開始強化神經網路的效能。
簡化硬體效能分析與最佳化
Arm MLIA是一種分析神經網路如何在Arm架構上運作的工具,它還能將最佳化參數套用到已知的模型。它的誕生源自於將Arm在這些領域的努力結果集結為一套工具的需求,並讓具備不同技能組合的各種開發人員都能使用。兩個主要的輸入資料包括模型檔案(Keras或TensorFlow Lite),與你打算部署的硬體配置。
Arm MLIA會分析這個組合,並針對如何改善該模型提出建議。它使用兩個基本指令:檢查與最佳化:第一個指令讓我們可以檢視主要的參數,以及此一複合結果對於推論代表什麼意義;第二個指令則會把最佳化的參數套用到模型上。下圖描述如何套用這些功能。
只需不到短短一分鐘...
輸入您的信箱與ID註冊即可享有一切福利!
會員福利
免費電子報
會員搶先看
主題訂閱
好文收藏