深層神經網路的機器學習已經成為熱門話題,因為該類技術在眾多領域都有超越人類的表現;而科學家們對此題材的熱情,已經催生了數個能佈署神經網路時處理訓練(training)與推理(inference)階段的解決方案。

訓練與雲端推理通常使用類似的硬體,大部分是繪圖處理器(GPU),也有一些像是Google的張量處理器(TPU)等以雲端為基礎的推理專用引擎;相較之下,邊緣裝置(edge devices)的推理則仰賴高度最佳化的硬體加速器,大多數以DSP為基礎,兩者的共通點非常少,也面臨各自不同的最佳化挑戰。

多樣化的推理引擎與各種訓練框架相互搭配,所有推理引擎都具備自己的功能與輸出格式;而這種多頭發展的情況很可能對行動智慧系統的成長有害。為此產業組織Khronos Group決定扛起將軟體與硬體連結的任務;Khronos訂定的開放性標準將硬體細節抽象化,因此軟體開發者能處理單一平台。

舉例來說,Khronos的OpenVX提供了一個以圖形為基礎的應用程式介面(API),以加速電腦視覺硬體,包括以神經網路為基礎的系統,允許導入經訓練的網路做為圖形中的節點。

現在Khronos已經在準備推出一種標準交換格式,用以映射訓練框架到推理引擎上;這種神經網路交換格式(Neural Network Exchange Format,NNEF)是開放的、可擴展的傳輸格式,能讓工程師將任何框架上經過訓練的、支援跨廠商格式的網路移到任何能讀取它的推理引擎上,可以說像是神經網路的一種PDF。

NNEF規格還在定義中,因此與Khronos的步調一致,其細節仍然保密;一旦規格獲得通過,其細節將完全公開,因此不只是Khronos的成員、所有人都能製造NNEF的輸出裝置(exporter)以及導入裝置(importer)。

20170515_NNEF_NT02P1

從高層級來看即將問世的NNEF將能如何應用
(來源:Khronos)

最典型的NNEF應用情境,是在諸如Caffe與TensorFlow的框架與一個恰當的推理引擎之間移動網路,並可選擇性採用OpenVX;該文件可能是機器生成,但NNEF是被設計為能讓人類閱讀,因此也可以被當作原始碼,以建立層級化(hierarchical)、非常緊湊的新網路。舉例來說,GoogleNet的結構只使用了大約20行代碼來描述。

第一版的NNEF主要是載入經訓練的網路以進行推理,因為Khronos的目標之一是以低功耗的機器實現高效率的執行。該標準將包含透過各種能理解該格式的工具實現之量子化(quantize)、強化(reinforce)以及再訓練(retrain)的功能;這種功能預期能催生用以最佳化、重新訓練原本以浮點訓練之網路第三方工具,以支援省電、較低精度的推理。

目前標準訂定工作已經在進展階段,Khronos的工作小組預期在幾個月之內完成最終候選規格的批准;屆時會需要廣泛的測試以及來自產業界的意見,以確保經過批准的標準足夠強韌且實用。因此Khronos正廣邀資料科學家與工程師參與NNEF的顧問團,特別是正在開發非標準以及創新網路推理架構的專家們。

參與顧問團的專家不需要具備Khronos會員資格,該組織也會給予有興趣的企業或個人貢獻一己之力與為這個標準提供回饋的機會;如果你也願意參與,[email protected]

編譯:Judith Cheng

(參考原文: Neural Nets Need Some Translation,by Peter McGuinness;本文作者為NNEF工作小組主席,曾任職Inmos、ST與Imagination)