カスタム評価とメトリクスの作成
カスタム評価を作成するには、モデル・デプロイメントとビジネス・アプリケーションを定量的に追跡するための一連のカスタム・メトリックを選択します。 これらのカスタム・メトリクスを定義し、他のタイプの評価によって生成されるメトリクスと一緒に使用することができます。
以下のいずれかの方法を使用して、カスタムの評価と評価指標を管理できます。
- Python SDK を使用したカスタム・メトリックの管理
- メトリックメトリックトリクスプロバイダーと Python SDKによるカスタムメトリクスの管理
- メトリックプロバイダーとユーザーインターフェースによるメトリック管理
Python SDK を使用したカスタム・メトリックの管理
Python SDK を使用してカスタム・メトリックを管理するには、以下のタスクを実行する必要があります。
その方法については、次のアドバンスト・チュートリアルを参照してください。
カスタム監視はいつでも無効化および再有効化できます。 カスタムモニターが不要になった場合は、削除できます。
詳しくは、Python SDK の資料を参照してください。
カスタムモニターをメトリック定義とともに登録する
カスタム・メトリックの使用を開始する前に、カスタム・モニター (メトリックを追跡するプロセッサー) を登録する必要があります。 指標そのものを定義することも必要です。
get_definition(monitor_name)メソッドを使用して、MetricオブジェクトとTagオブジェクトをインポートします。metricsメソッドを使用して、name、thresholds、およびtypeの値を必要とするメトリックを定義します。tagsメソッドを使用してメタデータを定義します。
以下のコードは、前に取り上げた作業用のサンプル・ノートブックからの抜粋です。
def get_definition(monitor_name):
monitor_definitions = wos_client.monitor_definitions.list().result.monitor_definitions
for definition in monitor_definitions:
if monitor_name == definition.entity.name:
return definition
return None
monitor_name = 'my model performance'
metrics = [MonitorMetricRequest(name='sensitivity',
thresholds=[MetricThreshold(type=MetricThresholdTypes.LOWER_LIMIT, default=0.8)]),
MonitorMetricRequest(name='specificity',
thresholds=[MetricThreshold(type=MetricThresholdTypes.LOWER_LIMIT, default=0.75)])]
tags = [MonitorTagRequest(name='region', description='customer geographical region')]
existing_definition = get_definition(monitor_name)
if existing_definition is None:
custom_monitor_details = wos_client.monitor_definitions.add(name=monitor_name, metrics=metrics, tags=tags, background_mode=False).result
else:
custom_monitor_details = existing_definition
その方法を確認するには、 client.data_mart.monitors.list() コマンドを実行して、新しく作成したモニターとメトリックが適切に構成されているかどうかを確認します。
次のコマンドを実行すれば、モニター ID も取得できます。
custom_monitor_id = custom_monitor_details.metadata.id
print(custom_monitor_id)
詳細な結果を確認するには、次のコマンドを実行してください。
custom_monitor_details = wos_client.monitor_definitions.get(monitor_definition_id=custom_monitor_id).result
print('Monitor definition details:', custom_monitor_details)
カスタムモニターを有効にする
次に、サブスクリプションのためのカスタム・モニターを有効にする必要があります。 そうすると、モニターがアクティブになり、しきい値が設定されます。
targetメソッドを使用して、Thresholdオブジェクトをインポートします。thresholdsメソッドを使用して、メトリックのlower_limit値を設定します。 パラメーターの 1 つとしてmetric_id値を指定します。 覚えていない場合は、前の例に示すように、いつでもcustom_monitor_detailsコマンドを使用して詳細を取得できます。
以下のコードは、前に取り上げた作業用のサンプル・ノートブックからの抜粋です。
target = Target(
target_type=TargetTypes.SUBSCRIPTION,
target_id=subscription_id
)
thresholds = [MetricThresholdOverride(metric_id='sensitivity', type = MetricThresholdTypes.LOWER_LIMIT, value=0.9)]
custom_monitor_instance_details = wos_client.monitor_instances.create(
data_mart_id=data_mart_id,
background_mode=False,
monitor_definition_id=custom_monitor_id,
target=target
).result
構成の詳細を確認するには、subscription.monitoring.get_details(monitor_uid=monitor_uid) コマンドを使用します。
メトリック値を保存する
カスタム・メトリクスは、サービス・インスタンスが存在するリージョンに保存する必要があります。
metricsメソッドを使用して、保管する指標を設定します。subscription.monitoring.store_metricsメソッドを使用して指標をコミットします。
以下のコードは、前に取り上げた作業用のサンプル・ノートブックからの抜粋です。
from datetime import datetime, timezone, timedelta
from ibm_watson_openscale.base_classes.watson_open_scale_v2 import MonitorMeasurementRequest
custom_monitoring_run_id = "11122223333111abc"
measurement_request = [MonitorMeasurementRequest(timestamp=datetime.now(timezone.utc),
metrics=[{"specificity": 0.78, "sensitivity": 0.67, "region": "us-south"}], run_id=custom_monitoring_run_id)]
print(measurement_request[0])
published_measurement_response = wos_client.monitor_instances.measurements.add(
monitor_instance_id=custom_monitor_instance_id,
monitor_measurement_request=measurement_request).result
published_measurement_id = published_measurement_response[0]["measurement_id"]
print(published_measurement_response)
カスタム・モニターをすべてリストするには、次のコマンドを実行します。
published_measurement = wos_client.monitor_instances.measurements.get(monitor_instance_id=custom_monitor_instance_id, measurement_id=published_measurement_id).result
print(published_measurement)
メトリックメトリックトリクスプロバイダーと Python SDKによるカスタムメトリクスの管理
Python SDK を使用してカスタム・メトリックを管理するには、以下のタスクを実行する必要があります。
メトリックプロバイダーを作成する
カスタムメトリックプロバイダーのエンドポイント詳細を、認証情報と共に定義します。 OpenScale トークンを生成し、実行時にそのトークンを使用してRESTエンドポイントを呼び出す
以下のコードは動作するサンプルノートブックからのものです
wos_client.integrated_systems.add(name="Custom Metrics Provider",
description="Custom Metrics Provider", type="custom_metrics_provider",
credentials= {
"auth_type":"bearer",
"token_info": {
"url": IAM_URL,
"headers": { "Content-type": "application/x-www-form-urlencoded" }
"payload": "grant_type=urn:ibm:params:oauth:grant-type:apikey&response_type=cloud_iam&apikey=<api_key>”,
"method": "POST"
}
},
connection={
"display_name": "Custom Metrics Provider",
"endpoint": rest_endpoint_url
}
).result
メトリックプロバイダーとユーザーインターフェースによるメトリック管理
以下のステップを実行します。
メトリックグループを追加する
- ホームページで、をクリックし 設定、次にをクリックします メトリック単位群。
- クリックしてください メトリックグループを追加。
- メトリックグループをJSONファイルを使用して設定するには、 [ファイルからインポート] をクリックします。 JSONファイルをアップロードし、 「インポート」 をクリックしてください。
- メトリックグループを手動で設定するには、 [新しいグループを設定] をクリックします。
- メトリックグループの名前を入力し、 [適用] をクリックします。 名前は48文字以下でなければなりません。
- タイルをサポートするモデルタイプで編集アイコンをクリックし、評価がサポートするモデルタイプを1つ以上選択してください。 次へ をクリックします。
- 評価スケジュールを指定するには、トグルをクリックして間隔を指定してください。 次へ をクリックします。
- 入力パラメータの詳細を指定してください。 各入力パラメータについて、詳細を入力し、 [追加] をクリックしてください。 指定するパラメータ名は、 メトリック API で指定されているパラメータ名と一致する必要があります。 カスタムモニターを設定するためにパラメーターが必要な場合は、[ 必須パラメーター ] チェックボックスを選択してください。
- 保存 をクリックします。
メトリックエンドポイントを追加する
ホームページで、をクリックし 設定、次にをクリックします メトリック。
クリックしてください メトリック追加。
メトリック・エンドポイントの名前と説明を指定します。
「接続」 タイルの 「編集」 アイコンをクリックして、接続の詳細を指定します。 次へ をクリックします。
メトリックエンドポイントに関連付けたいメトリックグループを選択し、 [保存] をクリックします。
バッチ処理をサポートするように設定した場合、カスタ watsonx.ai ムのランタイムエンドポイントを指定 URL すると、 メトリックトリックグループに次の入力パラメータを追加できます:
| パラメーター | データ型 | 値 |
|---|---|---|
| メトリック | ストリング | wml_バッチ |
| space_id | ストリング | あなたのスペースID |
| デプロイメント ID | ストリング | watsonx.ai カスタムメトリックエンドポイントの実行時デプロイメント ID |
| ハードウェア仕様ID | ストリング | watsonx.ai メトリックエンドポイントの実行時ハードウェア仕様ID |
| メトリックメトリクス待機時間 | 整数 | 秒単位の時間(例:60) |
カスタムモニターを設定する
- ホームページで、 インサイトダッシュボードをクリックしてください。
- モデルデプロイメントタイルで、 [モニターを設定] を選択します。
- 「評価」 セクションで、追加したメトリック・グループの名前を選択します。
- 「メトリック・エンドポイント」 タイルで 「編集」 アイコンを選択します。
- メトリック・エンドポイントを選択して、 「次へ」をクリックします。 メトリックエンドポイントを使用しない場合は、 [なし] を選択してください。
- トグルを使用して、モデルの評価およびしきい値の指定に使用するメトリックを指定します。 次へ をクリックします。
- 入力パラメーターの値を指定します。 メトリック・グループのデータ・タイプとして JSON を選択した場合は、JSON データを追加します。 次へ をクリックします。
カスタム・モニターを使用してモデルを評価できるようになりました。
カスタム指標へのアクセスとその視覚化
カスタムメトリクスの可視化は、インサイトダッシュボードに表示されます。
