移行するものと待つべきものの境界を定める
本ガイドは、計算、データ、運用を統括する担当者を対象としています。ここでのロットとは、識別された作業パッケージを指し、カタログにあるGPUカードのロットとは異なります。この方法は、まず承認前に管理できる出力に適しています。停止せずにリクエストを受け付けるサービスでは、新しい入力がどこで待機するか、その待機が許容される時間、そしてどのようにターゲットに合流するかを計画してください。コピーした資料だけでは、この受け入れポリシーは定義されません。
提案された演習は、8つの合成ロットからなる閉じたセットを扱います。ネットワークリクエストを送信せず、GPUやCapordiaアカウントも必要としません。単一のマシンと単一のワークプロセスでの再開ロジックを学ぶものです。分散キュー、公開サービスの継続性、計算のホットマイグレーションを検証するものではありません。実際の移行の前に、お客様のチームは、採用するアプリケーションとハードウェアでこれらの要素を検証する必要があります。
再構築可能なインベントリを作成する
コードとそのバージョン、依存関係、パラメータ、モデル、入力、スケジュールされたタスク、出力先をまとめます。それぞれについて、担当者、再構築方法、ターゲットで期待される管理項目を記載します。シークレットの名前と提供方法を記録し、その値を共有台帳に記載しないでください。手動インストールや起動時にトリガーされるタスクは、プロジェクトディレクトリの単純なコピーでは欠落する可能性があります。
入力ファイル、承認済みの結果、再起動に必要な状態を分離します。トレーニングの場合、この状態はモデルの重みを超えることがあります。PyTorchの汎用チェックポイント保存チュートリアルには、特にオプティマイザの状態と進行状況が含まれます。必要な内容はお客様のコードによって異なります。新しいプロセスで復元し、テスト前に決定した許容範囲に従って出力を比較してください。1回の再起動成功から普遍的な数値的同一性を推測しないでください。
意思決定、切り替え、受け入れの担当を割り当てる
ウィンドウを確定する前に役割を指名します。小規模なチームでは同じ人物が複数の役割を兼ねることもありますが、意思決定はそれぞれ独立しています。切り替え責任者は旧プロデューサーの停止を確認し、移行先の起動を承認します。データ責任者はインベントリ、ハッシュ、出力を管理します。処理オーナーは機能的な品質を判断します。運用担当は変更ログを保持し、引き継ぎを準備します。
切り替え手順書は、四つの具体的な問いに答えるものでなければなりません。すなわち、誰が入力を停止できるか、誰が旧処理がもう出力していないことを確認するか、誰が最初の結果を承認するか、誰がロールバックを決定するかです。さらに、意思決定の期限時刻と、これらの人物への連絡手段も記載します。「必要なら戻す」だけでは、移行先がすでに旧レジストリの知らない結果を生成している場合には不十分です。
開始済みと承認済みを区別するレジストリを維持する
各バッチに安定した識別子を割り当て、データの特定のバージョンに紐づけます。その状態、試行回数、結果の保存場所、受け入れを承認する検査を保持します。出力ファイルが存在するだけで、進行中のバッチが完了したわけではありません。そのファイルは部分的であるか、前の試行に由来する可能性があります。手順書は、何を保持し、何を再計算し、何を検討のために隔離状態に置くかを明示しなければなりません。
演習では、ローカルの SQLite レジストリが結果の状態と受け入れを一つのトランザクションでまとめて保持します。状態は termine、en_cours、a_reprendre で、最後のものはまだ開始していないバッチも対象とします。移行先は、8 件の入力を無差別に再実行するのではなく、未検証のバッチを再開します。JSON と CSV のエクスポートで追跡が読みやすくなります。空の CSV はあなたの準備と人によるレビューを伴うものであり、実際のアプリケーションの調整メカニズムを置き換えるものではありません。
| バッチ | 境界時点の状態 | 再開前の決定 |
|---|---|---|
| LOT-001 から LOT-003 | termine | 結果を保持し、その完全性を検証する |
| LOT-004 | en_cours、結果は未承認 | 新しい試行を明示的に準備する |
| LOT-005 から LOT-008 | a_reprendre、試行なし | 承認後に移行先で起動する |
停止と再開の演習をダウンロードして実行する
sqlite3 モジュールを含む Python 3.10 以降と、書き込み可能なローカルディレクトリを用意してください。完全なアーカイブをダウンロードし、スクリプト、データフォルダ、マニフェストを一緒に保ったまま展開します。README ファイルに利用可能なコマンドが詳しく記載されています。ドライバー、計算パッケージ、モデルをインストールする必要はありません。実行する前にスクリプトを読み、複数の試行の証拠が混ざらないよう、新しい出力フォルダを使用してください。
exercice.py を含むディレクトリから、以下のコマンドで継続的なリファレンス、中断された処理、切り替えコピー、リファレンスと比較した再開を生成します。8 つの CSV ファイルには、整数のマイクロメートルで表された、この教材のために作成された 48 件の架空のクーポンの寸法測定値が含まれています。実際の産業検査は一切表現されていません。CPU での計算は、バッチ管理を検討するためのものであり、GPU のスループットやデータ移行時間を見積もるためのものではありません。
python exercice.py demonstration --dossier essai-capordia再開の証拠をバッチごとに読む
Capordia の例: あるチームが処理すべき 8 つのファイルパッケージを準備します。リファレンスはそれらを中断なく処理します。もう一方の経路では、停止により 3 つのバッチが完了し、LOT-004 が進行中、4 つのバッチが試行なしの再開待ちになります。切り替え責任者は「途中まで再開」とは指示せず、LOT-004 を指定します。再開の準備によりこれが a_reprendre 状態に戻され、3 つのバッチが完了し、5 つが実行待ちになります。すでに承認されたバッチを再計算してはいけません。
識別子、状態、試行についてはetat.jsonを、レビューについてはregistre-lots.csvを、出力についてはresultats.jsonを、そしてチェックについてはrapport-verification.jsonを参照してください。2026年9月24日、Windows AMD64、Python 3.14.6、SQLite 3.50.4でのローカル実行において、スクリプトの37回の起動から得られた16件のチェックがすべて成功しました。取り込まれた8件の結果は参照と一致し、完了したバッチは再計算されず、同じバッチの再受理は拒否されます。改変された入力、重複した識別子、破損した出力も同様に検出されます。
一貫性のある状態をコピーし、その完全性を検証する
実際の切り替えでは、受け入れを停止するか、新規入力を明示的に用意されたキューに入れてください。進行中の処理の完了を待つか、中断したバッチを復旧ルールに従って記録します。その後、旧インスタンスがもはや公開できないことを確認してください。この演習でのソースの封印により、スクリプトがそれをプロデューサーとして再利用することを防ぎます。これはシナリオのローカルな保護にとどまり、それぞれが状態のコピーを持つ複数のマシン間の相互排除ではありません。
アプリケーションが使用するSQLiteデータベースをコピーするには、そのドキュメントが一貫性のあるスナップショットを作成するバックアップAPIを提供しています。したがって、書き込み中のデータベースファイルの通常のコピーは、即興で行うべき手順ではありません。転送されたファイルのマニフェストも確認してください。hashlibで利用可能なSHA-256ハッシュは、ここでは内容の差異を検出するのに役立ちますが、その結果が業務にとって正しいかどうか、また参照マニフェストが信頼に値するかどうかは示しません。
いつ再開し、いつ戻るかを判断する
保持された入力、レジストリ、結果が一致し、旧プロデューサーが停止しており、ソフトウェアの前提条件が満たされている場合にのみ、ターゲットを有効にしてください。まず、出力を再確認できる範囲から開始します。処理の所有者が品質を承認し、データ責任者が識別子、欠落、重複を確認します。エラーなく起動しても、有用な結果が不完全であれば十分ではありません。
新たな公開の前に不具合が発生した場合は、ターゲットを停止したままにし、所定の手順に従って管理されたソース状態からやり直してください。公開後は、まずターゲットの結果とレジストリを保全します。ターゲットが完了したバッチをソースのものと突き合わせ、単一の許可された再開方法を選択します。時間を節約するために両側を再有効化すると、まさに移行が避けるべき重複を生み出す可能性があります。
| 観察 | 即時の判断 | 続行する条件 |
|---|---|---|
| 入力の欠落またはハッシュの相違 | 転送を中断し、コピーを隔離する | 参照マニフェストに適合する入力を取得する |
| 識別子の重複または予期しない出力 | 該当バッチを公開しない | 衝突を理解し、承認された単一のバージョンに絞る |
| 再開状態が使用不能 | ターゲットを停止し、証拠を保全する | 既知の状態を復元するか、準備済みのロールバックを適用する |
| 業務基準を外れた結果 | 再開の拡大を停止する | 修正してから機能検証をやり直す |
| 判断の期限に到達 | ロールバックまたは延期の判断を発動する | 責任者の明示的な同意とエクスポートを完了する能力 |
ウィンドウ全体を測定し、引き継ぎを準備する
インストール、コピー、検証、再開、エクスポートを実際の順序で繰り返してください。各フェーズの時間と人的介入を、転送が許可されたサンプルで記録します。ウィンドウを見積もる際は、待機する新規入力とその遅延を解消する能力を考慮してください。小規模なフォルダで観測された最良の時間は、より大きなボリュームに対する確約ではありません。
選択した期間は、準備、リハーサル、切り替え、監視、結果の回収をカバーする必要があります。Capordia の 3 日、7 日、30 日のプランはあくまで管理すべき期間であり、本ガイドがそこから計算時間を導き出すことはありません。締め切りの前に、別の担当者が登録簿をたどり、出力をその保存先から開き、処理を再実行する方法を把握している必要があります。アクセスが不要になったものを削除する前に、縮退終了の決定、許容された差異、残りのアクションをアーカイブしてください。
この演習が検証するものと、なお確認が必要なもの
この案件の成果は、読みやすい手順と、合成ファイル上での再現可能な復旧体験です。同じバッチは、停止前、切り替え中、復旧後のいずれでも識別できる必要があります。登録簿、基準との比較、意図的に発生させた拒否により、このルールが観察可能になります。中断はスクリプト内の制御された例外によって引き起こされており、電源障害の試験は実施していません。引用した技術文書は使用した仕組みを説明するものであり、将来の本番環境を保証するものではありません。
シナリオでは同時に 1 つのプロセスだけが動作します。ローカルでのシールは分散ロックではなく、ハッシュは品質テストではなく、CPU の結果は CUDA、ROCm、マルチ GPU の適格性評価ではありません。外部データベース、共有ストレージ、キューにも書き込むアプリケーションでは、これらすべての保存先に一貫したルールが必要です。実際の処理を移行する前に、このルールとロールバック計画を承認してもらってください。
次に備えるために
バックアップは作業を再開できるものでなければなりません。
隔離されたターゲットに復元し、そのコピーで実際に再開できるか確認します。
状態、アクション、担当者を伴って引き継ぐ。
業務、制限、および責任を他の担当者に引き継ぎます。