Pure Storage FlashBlade 與 PyTorch 非同步檢查點:加速大型 AI 模型的訓練

在訓練大型 AI 模型時,效能與彈性之間有了權衡。了解將 PyTorch 非同步檢查點與 FlashBlade 配對如何協助您從 GPU 中獲得更多效益,而不需犧牲效能。

Asynchronous Checkpointing

總結

The combination of PyTorch asynchronous checkpointing and FlashBlade cuts checkpoint overhead by 10 times or more and delivers consistent, low-latency performance at scale, keeping expensive GPUs busy and training workflows uninterrupted.

image_pdfimage_print

訓練大型 AI 模型需要權衡,其中最重要的一項就是在效能和彈性之間取得正確的平衡。檢查是容錯的必要條件,但傳統的同步方法會迫使訓練在儲存模型狀態時暫停。對於數十億參數以上的模型,這些暫停時間可以延長到幾分鐘,從而減緩開發人員迭代的速度,並在訓練時讓昂貴的 GPU 處於閒置狀態。

非同步檢查點提供更聰明的替代方案。透過將檢查點流程與關鍵訓練路徑分離,在背景進行檢查點,讓昂貴的 GPU 保持忙碌,並不間斷地訓練工作流程。與 Pure Storage® FlashBlade® 的高傳輸量橫向擴充基礎架構搭配使用時,檢查點的開銷通常會大幅下降,通常降低 90% 以上,卻不會影響可靠性。這是維持大規模訓練動能的實用方法。

PyTorch 非同步檢查點

PyTorch 的分散式非同步檢查點,在處理模型狀態方面帶來了重大轉變。與其暫停訓練來寫出檢查點,它在運算繼續的同時,能節省背景資料。這不僅能減少閒置的 GPU 時間,還能讓每個訓練過程獨立寫入檢查點資料、跨節點分配 I/O,並降低共享儲存系統的壓力。

結果就是加快訓練週期、提高資源利用率,並針對大型工作負載進行更順暢的擴展。頻繁的檢查是故障復原和實驗的最佳做法,但傳統方法卻讓故障復原成本過高。非同步檢查點改變了方程式,讓團隊在需要時隨時儲存狀態,同時不會中斷訓練流程。

檢查點時間非同步

關鍵機制

非同步檢查點將傳統的一次性儲存流程分為兩個協調步驟:

  1. GPU 至 CPU 傳輸:模型狀態會從 GPU 記憶體快速移至 CPU 記憶體,讓訓練能立即繼續進行。
  2. 非同步持續性: 資料在 CPU 上後,專用執行緒會處理儲存到磁碟的問題,讓 GPU 能專心訓練。 

在機罩下,PyTorch 使用個別的流程群組來管理檢查點,因此不會干擾正在進行的分散式訓練任務。

可想像成一級方程式坑式止擋:您昂貴的 GPU 是針對速度最佳化的賽車,而 CPU 則是駕駛人員,專為處理快速維護而打造。您不想要在將資料儲存到磁碟的同時,使用 40,000 美元的 GPU 引擎。這種設計讓汽車保持在軌道上,同時船員也負責處理業務。 

實際上,這意味著 AI 團隊不再需要在效能和彈性之間做出選擇。就像在賽車中,速度與維護可以與正確的坑式策略共存,非同步的檢查點讓模型訓練得以繼續進行,同時在背景中實現狀態節約。 

實作優勢

訓練只會短暫暫停,將模型狀態從 GPU 傳輸到 CPU 記憶體。這意味著 AI 從業人員可以在長時間訓練期間保持動力,而不會損失寶貴的 GPU 週期,這對時間敏感的模型開發或反覆實驗尤其重要。

由於檢查點不再阻礙整個訓練管道,團隊可以更頻繁地儲存模型狀態。對從業人員而言,這開啟了更快迭代、更簡易實驗、以及更佳保護,以防範罕見但昂貴的訓練故障,例如節點當機或記憶體外錯誤。

如果工作失敗,更頻繁的檢查點可縮短復原時間。對基礎架構領導者而言,這將轉化為更快速的工作重新啟動、更少的運算時間,以及跨共用叢集的更佳服務等級可預測性。它也減少了過度保守工作排程的需求,為更活躍的工作負載釋放更多容量。

當 CPU 執行緒處理磁碟寫入時,GPU 會持續運作。這樣可以維持高運算使用率,並避免共用儲存系統不必要的 I/O 爭議,進而確保 GPU 投資的最大回報率。對儲存管理員和基礎架構副總裁而言,這代表對 IOPS 的壓力較低,I/O 行為更可預測,以及可能影響系統其他使用者的瓶頸也較少。

Pure Storage FlashBlade:增強效能

雖然 PyTorch 的非同步檢查點可大幅減少訓練中斷,但儲存基礎架構可決定這些收益可達到多少。在高傳輸量、多節點的 AI 環境中,Pure Storage FlashBlade 特別適合將非同步檢查點的價值最大化。

雖然非同步的檢查點功能可以降低訓練中斷,但 FlashBlade 能發揮其全部潛力。其架構可處理大規模訓練的中繼資料密集作業,並持續保持低延遲,即使在密集的寫入突發期間也不例外。

這轉化為:

  • 更快速完成檢查點:背景執行緒可以快速將模型狀態寫入磁碟,相較於傳統的檢查點設定,通常可達到 10 倍的寫入輸送量。
  • 無積壓或延遲: 有了低延遲的 I/O,檢查點不會堆積,也不會與其他訓練作業競爭,保持系統回應能力,並按時進行訓練。
  • 可靠的排程: 可預測的 I/O 效能讓團隊能夠放心規劃檢查點策略,而不必擔心意外的緩慢或停滯的訓練循環。

FlashBlade 的分散式橫向擴充基礎架構,可將資料分散至多個刀鋒,進而實現:

  • 無瓶頸的平行寫入:多個節點可同時寫入檢查點,避免 I/O 爭議。
  • 隨著您的成長,效能持續穩定:增加訓練節點不會讓儲存層負擔過重,因為 FlashBlade 能隨著您的運算空間擴展,在需求增加的情況下維持效能。
  • 快速的中繼資料協調:快速的中繼資料存取支援大型分散式訓練工作的高效檢查點調度。

隨您的需求擴展的效能

將 PyTorch 的異步檢查點與 Pure Storage FlashBlade 結合,可移除儲存系統,成為 AI 訓練流程的瓶頸。團隊現在可以在背景中安靜地進行檢查點,以全速訓練,而不是設計 I/O 限制或長時間暫停以維持模型狀態。

這種整合提供了:

  • 幾乎持續的 GPU 使用率,即使在頻繁的檢查點也一樣
  • 彈性的檢查點策略,專為工作負載需求量身訂做
  • 由運算需求驅動的基礎架構擴充,而非儲存限制

這不只是加快 I/O 的速度,更是要盡可能地維持您最寶貴的資產,如 GPU,以高效率運作。就像您不會停放賽車來輪替輪胎,非同步的檢查點可確保訓練維持在正軌上,同時輕量化系統也能處理節省的成本。

PyTorch 非同步檢查點與 FlashBlade 的結合,代表了大規模訓練基礎架構設計方式的轉變。透過將檢查點的開銷降低 10 倍以上,並大規模提供一致、低延遲的效能,此解決方案可協助團隊從 GPU 中獲得更多成果,並加快模型開發週期。

對儲存管理員和基礎架構領導者而言,它帶來了可預測的 I/O 行為、簡化的管理,以及擴充訓練工作負載的信心,同時不影響效能。對 AI 工程師而言,這代表訓練執行更順暢、迭代速度更快,並能夠更快速、更可靠地將大型模型推向生產環境。 

隨著 AI 工作負載的不斷擴展,智慧軟體設計與高效能儲存之間的合作關係變得至關重要。有了非同步檢查點和 Pure Storage FlashBlade,儲存不再是限制因素,而是競爭優勢。