ByteCheckpoint: A Unified Checkpointing System for LLM Development

要約

現実世界の大規模言語モデル (LLM) の開発では、ソフトウェアとハ​​ードウェアの潜在的な障害を軽減するため、またトレーニング パイプライン内およびさまざまなタスク間でのチェックポイント転送を容易にするために、永続ストレージ内でトレーニング状態をチェックポイントする必要があります。
LLM のサイズが非常に大きいため、チェックポイントの保存とロードでは、分単位での耐えられない停止が発生し、トレーニング効率が大幅に低下することがよくあります。
さらに、タスク間でチェックポイントを転送する場合、特定のタスクの特性とリソース クォータに応じて、保存に使用されるものとは異なる並列構成にチェックポイントをロードすることとして定義されるチェックポイント リシャーディングが必要になることがよくあります。
以前のチェックポイント システム [16、3、33、6] は一貫した並列構成を前提としており、リシャーディング中のチェックポイント変換の複雑さに対処できませんでした。
さらに、業界プラットフォームでは、開発者はさまざまなトレーニング フレームワーク [23、36、21、11] からチェックポイントを作成し、それぞれが独自のストレージと I/O ロジックを備えています。
この多様性により、統合チェックポイント管理と最適化の実装が複雑になります。
これらの課題に対処するために、自動オンライン チェックポイント リシャーディングをサポートする PyTorch ネイティブのマルチフレームワーク LLM チェックポイント システムである ByteCheckpoint を導入します。
ByteCheckpoint はデータ/メタデータ分離ストレージ アーキテクチャを採用し、採用された並列化戦略やトレーニング フレームワークからチェックポイント ストレージを切り離します。
不規則なテンソル シャーディング問題を解決するために効率的な非同期テンソル マージ手法を設計し、チェックポイントの保存とロードの効率を大幅に向上させるいくつかの I/O パフォーマンスの最適化を提案します。
実験結果は、ベースライン手法と比較して、チェックポイントの保存 (最大 529.22 倍) およびロード (最大 3.51 倍) のコストを削減する ByteCheckpoint の大きな利点を示しています。

要約(オリジナル)

The development of real-world Large Language Models (LLMs) necessitates checkpointing of training states in persistent storage to mitigate potential software and hardware failures, as well as to facilitate checkpoint transferring within the training pipeline and across various tasks. Due to the immense size of LLMs, saving and loading checkpoints often incur intolerable minute-level stalls, significantly diminishing training efficiency. Besides, when transferring checkpoints across tasks, checkpoint resharding, defined as loading checkpoints into parallel configurations differing from those used for saving, is often required according to the characteristics and resource quota of specific tasks. Previous checkpointing systems [16,3,33,6] assume consistent parallel configurations, failing to address the complexities of checkpoint transformation during resharding. Furthermore, in the industry platform, developers create checkpoints from different training frameworks[23,36,21,11], each with its own unique storage and I/O logic. This diversity complicates the implementation of unified checkpoint management and optimization. To address these challenges, we introduce ByteCheckpoint, a PyTorch-native multi-framework LLM checkpointing system that supports automatic online checkpoint resharding. ByteCheckpoint employs a data/metadata disaggregated storage architecture, decoupling checkpoint storage from the adopted parallelism strategies and training frameworks. We design an efficient asynchronous tensor merging technique to settle the irregular tensor sharding problem and propose several I/O performance optimizations to significantly enhance the efficiency of checkpoint saving and loading. Experimental results demonstrate ByteCheckpoint’s substantial advantages in reducing checkpoint saving (by up to 529.22X) and loading (by up to 3.51X) costs, compared to baseline methods.

arxiv情報

著者 Borui Wan,Mingji Han,Yiyao Sheng,Zhichao Lai,Mofan Zhang,Junda Zhang,Yanghua Peng,Haibin Lin,Xin Liu,Chuan Wu
発行日 2024-07-29 16:18:20+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI パーマリンク