カスタムモデルのテスト¶
カスタム推論モデルはカスタムモデルワークショップでテストできます。 また、カスタムモデルをアップロードする前に、DRUMを使用してローカルでテストすることもできます。
テストのワークフロー¶
テストでは、環境を使用して予測テストのデータでモデルを実行することにより、カスタムモデルをデプロイする前に機能することを確認します。 なお、テスト時の予測方法とデプロイするカスタムモデルの予測方法にはいくつかの違いがあります。
- テストでは、予測サーバーをバイパスしますが、デプロイの予測はデプロイ時の予測サーバーを使用することで行われます。
- カスタムモデルのテストとカスタムモデルデプロイの両方において、予測を行う前に予測データからモデルのターゲットとパーティション列が予測データから削除されます。
- デプロイは、関連付けIDを含むデータセットで予測を行うために使用できます。 この場合、関連付けIDを含むデータセットでカスタムモデルのテストを実行して、カスタムモデルがそのデータセットで機能することを確認します。
カスタムモデルのテスト実行の詳細については、以下を参照してください。
-
カスタム推論モデルをテストするには、テストタブに移動します。
-
新しいテストを選択します。
-
モデルバージョンを確認し、予測テストデータをアップロードします。 リソース設定を設定することもできます。これらの設定は、テストにのみ適用されます(モデル自体には適用されません)。
-
一般的な設定を構成後、実行したいテストをトグルで選択します。 テストの詳細については、テストの概要セクションを参照してください。
テストがトグルして選択されている場合、チェックに失敗すると、「エラー」が返され、カスタムモデルのデプロイがブロックされ、その後のテストがすべて中止されます。 トグルがオフに設定されていると、チェックに失敗した場合は「注意」を返しますが、デプロイは許可され、テストスイートは継続されます。
さらに、以下のテストのパラメーター(該当する場合)を設定できます。
- 最大応答時間:予測応答の受信に割り当てられた時間。
- 期間制限を確認:モデルがパフォーマンスチェックを完了するために割り当てられた合計時間。
- 並列ユーザーの数:予測リクエストを並行して行うユーザー数。
-
テストを開始をクリックしてテストを開始します。
テストが始まると、サマリーおよびデプロイヘッダー(テストタブ)の下で進行状況を監視して個々のテストの結果を表示できます。 テストの詳細については、テストモーダル(以下に表示)のテスト名の上にカーソルを置くか、テストの概要を参照してください。
-
テストが完了すると結果が表示されます。 テストが正常に完了すると、モデルをデプロイする準備が完了します。 設定したリソース設定に問題がない場合は、アセンブルタブから変更を適用して、モデルの新しいバージョンを作成します。
発生したエラーを表示するには、完全なログを表示を選択します(ログをダウンロードをクリックして、ログを選択してダウンロードすることもできます)
-
問題を評価してローカルで修正した後、修正したファイルをアップロードしてモデルバージョンを更新します。 新しいモデルバージョンで再度テストを実行します。
テストの概要¶
次の表は、デプロイ準備が完了していることを確認するためにカスタムモデルに実行されるテストを示しています。 非構造化のカスタム推論モデルでは、「起動チェック」テストのみが実行され、他のすべての手順は省略されます。
テスト名 | 説明 |
---|---|
スタートアップ | カスタムモデルイメージを構築して起動できるようにします。 イメージをビルドまたは起動できない場合、テストは失敗し、以降のすべてのテストは中止されます。 |
予測エラー | 提供されたテストデータセットに対して、モデルが予測できるかどうかをチェックします。 テストデータセットにモデルとの互換性がない場合、またはモデルが予測を正常に実行できない場合、テストは失敗します。 |
Null補完 | モデルがnull値を補完できることを確認します。 それ以外の場合、テストは失敗します。 特徴量のインパクトをサポートするには、モデルがテストに合格する必要があります。 |
副作用 | テストデータセット全体で作成されたバッチ予測が同じデータセットの1つの行ごとに作成された予測に一致することを確認します。 予測結果が一致しない場合、テストは失敗します。 |
予測検証 | カスタムモデルの予測をリファレンスモデルの予測と比較して検証します。 リファレンス予測は、選択したデータセットの指定された列から取得されます。 |
パフォーマンス | 予測リクエストの送信、スコアリング、予測結果の返信にかかる時間を計測します。 このテストでは、7つのサンプル(1KBから50MBまで)を作成し、各サンプルに対して10回の予測リクエストを実行するとともに、予測リクエストのレイテンシーのタイミング(最小値、平均値、エラー率など)を測定します。 10秒以上経過するとチェックが中断され、失敗と判定されます。 |
安定性 | モデルの一貫性を検証します。 ペイロードサイズ(行番号で測定)、チェックの一環として実行する予測リクエストの数、そのうち200の応答コードを必要とする率を指定します。 これらのパラメーターを使ってインサイトを抽出することで、モデルのどこに問題があるかを把握できます(たとえば、モデルに不具合が発生したときのレスポンスコードが、ほとんど200以外である場合)。 |
期間 | テストスイートが完了するまでの経過時間を計測します。 |
テストのインサイト¶
パフォーマンスと安定性のチェック¶
個々のテストから、具体的なインサイトを入手できます。 完了したテストの詳細を見るを選択します。
パフォーマンスチェックのインサイトでは、ペイロードのサンプルサイズを変更した場合の予測レイテンシーのタイミングを示したテーブルが表示されます。 各サンプルでは、最小、平均、および最大の予測リクエスト時間に加え、1秒あたりのリクエスト数(RPS)とエラー率を確認することができます。 テスト中にモデルに対して行われた予測リクエストは、予測サーバーをバイパスします。そのため、本番環境では、予測サーバーがレイテンシーを追加することで、レイテンシーの数値が若干高くなります。
さらに、パフォーマンスと安定性のチェックの両方で、メモリー使用量のチャートが表示されます。 このデータを表示するためには、モデルはDRUMベースの実行環境を使用する必要があります。 赤い線は、モデルに割り当てられた最大のメモリーを示しています。 青い線は、モデルがどれだけメモリーを消費したかを表しています。 メモリー使用量は複数のレプリカから収集され、チャートに表示されるデータは毎回異なるレプリカからのものです。 チャートに表示されるデータは、マルチレプリカの設定とは異なる可能性があります。 マルチレプリカの設定の場合、メモリー使用量のチャートはランダムなレプリカから定期的にメモリー使用量の統計を取得して作成されます。 つまり、負荷がすべてのレプリカに均等に分散されている場合、チャートには各レプリカのモデルのメモリー使用量が表示されます。
なお、モデルの使用量は、モデルの終了ロジックが基になる実行プログラムに依存しているため、割り当てられた最大メモリーを若干上回ることがあります。 また、チャートでメモリー使用量が制限値を超えていないことを示していても、モデルが終了してしまうことがあります。これは、モデルが更新されたメモリー使用量データを取得する前に終了してしまうためです。
メモリー使用量のデータは、モデルがDRUMベースの実行環境を使用している必要があります。
予測検証チェック¶
予測検証チェックのインサイトでは、モデル予測とリファレンス予測の差のヒストグラムが表示されます。
トグルを使用して一致する予測を表す差分を非表示にします。
ヒストグラムに加えて、予測検証のインサイトにはモデル予測と参照予測が一致しない行を含むテーブルが含まれます。 このテーブルの値は、行番号順に並べたり、モデル予測とリファレンス予測の差順に並べたりすることができます。