深度學習函式庫PyTorch釋出了1.5版本,新增了開源模型伺服器TorchServe,能夠高效能的提供PyTorch模型服務,並且整合TorchElastic和Kubernetes,讓分散式訓練更加自動化,此外,官方還釋出了torch_xla更新套件,讓PyTorch能良好地在Cloud TPU上運算。

TorchServe是一個PyTorch模型服務函式庫,可以讓用戶簡單地大規模部署經訓練的PyTorch模型,且不需要撰寫自定義的程式碼。TorchServe是由AWS和臉書合作,成為PyTorch開源專案的一部分,加速用戶將模型投入生產階段的過程。

TorchServe除了提供低延遲的預測API之外,還為物件偵測與文字分類等常用應用程式,嵌入預設的處理程式(Handler),此外,TorchServe的功能還包括了多模型服務、用於A/B測試的模型版本控制、日誌紀錄、監控指標,以及為應用程式整合創建的RESTful端點等。使用這個函式庫時,沒有任何對雲端平臺或環境的要求。現在已經釋出實驗版本。

另一個PyTorch 1.5的重點,便是整合TorchElastic和Kubernetes。TorchElastic是個被臉書等企業用於內部,大規模訓練深層神經網路的函式庫,官方提到,這些企業的伺服器需要有動態適應能力,當新的運算資源上線時,要使其迅速可用並且能夠擴展,而透過雲端容器調度工具Kubernetes,就可讓企業使用諸如PyTorch等機器學習框架,執行分散在跨機群的訓練工作。

但是分散式訓練工作具有不少限制,像是不具容錯能力,並且當節點故障或是回收中斷訓練,則該工作便無法繼續,訓練工作還必須要在獲取所有必須資源之後才能啟動,進行任何規模縮放都必須要重新啟動訓練作業。官方提到,缺乏彈性和靈活性的結果,就是讓訓練的時間增加,並且也提升了閒置資源的成本。

而TorchElastic能提供容錯性和彈性,解除分散式訓練任務的限制,不過,Kubernetes使用者卻需要手動管理TorchElastic訓練工作所需要的Pod和服務,現在PyTorch 1.5整合TorchElastic和Kubernetes,PyTorch開發人員可在運算節點叢集上訓練機器學習模型,並進行動態更改而不會中斷訓練工作,TorchElastic和Kubernetes整合框架提供了原語和介面,讓開發人員可以開發跨機器執行的分散式PyTorch作業,並且不需要手動管理TorchElastic訓練作業。

新版本torch_xla現在與PyTorch 1.5更緊密的整合,能減少開發時的摩擦;torch_xla是一個Python套件,以XLA線性代數編譯器,加速Cloud TPU和Cloud TPU Pod中的PyTorch深度學習框架運算。現在開發者可以使用新版torch_xla,利用PyTorch/XLA堆疊在Cloud TPU硬體上訓練模型,不只能在Google Colab的8核Cloud TPU裝置瀏覽器上使用,也能在Google Cloud上大規模應用。

熱門新聞

Advertisement