Amazon Elastic Inference 新增支持 PyTorch 機器學習模型

AWS 現在讓用戶可以在機器學習服務 Amazon SageMaker 以及運算服務 Amazon EC2 中,以 Amazon Elastic Inference 服務運用 PyTorch 模型進行預測,而由於 Elastic Inference 可讓用戶附加適當的 GPU 運算資源,不只能夠用 GPU 加速預測工作,付出的成本也低於使用獨立 GPU 執行個體。

Amazon Elastic Inference 新增支持 PyTorch 機器學習模型

PyTorch 是臉書(Facebook)在 2018 年底推出的深度學習框架,由於其採用動態運算圖(Dynamic Computational Graph),因此可讓開發者簡單地運用指令式程序設計方法,以 Python 開發深度學習模型。使用 PyTorch 這類框架開發深度學習應用程序,預測階段可佔全部運算資源的 90%。

要為執行預測工作,選擇適當的執行個體規格並不簡單,因為深度學習模型需要不同數量的 GPU、CPU 和內存資源。使用獨立 GPU 執行個體通常過於浪費,雖然速度很快,但因為獨立 GPU 通常為模型訓練工作設計,而大多數預測工作通常都只會是單一輸入,即便是尖峰負載也不會用上所有 GPU 容量,因此可能會造成資源浪費。

Amazon Elastic Inference 可讓用戶在 SageMaker 和 EC2,附上適當的 GPU 資源來加速預測工作。因此用戶可以選擇應用程序需要的 CPU 和內存規格的執行個體,並且額外附加適當的 GPU 容量,以更有效的方式使用資源,並且降低預測成本。Amazon Elastic Inference 服務之前只支持 TensorFlow 和 Apache MXNet 框架,而現在還額外多支持 PyTorch。

如果 PyTorch 用在 Elastic Inference 中,必須先將模型轉換成 TorchScript 格式。TorchScript 是可將 PyTorch 代碼轉換成序列化與最佳化模型的方法。因為 PyTorch 使用動態運算圖大幅簡化模型開發的過程,但是這種方法同時也增加模型部署的困難,在生產環境中,模型以靜態圖(Static Graph)表示較佳,不只使模型可以在非 Python 環境中使用,而且還可以最佳化其性能和內存使用量。

TorchScript 可編譯 PyTorch 模型,使其以非 Python 的方式表示,可以在各種環境中執行, TorchScript 也會對模型進行即時(Just-In-Time)圖最佳化,使編譯過的模型比起原本的 PyTorch 模型性能還要好。

AWS 比較附加 Elastic Inference、獨立 GPU 與純 CPU 三類型執行個體的延遲與成本。CPU 執行個體性能較差,預測延遲最長。獨立 GPU 執行個體的預測性能則最好,速度約是 CPU 執行個體的 7 倍。而有使用 Elastic Inference 的 CPU 執行個體,因為獲得 GPU 的加速,雖然預測速度仍然比獨立 GPU 執行個體慢,但是比純 CPU 執行個體快了近 3 倍。

而在成本上,純 CPU 執行個體的每次預測成本最高。雖然 CPU 執行個體每小時的成本最低,但因為每次預測的時間較長,反使得單次成本較高,而每次預測價格最低的則是 Elastic Inference,還可靈活的分離主機實體和推理加速硬件,組合出最適合應用程序的運算資源。


分享到:


相關文章: