PyTorch宣布開始支援Android神經網路API(Neural Networks API,NNAPI),這代表深度學習框架PyTorch,將可在Android上獲得硬體加速,以提高人工智慧應用程式的運算效能,而且也可釋放CPU的負擔,使其能夠支援其他關鍵運算。

NNAPI是Android上的API,目的是要機器學習應用程式,得以使用Android裝置上的硬體加速器,包括GPU、DSP以及NPU,讓Android有能力執行運算密集的機器學習應用。NNAPI是在Android 8的時候加入,Google在Android 10和11大幅擴展NNAPI的功能,使其能夠支援更多的人工智慧模型,雖然NNAPI提供方便且統一的介面,但是因為NNAPI終究是一個底層API,要使用還是需要大量的整合工作,而現在PyTorch讓應用程式開發人員,可以更簡單地獲得NNAPI提供的好處。

因為NNAPI沒有原生的磁碟模型格式,因此PyTorch選擇使用普通的TorchScript模型,在模型訓練完成之後,開發人員可以將模型打包在Android應用程式中,或是透過網路交付,並使用PyTorch Mobile的Java API,或是libtorch C++ API載入模型並執行。而已經使用PyTorch Mobile的應用程式,開發人員不需要改變程式碼,只要將CPU模型更換成NNAPI模型即可。

PyTorch官方提到,PyTorch對Android NNAPI的支援,特別適用在長時間啟動,並且需要即時回應的模型,像是裝置上電腦視覺應用,這類模型通常有運算密集、延遲敏感和耗電量大的三大特性,要能同時滿足這三個條件很困難,因此這類模型可透過NNAPI,在裝置上獲得硬體加速的支援,會是理想的執行情況。

臉書已經在Messenger應用程式中,利用NNAPI啟用沉浸式360背景功能,而使用NNAPI後,速度為之前的2倍,電力消耗也下降2倍,而CPU因為不再需要完全負擔機器學習運算,因此可空下執行其他重要工作。

臉書以Google的行動裝置Pixel進行測試,Messenger沉浸式360背景功能可在Pixel 3、4和5,3種裝置獲得不同程度的好處,Pixel 3的CPU負擔可以減少32%,而更新的Pixel 4和Pixel 5,可獲得更多的效能提升,因此也可以執行更為複雜的機器學習模型。

官方提到,機器學習模型在框架與API之間的轉換總會存在一些摩擦,即便是PyTorch和NNAPI都是為執行同一類型的神經網路開發,但轉換使用的時候,仍會有一些不同,開發者要注意語法之間的差異。PyTorch第一個支援NNAPI的版本,提供線性卷積和MLP模型,並且只能在Android 10或是以上裝置執行,官方也預告,即將發布的版本,會支援更多種類的模型,也能應用在Android 8和9等較舊的版本上。


熱門新聞

Advertisement