0 / 0
資料の 英語版 に戻る
カスタム評価とメトリクスの作成
最終更新: 2024年11月22日
カスタム評価とメトリクスの作成

カスタム評価を作成するには、モデル・デプロイメントとビジネス・アプリケーションを定量的に追跡するための一連のカスタム・メトリックを選択します。 これらのカスタム・メトリクスを定義し、他のタイプの評価によって生成されるメトリクスと一緒に使用することができます。

以下のいずれかの方法を使用して、カスタムの評価と評価指標を管理できます。

Python SDK を使用したカスタム・メトリックの管理

Python SDK を使用してカスタム・メトリックを管理するには、以下のタスクを実行する必要があります。

  1. カスタム・モニターを指標定義に登録します
  2. カスタム・モニターを有効にします
  3. 指標値を格納します

その方法については、次のアドバンスト・チュートリアルを参照してください。

カスタム・モニターはいつでも無効にでき、また再び有効にすることもできます。 不要になったカスタム・モニターは削除できます。

詳しくは、Python SDK の資料を参照してください。

ステップ 1: カスタム・モニターを指標定義に登録します。

カスタム・メトリックの使用を開始する前に、カスタム・モニター (メトリックを追跡するプロセッサー) を登録する必要があります。 指標そのものを定義することも必要です。

  1. get_definition(monitor_name)メソッドを使用して、MetricオブジェクトとTagオブジェクトをインポートします。
  2. metricsメソッドを使用して、namethresholds、およびtypeの値を必要とするメトリックを定義します。
  3. 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)

ステップ 2: カスタム・モニターを有効にします。

次に、サブスクリプションのためのカスタム・モニターを有効にする必要があります。 そうすると、モニターがアクティブになり、しきい値が設定されます。

  1. targetメソッドを使用して、Thresholdオブジェクトをインポートします。
  2. 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) コマンドを使用します。

ステップ 3: 指標値を格納します。

カスタム・メトリクスは、サービス・インスタンスが存在するリージョンに保存する必要があります。

  1. metrics メソッドを使用して、保管する指標を設定します。
  2. 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)

watsonx.governanceによるカスタムメトリクスの管理

ステップ 1: メトリック・グループの追加

  1. 「構成」 タブで、 「メトリック・グループの追加」をクリックします。
  2. メトリック・グループを手動で構成する場合は、 「新規グループの構成」をクリックします。
    a. メトリック・グループの名前と説明を指定します。
    指定する名前の長さは、48 文字以下でなければなりません。
    b. 「入力パラメーター」 タイルの 「編集」 アイコンをクリックし、入力パラメーターの詳細を指定します。
    指定するパラメーター名は、メトリック API で指定されているパラメーター名と一致する必要があります。
    c. カスタム・モニターを構成するためにパラメーターが必要な場合は、 「必須パラメーター」 チェック・ボックスを選択します。
    d. 「Add」をクリックします。
    入力パラメーターを追加した後、 「次へ」をクリックします。
    e. 評価でサポートされるモデル・タイプを選択し、 「次へ」をクリックします。
    f. 評価スケジュールを指定しない場合は、 「保存」をクリックします。
    g. 評価スケジュールを指定する場合は、トグルをクリックします。
    評価スケジュールの間隔を指定して、 「保存」をクリックする必要があります。 h. 「メトリックの追加」 をクリックして、メトリックの詳細を指定します。
    「保存」をクリックします。
  3. JSON ファイルを使用してメトリック・グループを構成する場合は、 「ファイルからインポート」をクリックします。
    JSON ファイルをアップロードし、 「インポート」をクリックします。

ステップ 2: メトリック・エンドポイントの追加

  1. 「メトリック・エンドポイント」 セクションで、 「メトリック・エンドポイントの追加」をクリックします。
  2. メトリック・エンドポイントの名前と説明を指定します。
  3. 「接続」 タイルの 「編集」 アイコンをクリックして、接続の詳細を指定します。
    「Next」 をクリックします。
  4. メトリック・エンドポイントに関連付けるメトリック・グループを選択し、 「保存」をクリックします。

ステップ 3: カスタム・モニターの構成

  1. 「インサイト・ダッシュボード」 ページで、モデル・デプロイメント・タイルの 「モニターの構成」 を選択します。
  2. 「評価」 セクションで、追加したメトリック・グループの名前を選択します。
  3. 「メトリック・エンドポイント」 タイルで 「編集」 アイコンを選択します。
  4. メトリック・エンドポイントを選択して、 「次へ」をクリックします。
    メトリック・エンドポイントを使用しない場合は、 「なし」を選択します。
  5. トグルを使用して、モデルの評価およびしきい値の指定に使用するメトリックを指定します。
    「次へ」をクリックします。
  6. 入力パラメーターの値を指定します。 メトリック・グループのデータ・タイプとして JSON を選択した場合は、JSON データを追加します。
    「次へ」をクリックします。

カスタム・モニターを使用してモデルを評価できるようになりました。

カスタム指標へのアクセスとその視覚化

カスタム・メトリックにアクセスして視覚化するには、プログラマチック・インターフェースを使用できます。 その方法については、次のアドバンスト・チュートリアルを参照してください。

カスタムメトリクスの可視化は、インサイトダッシュボードに表示されます。

もっと見る

評価結果の確認

親トピック: モデル評価の構成

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細