微軟更新AI推論與訓練加速引擎ONNX Runtime(ORT),加入網頁訓練功能,讓開發者在瀏覽器中啟用模型訓練功能,使得裝置上的資料能夠藉由瀏覽器進行聯合學習和個人化應用,在保護使用者隱私的同時,也能發展創新應用。

從1.8版本開始,ORT Web提供瀏覽器內推論功能,讓開發人員可以部署跨平臺可移植機器學習模型,支援在CPU和GPU進行推論,處理過程透過WebGL和WebGPU進行,而隨著WebGPU的發展,瀏覽器擁有更強的圖形和運算能力,也就能夠在瀏覽器進行更多的機器學習應用。

而在最新的ONNX Runtime 1.17中,現在進一步支援在瀏覽器訓練機器學習模型,這個訓練子模型透過ORT Web NPM套件提供。微軟強調,原本用於推理的ORT Web二進位檔案大小並不會改變,即便匯入訓練子模組,開發者還是可以使用推論功能。

目前的模型訓練只支援以CPU單執行緒運算,網頁模型訓練功能主要由兩個部分組成,分別是WebAssembly二進位檔案和JavaScript套件。由於要讓開發者可以在瀏覽器使用CPU來訓練機器學習模型,ONNX Runtime提供訓練功能應用程式介面C API,但是瀏覽器不能直接執行C語言程式碼,所以需要用上WebAssembly。

WebAssembly是可以在網頁瀏覽器執行的低階語言,能夠將不同語言編寫的程式碼,轉換成在瀏覽器中高效運作的格式,如此開發者便可以在瀏覽器直接使用ONNX Runtime訓練功能。微軟將ONNX Runtime模型訓練用的C++程式碼,封裝成WebAssembly C API,並使用Emscripten工具將該API編譯成.wasm二進位檔案。

JavaScript API則簡化並抽象了存取WebAssembly API的過程,管理諸如緩衝區轉換和WebAssembly堆疊管理等工作。ORT Web套件會評估執行環境,確認適當的配置,像是單指令流多資料流(SIMD)的可用性等,並利用動態載入選擇性使用訓練二進位檔案。

微軟提到,在開始ONNX Runtime訓練之前,存在離線的準備步驟。開發者需要運用ONNX生態系工具產生需要的ONNX構件(artifacts),該離線步驟不會在訓練模型的邊緣裝置上進行,而是會先在沒有訓練資料的個人機器和伺服器完成,待構件準備完成後,便可以傳輸到邊緣裝置,開始在邊緣裝置上進行網頁訓練。

瀏覽器中使用ONNX Runtime訓練可以支援聯合學習應用,並且讓開發者可以在瀏覽器中更好地發展機器學習應用。聯合學習是一種機器學習技術,讓多個裝置協作訓練模型,但是又不需要共享資料。

ONNX Runtime讓開發者在單一瀏覽器會話(Session)中訓練模型,支援開發者在瀏覽器中探索和實驗機器學習模型的過程,且訓練的模型並不需要供未來使用,這類實驗通常是暫時的,也就是當瀏覽器關閉,訓練的模型和結果皆不會保存。微軟計畫之後也要支援其他裝置上訓練場景,像是保證用戶資料隱私的個人化模型。

熱門新聞

Advertisement