如何客製化企業 RAG 知識庫?— 從資料庫到知識整合的實戰技術
|

【Arm的AI世界】以ExecuTorch與TOSA讓PyTorch在Arm平台順利運作

   

作者:,Arm

Arm與Meta合作在ExecuTorch這項新型端對端解決方案上支援Arm平台,促成適用於PyTorch裝置內的人工智慧(AI)。Arm大力提倡以有效率且輕鬆的方式開發AI工作負載,持續致力於讓PyTorch最新、最出色的模型在Arm平台上執行。

PyTorch一直以來都是研究團隊眾多新型類神經網路的首選平台,不過它需要大量人力的手動流程,才能轉換這類工作負載到Arm平台上有效率的執行。這歸因為匯出流程限制以及各種機器學習(ML)運算的長尾碎片效應,導致難以對照至嵌入式及資源受限系統。

Meta發佈的ExecuTorch程式碼基底,是以PyTorch 2.0出色的開發成果為基礎建構而成,能夠在任何裝置更輕鬆擷取及執行最先進的網路,例如伺服器領域的Arm CPU、行動領域的Arm CPU和GPU,以及嵌入式應用 Cortex-M微處理器和Ethos-U NPU。

我們與Meta密切合作在ExecuTorch導入對Arm裝置的初步支援,以我們大力投資的、以Tensor運算子集架構(Tensor Operator Set Architecture,簡稱TOSA)為基礎,來擷取類神經網路,並利用Ethos NPU在行動及嵌入式平台加速關鍵的ML工作負載。

如今我們發佈適用於ExecuTorch的TOSA編譯流程和執行階段委派功能(compilation flow and runtime delegate)搭配有限的原型支援的Ethos-U55,讓圖形能夠從PyTorch的Python環境,直接匯出至Corstone-300等配備Ethos-U的平台。我們期待持續推動此項工作,在一系列ML使用場景中,促成能夠順利運作的匯出路徑。

這對開發人員有什麼意義?

對一般的 PyTorch 使用者而言,現在可以擷取少量、但持續增加的網路,做為獨立模型,在配備Cortex-M及Ethos-U的平台上有效率的執行。

這裡有兩項主要組成要素:

  1. 透過提前流程擷取類神經網路做為獨立檔案。以下影像為簡易版的匯出流程。如需詳細資訊,請參閱「匯出至 ExecuTorch」(Exporting to ExecuTorch)文件。
  2. 以裝置內ExecuTorch執行階段,將工作派遣至Cortex-M及Ethos-U。
  3. ExecuTorch API能夠分派部分的圖形,並使用一組完整的CPU運算子,以便增量卸載至Ethos-U。這非常有利於開發網路,並將網路轉移至邊緣裝置。

舉例來說,TOSA/Ethos-U55流程不需要一次編譯整個圖形,並可漸進地新增支援,特別適用於大型及複雜圖形。

這樣的彈性也直接為PyTorch使用者提供效益。一致的ExecuTorch API可讓使用者編譯及部署模型,並在其中將部分圖形盡可能分派給強大的Ethos-U55,其餘圖形則仍在Arm CPU執行。這種作法可以提升開發人員體驗,除了能夠快速進行迭代和模型覆蓋,也能提升效能,無需變更使用者程式碼。

簡易的流程範例

這就像在Python環境的現有PyTorch模型中新增少量幾行程式碼一樣簡單,將完整的模型表示擷取為.pte檔案。這項流程對新模型開發至關重要,除了開發用於標準網路,也用於編寫自訂的torch.nn.Module網路處理其他工作負載。

如需更多完整範例,了解如何在Arm Corstone-300或其他配備Ethos平台上部署此流程,我們準備了範例應用程式,嵌入匯出的.pte檔案,並將其於Ethos-U55 NPU上執行。

量化

許多Arm平台都需要量化,以實現Ethos加速或新CPU指令的完整效能效益,因此我們正在努力導入符合TOSA規範的量化及圖形使用量。ExecuTorch EXIR圖形基礎設施讓我們能夠輕鬆剖析完整的量化圖形,並讀取所有必要的量化資訊,以便在處理TOSA量化降階的過程中重新調整參數。

我們進行PyTorch FX圖形至TOSA的初始量化支援時,使用新的PyTorch 2匯出訓練後量化(Post-Training Quantization)功能取得量化的MobileNetV2範例,涵蓋Add、Linear、Convolution 及ReLU等常見運算子。由於採用非常簡易的API,我們能以XNNPACK量化器子類別的TOSA 量化流程,以大約3到4行程式碼完成量化步驟。

若要支援更複雜的圖形,也可建構自訂量化器類別,以滿足大部分的神經網路模型需求。這類圖形會自然送入Ethos-U編譯器以產生模型,並於Ethos-U硬體上直接執行。

MobileNetV2簡易範例(PyTorch->TOSA->Vela)顯示在符合TOSA規範的神經網路加速器硬體上執行PyTorch量化模型的可行性及簡易性。Arm、Meta及廣大PyTorch社群未來將繼續擴大支援從PyTorch到TOSA的運算子降階。此外Arm也將繼續開發新流程,支援TOSA提供可靠方式以新增新的編譯目標。

接下來的發展

請瀏覽我們提供的示範(點此連結),了解使用PyTorch及ExecuTorch以TOSA將圖形匯出至Arm平台的各種可能發展,並和我們分享您的看法。

Arm期待新增更多網路及運算子,並與Meta密切合作擴大支援完整的ExecuTorch功能集。我們期待未來世界能以PyTorch及ExecuTorch輕鬆開發機器學習模型,並將TOSA緊密的部署在數十億個Arm架構裝置上。

(參考原文:ExecuTorch and TOSA enabling PyTorch on Arm platforms中文版校閱者為Arm主任應用工程師林宜均;責編:Judith Cheng)

 

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: Arm作者群

來自各方的Arm開發者社群專家。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *