1.13. データサイエンスパイプラインのキャッシングの概要
データサイエンスパイプライン内でキャッシングを使用すると、実行時間を最適化し、リソース効率を向上させることができます。キャッシングは、同一の入力による以前の実行の結果を再利用することで、冗長なタスク実行を削減します。
キャッシングは、中間ステップを繰り返す必要がない反復タスクに特に役立ちます。キャッシングを理解することで、より効率的なパイプラインを設計し、モデル開発の時間を短縮できます。
キャッシングは、正常に完了したタスクの出力を保存し、新規タスクの入力を以前にキャッシュされた入力と比較することで実行されます。一致が見つかった場合、OpenShift AI はタスクを再実行する代わりにキャッシュされた結果を再利用し、計算時間とリソース使用量を削減します。
1.13.1. キャッシング基準 リンクのコピーリンクがクリップボードにコピーされました!
キャッシングを有効に活用するには、あるタスクが以前にキャッシュされた結果を再利用できるかどうかを、次の基準に基づいて判断します。
- 入力データとパラメーター: タスクの入力データとパラメーターが前回の実行から変更されていない場合、キャッシュされた結果は再利用できます。
- タスクコードと設定: タスクコードまたは設定を変更すると、キャッシュが向こうになり、変更が常に反映されるようになります。
- パイプライン環境: 依存関係のバージョンなどのパイプライン環境の変更も、キャッシングが一貫性維持に有効かどうかに影響します。
1.13.2. OpenShift AI ユーザーインターフェイスでキャッシュされたステップを表示する リンクのコピーリンクがクリップボードにコピーされました!
パイプライン内のキャッシュされたステップは、ユーザーインターフェイス (UI) に視覚的に示されます。
-
キャッシュされた結果を使用するタスクには緑色のアイコンが表示されるため、キャッシュされたステップをすぐに識別できます。キャッシュされたタスクは、サイドパネルの Status フィールドに
Cachedが表示されます。 - UI にはタスクが以前に実行された日時の情報も含まれており、キャッシュの使用状況を簡単に確認できます。
特定のタスクのキャッシングステータスを確認するには、UI のパイプライン詳細ビューに移動します。キャッシュされたタスクとキャッシュされていないタスクが明確に示されます。キャッシュされたタスクは、以前に生成された出力を再利用し、再実行されないため、実行ログを表示しません。
1.13.3. データサイエンスパイプラインにおけるキャッシングの制御 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift AI では、パフォーマンスを向上させるためにキャッシングがデフォルトで有効になっています。しかし、場合によっては、特定のタスク、パイプライン全体、またはパイプライン全体に対してキャッシングを無効にする必要があります。たとえば、頻繁に更新されるデータを利用するタスクや、特殊な計算要件を持つタスクでは、キャッシングが有益でない場合があります。その他にも、デバッグ時、開発時や、確定的な再実行が必要なときなどに、すべてのパイプラインのキャッシングを無効する場合があります。
パイプラインまたはパイプラインサーバーレベルでキャッシングを無効にすると、すべてのタスクが再実行され、計算時間とリソース使用量が増加する可能性があります。
データサイエンスパイプラインのキャッシングは、次の方法で制御できます。
- 個々のタスク: データサイエンティストは、パイプラインの特定ステップのキャッシングを無効にできます。
- パイプライン (送信時): データサイエンティストは、パイプライン実行の送信時のキャッシングを無効にできます。
- パイプライン (コンパイル時): データサイエンティストは、パイプラインのコンパイル時のキャッシングを無効にできます。
- すべてのパイプライン (パイプラインサーバー): パイプラインサーバー内の全パイプラインのキャッシングを無効にできます。これにより、すべてのパイプラインおよびタスクレベルのキャッシング設定がオーバーライドされます。
1.13.3.1. 個々のタスクのキャッシングを無効にする リンクのコピーリンクがクリップボードにコピーされました!
特定タスクのキャッシングを無効にするには、パイプラインコード内のタスクに set_caching_options メソッドを直接適用します。
task_name.set_caching_options(False)
task_name.set_caching_options(False)
この設定を適用すると、OpenShift AI はキャッシュされた結果を無視して、それ以降のパイプライン実行でタスクを実行します。
set_caching_options パラメーターを True に設定するか、set_caching_options を省略することで、個々のタスクのキャッシングを再度有効にできます。
パイプラインサーバーでキャッシングが無効な場合、この設定は無視されます。
1.13.3.2. 送信時のパイプラインのキャッシングを無効にする リンクのコピーリンクがクリップボードにコピーされました!
パイプライン送信時のパイプライン全体のキャッシングを無効にするには、パイプラインコードで enable_caching パラメーターを False に設定します。この設定により、パイプライン実行中にステップはキャッシュされなくなります。enable_caching パラメーターは、kfp.client を使用してパイプラインを送信したりパイプライン実行を開始 (run_pipeline メソッドなど) したりする場合にのみ使用できます。
以下に例を示します。
パイプラインのコンパイル時またはパイプラインサーバーでキャッシングが無効な場合、この設定は無視されます。
1.13.3.3. コンパイル時のパイプラインのキャッシングを無効にする リンクのコピーリンクがクリップボードにコピーされました!
コンパイル時のパイプライン全体のキャッシングを無効にするには、ローカル環境またはワークベンチで次のいずれかのオプションを設定します。
環境変数:
export KFP_DISABLE_EXECUTION_CACHING_BY_DEFAULT=true
export KFP_DISABLE_EXECUTION_CACHING_BY_DEFAULT=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow CLI のフラグ (
kfp dsl compileを使用する場合):kfp dsl compile --disable-execution-caching-by-default
kfp dsl compile --disable-execution-caching-by-defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow
パイプラインサーバーでキャッシングが無効な場合、これらの設定は無視されます。
1.13.3.4. すべてのパイプラインのキャッシングを無効にする (パイプラインサーバー) リンクのコピーリンクがクリップボードにコピーされました!
パイプラインサーバー内のすべてのパイプラインのキャッシュを無効にして、すべてのパイプラインおよびタスクレベルのキャッシュ設定をオーバーライドするには、次のいずれかの方法を使用します。
- パイプラインサーバーの設定
-
OpenShift AI ダッシュボードから、Data science pipelines
Pipelines をクリックします。 - Pipelines ページの Project ドロップダウンリストから、設定するパイプラインサーバーを含むプロジェクトを選択します。
- Pipeline server actions リストから、Manage pipeline server configuration を選択します。
- Pipeline caching セクションで、Allow caching to be configured per pipeline and task チェックボックスをオフにします。
- Save をクリックします。
-
OpenShift AI ダッシュボードから、Data science pipelines
- データサイエンスパイプラインアプリケーション (クラスター管理者)
OpenShift コンソールまたは CLI で、プロジェクトの
DataSciencePipelinesApplication(DSPA) カスタムリソースのcacheEnabledフィールドをfalseに設定します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パイプラインおよびタスクレベルでキャッシングを設定することを許可するには、DSPA カスタムリソースで
cacheEnabledフィールドをtrueに設定します。
この設定を適用すると、すべてのパイプラインおよびタスクレベルのキャッシング設定が無視されます。
この設定を変更すると、パイプラインサーバーのデプロイメント内の CACHEENABLED 環境変数が更新されます。
検証
キャッシング設定を設定した後、次のいずれかの方法を使用してその動作を確認できます。
- UI を確認する: タスクリスト内の緑色のアイコンを探して、キャッシュされたステップを特定します。
- タスクの再実行をテストする: 特定のタスクまたはパイプラインのキャッシングを無効にして、ステップが期待どおりに再実行されることを確認します。
- 入力を検証する: キャッシングが適用されたときに、タスクの入力、パラメーター、およびランタイム設定が変更されていないことを確認します。
Elyra を使用して、JupyterLab で単一のノードまたはパイプライン全体のキャッシュを無効にすることもできます。詳細は、Elyra でのノードキャッシュの無効化 を参照してください。