為了簡化用戶使用深度學習框架PyTorch,取用訓練資料的複雜度,AWS釋出適用於PyTorch的Amazon S3擴充套件,這是一個開源函式庫,讓PyTorch程式能夠從S3儲存服務串流資料,因此開發者就可以在AWS的PyTorch深度學習容器中,使用S3儲存桶中的資料以及資料載入API,而不需要先把訓練資料載入到本地儲存中。

AWS提到,這個適用於PyTorch的S3擴充套件,目的是要作為高效能PyTorch資料集函式庫,以低延遲提供高吞吐量,讓PyTorch程式能夠高效能存取S3儲存桶中的資料,對任何大小的資料進行串流存取,而這也消除配置本地端容量儲存資料集的需求。

該擴充套件提供了一種從S3平行傳輸資料的方法,開發者不需要擔心執行緒安全或是S3多連接,此外,開發者也可以從.zip或.tar檔案串流資料,並根據需要在分片內或是跨分片切換資料集,官方提到,之所以該擴充套件能夠與PyTorch程式碼庫無縫協作,是因為其所提供的S3Dataset和S3IterarableDataset,是PyTorch內部Dataset和IterableDataset介面的實作,因此開發者不需要改變現有程式碼,就能夠轉而與S3搭配使用。

而且該函式庫無關於檔案格式,能夠將S3中的物件以二進位緩衝區(Blob)呈現,因此可以轉換接受自S3的各種資料,同時還能擴展S3Dataset或S3IterableDataset以使用來自S3的資料,或是按需求額外處理資料。適用於PyTorch的S3擴充套件支援Map形式和迭代形式的資料集介面,也就是說,開發者除了能夠以索引或是鍵值存取資料之外,也能夠以低成本迭代存取批次資料。

AWS提到,使用這個新的擴充套件,並不會增加原有程式碼的複雜度,其仰賴AWS SDK,並使用底層AWS_SDK_CPP套件中的TransferManager API和S3溝通,提供高吞吐量和可靠性,該套件還使用Pybind11來打包C++函式,使其可用作為PyTorch資料集結構。用戶現在已經可以透過預配置的PyTorch Docker映像檔取用擴充套件,或是直接從GitHub儲存庫中下載。


熱門新聞

Advertisement