モデル・デプロイメントBYOC
BYOCモデル・デプロイメントをトラブルシューティングします。
コンテナ・イメージにアクセスできません
モデル・デプロイメント操作を作成、更新またはアクティブ化する場合、データ・サイエンスは、コンテナ・イメージにアクセスするための認可されたパスがテナンシ内に存在することを検証します。検証が失敗した場合、リソース・プリンシパル・ポリシーが欠落しているか、イメージ・パスが正しくないか、イメージが存在しない可能性があります。指定されたポリシー、パスおよびイメージが正しいことを確認して再試行してください。
コンテナ・イメージ・ダウンロード・タイムアウト
各モデル・デプロイメント・リソースには、作成されたコンテナ・イメージをOCIレジストリからデプロイメント・コンピュート・インスタンスにプルして、それを推論用のコンテナとして実行します。イメージのダウンロードは20分以内に完了する必要があります。ただし、イメージ・サイズが大きすぎるか、レジストリで一時的なサービス停止時間が発生した場合、操作がタイムアウトになる可能性があるため、イメージ・サイズは16 GB以内である必要があります。イメージがこれよりも大きい場合は、不要な依存関係を削除してサイズを小さくすることを検討してから、デプロイメントの作成を再試行してください。
コンテナ実行タイムアウト
モデルをデプロイすると、コンテナ・イメージがテナンシからデータ・サイエンス・サービス・テナンシに転送され、推論用のコンテナとしてモデルを実行するために使用されます。コンテナの実行には10分という定義済のタイムアウトがあるため、推論提供コンテナがこの時間枠内に開始されるようにすることが重要です。
デプロイメントの前に、コンテナをローカルで検証し、/predict
コールと/health
コールの両方が成功したことをテストすることが重要です。
デプロイメント時には、コンテナの実行中、予測コールまたはヘルス・チェック・コール中にエラーが発生しないことを検証することも重要です。また、コンテナ内で実行されている推論ロジックがインターネットにアクセスする必要がある場合は、モデル・デプロイメント・リソースの作成時にエグレスを有効にしてください。そうしないと、モデルのブートストラップが失敗する可能性があります。このシナリオをテストするには、ローカル・テスト中にインターネットを無効にしてみます。
メモリー不足の問題を回避するために、モデルのロードおよび推論に十分なメモリーが割り当てられていることを確認します。
詳細は、BYOCベスト・プラクティスおよびコンテナのテストを確認してください。
コンテナを起動できません
コンテナが起動に失敗する理由はいくつかあります。これに対処するには、ローカル・テスト・フェーズで障害を特定して修正することをお薦めします。次に、考えられるいくつかの理由と修正を示します。
-
Docker
HEALTHCHECK
ポリシーが成功するには、コンテナ・イメージにcurl
パッケージがインストールされている必要があります。このパッケージがない場合、コンテナは起動に失敗します。 -
Webサーバーをブートストラップするには、Dockerの
CMD
またはEntrypoint
コマンドライン・パラメータをAPIまたはDockerfileのいずれかで指定する必要があります。これらのパラメータが無効な場合、コンテナは起動に失敗します。
モデルにアクセスできません
ブートストラップ中、デプロイメント・コンピュート・インスタンスはモデル・アーティファクトを解凍し、実行中のコンテナ内の/opt/ds/model/deployed_model
ディレクトリにファイルを読取り専用モードでマウントします。
このパスから圧縮されたファイルは、スコアリング・ロジックで使用されます。一連のファイル(MLモデルおよびスコアリング・ロジックを含む)またはコンテナ内のMLモデルへの場所パスが異なるファイルのセットを含むフォルダを圧縮します。
スコアリング・ロジックでモデルをロードするときに、正しいパスが使用されていることを確認します。