モデルの動作とパフォーマンスを理解するために、モデルのヘルスモニター評価を設定することができます。 モデルの正常性メトリックを使用して、モデル・デプロイメントでトランザクションがどの程度効率的に処理されるかを判別できます。
モデル健全性評価を有効にすると、データマートにモデル健全性データセットが作成される。 モデル健全性データセットは、モデル健全性メトリクスの計算に使用される、あなたの採点リクエストに関する詳細を保存します。
モデル・ヘルス・モニターの評価を構成するために、以下の例に示すように、各メトリックのしきい値を設定できます。
モデルの健全性評価は、本番前の展開ではサポートされていません。
サポートされるモデル正常性メトリック
モデルの健全性を評価するための以下の指標カテゴリーがサポートされている。 各カテゴリーには、モデルのパフォーマンスに関する詳細を示すメトリックが含まれています。
ペイロード・サイズ
モデル展開がスコアリングリクエスト全体で処理するトランザクションレコードのペイロードサイズの合計、平均、最小、最大、中央値をキロバイト(KB)単位で計算します。 画像モデルのペイロードサイズ・メトリクスはサポートされていません。
レコード
スコアリングリクエスト全体で処理されるトランザクションレコードの総数、平均値、最小値、最大値、および中央値は、モデルの健全性評価中に計算される。
評価要求
モデルの健全性評価中にモデルのデプロイが受け取るスコアリング要求の数が計算されます。
スループットと待ち時間
レイテンシは、1ミリ秒(ms)あたりのスコアリング・リクエストとトランザクション・レコードの処理にかかる時間を追跡することによって計算される。 スループットは、1 秒当たりに処理された評価要求およびトランザクション・レコードの数を追跡することによって計算されます。
スループットとレイテンシを計算するには、スコアリングリクエストのresponse_time
値を使用して、モデルのデプロイがスコアリングリクエストを処理するのにかかる時間を追跡します。
watsonx.aiRuntime のデプロイメントでは、評価を設定する際に 'response_time
値が自動的に検出されます。
外部デプロイメントやカスタムデプロイメントでは、PythonSDKの以下の例に示すように、スループットとレイテンシを計算するためにスコアリング要求を送信するときに'response_time
値を指定する必要があります:
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
client.data_sets.store_records(
data_set_id=payload_data_set_id,
request_body=[
PayloadRecord(
scoring_id=<uuid>,
request=openscale_input,
response=openscale_output,
response_time=<response_time>,
user_id=<user_id>)
]
)
以下のメトリクスは、評価中のスループットとレイテンシを測定するために計算される:
- API 待ち時間: モデル・デプロイメントによる評価要求の処理にかかった時間 (ミリ秒単位)。
- API スループット: 1 秒当たりにモデル・デプロイメントによって処理された評価要求の数
- レコード待ち時間: モデル・デプロイメントでレコードを処理するために要した時間 (ミリ秒単位)
- レコード・スループット: 1 秒当たりにモデル・デプロイメントによって処理されたレコードの数
スコアリングリクエストとトランザクションレコードのスループットとレイテンシの平均、最大、中央値、最小値が計算される。
ユーザー
モデルデプロイメントにスコアリングリクエストを送信したユーザーの数が計算されます。
ユーザー数を計算するために、スコアリングリクエストからのuser_id
は、あなたのモデルが受信したスコアリングリクエストを送信したユーザーを特定するために使用されます。
watsonx.aiRuntime のデプロイメントでは、評価を設定する際に 'user_id
値が自動的に検出されます。
外部デプロイメントやカスタムデプロイメントでは、PythonSDKの以下の例に示すように、ユーザー数を計算するためにスコアリングリクエストを送信する際に'user_id
値を指定する必要があります:
from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord
client.data_sets.store_records(
data_set_id=payload_data_set_id,
request_body=[
PayloadRecord(
scoring_id=<uuid>,
request=openscale_input,
response=openscale_output,
response_time=<response_time>,
user_id=<user_id>). --> value to be supplied by user
]
)
Usersメトリクスの結果を表示する場合、リアルタイムビューを使用して総ユーザー数を確認し、集計ビューを使用して平均ユーザー数を確認します。 詳しくは、 モデルの正常性結果の確認を参照してください。