テクニカルガイド

チェックポイントシャーディングと再開可能なトレーニング

モデルのトレーニング状態を断片 (シャード) に分けて保存するための手法。これにより、メモリやディスクの制限に悩まされることなく巨大なモデルを保存および再ロードできるようになり、クラッシュした実行が中断したところから正確に再開できるようになります。

2分の読書最終更新日

概要

Essential for any training job that runs for days or weeks across many GPUs.

ディープダイブ

トレーニング チェックポイントは、モデルの重み、オプティマイザーの状態、学習率のスケジュール、データ ローダーの位置、乱数ジェネレーターのシードなど、再開に必要なすべてのスナップショットです。大規模なモデルの場合、このスナップショットは数百ギガバイトになる可能性があり、単一のファイルまたは単一マシンのメモリには大きすぎます。チェックポイント シャーディングは、そのスナップショットを多くのファイルと多くのランクに分割するため、各 GPU は独自のスライスのみを並行して書き込みます。再開可能なトレーニングでは、それらのシャードがリロードされ、完全な状態が正確に復元されます。これがなければ、数週間にわたる実行で 200 時間目にクラッシュすると、最初からやり直す必要があります。 PyTorch Distributed Checkpoint、DeepSpeed、Hugging Face Hub のシャード セーフテンサー形式などのフレームワークがこのルーチンを作成します。

技術的な洞察

シャーディングが機能するのは、分散トレーニングが既に重みとオプティマイザーの状態をランク間で分割しているためです (データ、テンソル、または ZeRO 並列処理を介して)。各ランクは、そのパーティションのみをシリアル化し、多くの場合、遅延メモリマップロードを可能にするセーフテンソルのような形式にシリアル化します。インデックス ファイルはパラメータ名をシャード ファイルにマッピングします。決定的に再開するために、システムは RNG 状態、オプティマイザのステップ数、および正確なデータローダ オフセットも保持するため、再実行では同じバッチのシーケンスが再現されます。

戦略的影響

費用と予算

アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。

より明確な判決

技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。

品質管理

より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

チェックポイント シャーディングと再開可能なトレーニングの将来

チェックポイントは、定期的なストップ・ザ・ワールド・イベントから、非同期でほぼ無料のものへと移行しつつあります。トレーニングの継続中にバックグラウンドでシャードを書き込むメモリ内チェックポイントと重複チェックポイントの増加に加え、1,000 GPU 規模で一般的なノード障害に耐える消去符号化および複製されたチェックポイントが期待されます。クラウド オブジェクト ストアと高速なローカル NVMe 層はシャードをホストし、セーフテンサーのような標準化された形式により、トレーニングの再開と推論のデプロイメントの両方で安全かつ高速な部分読み込みが向上し続けます。

現実世界の実装

フロンティア モデルは数千の GPU で実行され、数百ステップごとにシャード化されたチェックポイントを自動保存するため、単一のノードに障害が発生しても、数日ではなく数分しかかかりません。

Hugging Face は、大規模なオープン モデルを複数のセーフテンソル シャードと Index.json として配布し、ユーザーがそれを部分的にダウンロードしてロードできるようにします。

正確なオプティマイザーの勢い、ステップ数、データローダーの位置を復元してシームレスに続行する、中断された微調整を再開する研究者。

安価なプリエンプティブル クラウド GPU でのスポット インスタンス トレーニング。頻繁なシャード チェックポイントにより、ジョブがエビクトされ、再スケジュールされても存続できます。

リスクとガードレール

1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。

インフラストラクチャとメンテナンスのコストは過小評価されがちです。

システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

実装ロードマップ

1

実装前にレイテンシ、品質、コストの目標を定義します。

2

現実的な負荷とデータ条件でのベンチマーク。

3

エラー、ドリフト、ユーザーへの影響を計測器で監視します。

4

スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Checkpoint Sharding and Resumable Training quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

クイズを開始する

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

次のガイド

AI トレーニング クラスター用の Slurm

よくある質問

What is Checkpoint Sharding and Resumable Training?

モデルのトレーニング状態を断片 (シャード) に分けて保存するための手法。これにより、メモリやディスクの制限に悩まされることなく巨大なモデルを保存および再ロードできるようになり、クラッシュした実行が中断したところから正確に再開できるようになります。多くの GPU で数日または数週間にわたって実行されるトレーニング ジョブには不可欠です。

大規模モデルのチェックポイントがシャードに分割されているのはなぜですか?

巨大なチェックポイント (数百 GB) を 1 つのファイルとして扱うのは現実的ではありません。シャーディングにより、多くのランクがスライスを並行して書き込むことができ、区分的な読み込みが可能になります。

モデルの重み以外に、通常、再開可能なチェックポイントで保存する必要があるものは何でしょうか?

正確に再開するために、チェックポイントにはオプティマイザーの状態、乱数ジェネレーターの状態、ステップ数、およびデータローダーが中断された場所が保存されます。

長時間の仕事に対する再開可能なトレーニングの主な利点は何ですか?

再開可能なチェックポイントを使用すると、中断された実行は、数日間のコンピューティングを無駄にするのではなく、最後に保存された状態を再ロードして続行されます。

通常、各 GPU ランクはシャード チェックポイントにどのように影響しますか?

分散トレーニングではすでにモデルがランク間で分割されているため、各ランクはそのスライスのみを書き込み、保存を並行してメモリ効率よく行うことができます。

インデックス ファイルはシャード チェックポイントでどのような役割を果たしますか?

インデックス (index.json など) は、どのシャードが各パラメータを保持しているかを記録するため、ローダーは適切な部分をフェッチして再構築できます。