## Memo
## Memo with LLM
## Abstract
大規模なディープ・ニューラル・ネットワーク(DNN)モデルのトレーニングには、数日から数週間にわたって何千ものGPUが必要です。この規模になると、障害が頻繁に発生し、トレーニングのスループットに大きな影響を及ぼします。パフォーマンス低下を軽減するために予備のGPUサーバーを利用することは、モデルサイズが大きくなるにつれてますますコストがかかるようになります。ReCycleは、予備サーバーに頼ることなく、障害が発生しても効率的にDNNをトレーニングできるように設計されたシステムです。データ並列グループ間のサーバーが同じモデルパラメータを保存する分散トレーニングシステム固有の機能冗長性と、各データ並列グループ内のパイプラインスケジュールバブルを利用します。サーバーに障害が発生した場合、ReCycleは動的にマイクロバッチをデータ並列ピアに再ルーティングするため、複数の障害が発生してもトレーニングを中断することはありません。しかし、この再ルーティングは、パイプラインステージ間で不均衡を引き起こし、トレーニングスループットの低下につながります。これに対処するため、ReCycleは、再ルーティングされたマイクロバッチが元のパイプラインスケジュールのバブル内で処理されることを保証する2つの重要な最適化を導入します。まず、バックワードパスを2つのフェーズに分離します。1つは入力の勾配を計算するフェーズ、もう1つはパラメータの勾配を計算するフェーズです。第二に、オプティマイザのステップをずらすことで、パイプラインステージ間の同期を回避する。これらの最適化により、適応的なパイプラインスケジュールが可能となり、故障時のトレーニングスループットの低下を最小化、あるいは排除することができる。ReCycleのプロトタイプについて述べる。