您的位置:首頁>科技>正文

東京大學MIL提出web流覽器上運行最快的DNN框架

近日, 東京大學機器智慧實驗室(MIL)提出了web流覽器上運行最快的DNN框架。

在Web流覽器上運行經過訓練的DNN模型

現如今, 深度神經網路(DNN)在許多應用中得到越來越多的關注。 然而, 它需要大量的計算資源, 而且設置基於執行環境的硬體加速, 如GPGPU, 也是一項浩大的工程。 因此, 為終端使用者提供DNN應用是非常困難的。 而WebDNN通過使用Web流覽器作為無安裝的DNN執行框架可以解決這個問題。 該框架優化了經過訓練的DNN模型, 從而壓縮模型資料和加快執行速度, 並且它使用新穎的JavaScript API(諸如WebAssembly和WebGPU)來執行, 以實現零開銷(zero-overhead)執行。 而實證評估也顯示,

這種方法是可行的, 其實現了超過200倍的加速。

特定推理階段優化

為了實現更快的執行這一目標, 優化DNN模型的計算圖就顯得非常重要了。 DNN的執行由訓練階段和推理階段兩個階段組成。 訓練階段使用反向傳播技術更新參數。 推理階段對實際任務進行預測(僅僅是正向傳播)。 如果框架僅關注推理階段, 那它就可以更積極地優化計算圖。

WebDNN僅關注終端使用者設備上推理階段的執行, 並支持積極的優化。 這種優化管道可以應用於使用各種DNN框架進行訓練的模型, 而不需要編輯訓練代碼。

下一代JavaScript API

JavaScript是由解譯器執行的。 因此, 它需要計算開銷, 除此之外, 它還不能完全利用CPU的容量。 在GPU中也是如此。 現代Web流覽器是支持WebGL的, WebGL是一個使用GPU的JavaScript API。

但是, 該API專為圖形處理而設計的, 並不適用於通用計算。 此外, 使用WebGL進行通用計算會產生間接成本。

而WebDNN使用下一代JavaScript API, 用於GPU執行的WebGPU和用於CPU執行的WebAssembly。 所有這些API都有助於顯示GPU和CPU的全部性能。

流覽器相容性

WebDNN支持3個執行後端實現:WebGPU, WebAssembly和Fallback純JavaScript實現。 通過使用這3個後端實現, WebDNN可以適用於所有主要的流覽器。

WebGPU後端

通過WebGPU API在GPU上進行計算。 這個後端是3個後端中最快的, 但目前WebGPU API僅支持於Safari Technology Preview中。

WebAssembly後端

通過WebAssembly API在CPU上進行計算。 這個後端要比Keras.js的GPU模式快得多。 通過與asm.js一起使用, 這個後端可以適用于大多數現代流覽器。

Fallback後端

通過ECMAScript3在CPU進行計算。 這個後端只是為了向後相容, 所以運行速度並不是那麼快。

流覽器相容性表

示例:在Safari技術預覽中, 預設情況下禁用WebGPUAPI。

要啟用API, 請參閱功能表列中的“Develop”>“ExperimentalFeatures”>“WebGPU”。

基準測試

我們測量了VGG16和ResNet50的執行時間。 下圖顯示了與Keras.js進行對比的結果。 每個圖像的計算時間以垂直軸顯示為對數刻度。 所有的測試都是2015年初在Mac Book Pro運行的, 其配置為:英特爾內核 i5 2.7 GHz CPU、16 GB記憶體、Intel Iris Graphics 6100 GPU、網路流覽器是SafariTechnology Preview 30。

神經風格遷移

這個示例運行神經風格遷移模型。

神經風格遷移模型給出2個輸入圖像, 一個是內容圖像, 另一個是風格圖像。 然後, 該模型基於風格圖像的風格和內容圖像中的內容生成圖像。

我們使用的是A(https://github.com/yusuketomoto/chainer-fast-neuralstyle)中提供的chainer(https://github.com/pfnet/chainer)實現和B(https://github.com/gafr/chainer-fast-neuralstyle-models)中提供的預訓練模型。 預訓練模型由GraphTranspiler轉換成圖形描述符,

然後由DescriptorRunner執行。 所有計算都是通過Web流覽器完成的, 而不是由伺服器完成的。

ResNet50圖像分類

在這個例子中, 你可以運行經ImageNet訓練後的ResNet50分類模型。 這裡(https://github.com/KaimingHe/deep-residual-networks)提供了原始的預訓練模型。 同樣, 所有計算都是通過Web流覽器完成的, 而不是由伺服器完成。

瞭解更多資訊, 請點擊https://mil-tokyo.github.io/webdnn/docs/

Next Article
喜欢就按个赞吧!!!
点击关闭提示