PyTorch 1.6發佈,微軟接管Windows版的開發工作

Facebook的深度學習開源框架PyTorch發佈了1.6版本,帶來了新的API和性能改進。與此同時,微軟宣佈將接管該框架Windows版本的開發和維護工作。

PyTorch團隊在最近的一篇博文中強調了新版本的主要特性。本地自動混合精度(AMP)訓練在Tensor Core GPU上可節省高達50%的內存,新的Beta版內存分析器爲調試內存問題提供幫助。PyTorch支持的兩個分佈式訓練範式(數據並行和模型並行)現在可以一起使用了,並且RPC框架包含了一個支持TensorPipe的新後端。在另一篇博文中,微軟的一個團隊宣佈了其在PyTorch社區的角色,包括對PyTorch Windows版本的所有權、改進測試覆蓋率和改進文檔。根據團隊的說法:

微軟很樂意提供Windows的專業知識,並把PyTorch帶到Windows上,使其達到最好的狀態。

2017年1月,社區希望發佈Windows版的PyTorch,並被包含在當年12月的0.3.0版本中。與其他很多開源項目一樣,大部分Windows版的開發工作都是由社區貢獻的,尤其是Jiachen Pu。然而,有限的可用資源意味着測試覆蓋率低下、教程過時,而且一些特性(如分佈式訓練)根本不可用。微軟的努力已經讓核心PyTorch庫和領域庫TorchText、TorchAudio和TorchVision的Linux版本的測試覆蓋率達到了“標準”。下一個工作領域將包括支持通過pip安裝和分佈式訓練。

PyTorch支持兩種分佈式訓練:數據並行(data-parallel)和模型並行(model-parallel)。前者在多臺機器上訓練模型的完整副本,每臺機器上都有訓練數據的分區,而後者的模型的不同部分在不同的機器上訓練。模型並行訓練對於無法加載到單臺機器內存的超大模型非常有用。數據並行訓練通過將工作負載分佈在多臺機器上,加快了整個訓練過程,將它與模型並行訓練相結合可以進一步加快訓練。在版本1.4中,PyTorch引入了一個支持模型並行訓練的分佈式遠程過程調用(RPC)系統,但是在最新的1.6版本之前,這兩種類型的分佈式訓練還不能同時使用。新版本還更新了RPC系統,包括對TensorPipe的支持,這是一種“感知TensorPipe的點對點通信原語”,可以改進分佈式訓練集羣中機器之間的數據傳輸。

混合精度訓練是在訓練過程中使用不同的比特數來表示不同的值。例如,一些層或操作可能需要完整的32位浮點數,而其他的可能只需要16位。PyTorch 1.6支持自動混合精度(AMP)訓練,自動爲每個值選擇合適的精度。當在Tensor Core GPU上使用時,可以節省高達50%的內存。這個版本還包括了Autograd Profiler的Beta版本,它可以報告模型中CPU和GPU的內存使用情況。

在Reddit的一個討論中,一位用戶寫道:

新的分析工具似乎是我很久以來一直想要的東西——PyTorch最煩人的一個地方就是神祕的內存泄漏。

PyTorch的源代碼和1.6版本的發佈說明可以在GitHub上找到。

原文鏈接

PyTorch 1.6 Released, Microsoft Takes over Windows Version

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章