Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

バッチ監視

バッチ対応のデプロイでは、時間単位ではなくバッチ単位で整理された監視統計を表示できます。 これを行うには、バッチを作成し、それらのバッチに予測を追加して、デプロイ内のバッチのサービス正常性、データドリフト、および精度の統計を表示します。

新しいデプロイでバッチ監視を有効にする

モデルのデプロイを開始すると、デプロイ設定ページにデプロイタブが開きます。

このデプロイでバッチ監視を有効にするには、予測履歴とサービスの正常性セクションでバッチ監視を見つけ、バッチ監視を有効にするをクリックします。

既存のデプロイでバッチ監視を有効にする

バッチ監視用に設定するデプロイがすでに作成されている場合は、そのデプロイの設定 > 予測タブに移動します。 次に、バッチ監視の下にあるバッチ監視を有効にするをクリックして新しい設定を保存します。

インベントリでのバッチ監視デプロイの表示

デプロイのバッチ監視が有効になっている場合、デプロイタブのデプロイ列に、バッチバッジが表示されます。 これらのデプロイの場合、サービスドリフト、および精度のインジケーターは、予測の過去数日ではなく、予測の最後の数バッチに基づいています。 アクティビティチャートは、過去7日間にデプロイで行われたバッチ予測を表示します。

予測正常性インジケーターで表されるバッチ数を設定するには、デプロイのサービスの正常性データドリフト精度の設定タブでバッチ範囲を選択します。

設定 > サービスの正常性タブの定義セクションで、デプロイインベントリのサービスインジケーターに含める予測バッチの範囲を選択し、保存をクリックします。

これらの設定の詳細については、 サービスの正常性監視の設定に関するドキュメントを参照してください。

設定 > データドリフトタブの定義セクションで、デプロイインベントリのドリフトインジケーターに含める予測バッチの範囲を選択し、保存をクリックします。

これらの設定の詳細については、 データドリフト監視の設定に関するドキュメントを参照してください。

設定 > 精度タブの定義セクションで、デプロイインベントリのドリフトインジケーターに含める予測バッチの精度を選択し、保存をクリックします。

精度監視を設定するには、次のことが必要です。

バッチ予測を含むバッチの作成

バッチを作成し、それに予測を追加するには、デプロイでバッチ予測を行うか、バッチ予測ジョブをスケジュールします。 バッチ予測またはスケジュールされたバッチ予測ジョブが実行されるたびに、バッチが自動的に作成され、バッチ予測ジョブからのすべての予測がそのバッチに追加されます。

予測 > 予測を作成タブでは、標準のデプロイと同じように1回限りのバッチ予測を行うことができます。ただし、バッチデプロイの場合、バッチ管理タブのバッチ名で予測日時に付加するバッチ監視の接頭辞を設定できます。

予測 > 予測ジョブタブでは、+ ジョブ定義を追加をクリックして、標準のデプロイと同じように定期的なバッチ予測ジョブを作成することができます。ただし、バッチデプロイの場合、バッチ管理タブのバッチ名で予測日時に付加するバッチ監視の接頭辞を設定できます。

さらに、予測 > 予測APIタブでは、バッチ管理タブでバッチを作成し、それに予測を追加するDataRobot APIリクエストを行うPythonコードスニペットをコピーして実行できます。

バッチを作成し、エージェントで監視する予測を追加

バッチバッジが付いたデプロイでは、予測 > バッチ管理タブにアクセスし、バッチを追加できます。 バッチIDを取得したら、そのバッチに予測を割り当てることができます。 UIまたはAPIを使ってバッチを作成できます。

予測 > バッチ管理 タブで、+ バッチを作成するをクリックして、バッチ名を入力し、送信をクリックします。

以下のPythonスクリプトは、バッチ管理タブでバッチを作成するためのDataRobot APIリクエストを行います。

create_batch.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
import requests

API_KEY = <api_key>
DATAROBOT_KEY = <datarobot_key>

BATCH_CREATE_URL = "https://app.datarobot.com/api/v2/deployments/<deployment_id>/monitoringBatches/"

headers = {
    'Content-Type': 'application/json; charset=UTF-8',
    'Authorization': 'Bearer {}'.format(API_KEY),
    'DataRobot-Key': DATAROBOT_KEY,
}

requests_body = {'batchName': '<batch_name>'}

response = requests.post(url=BATCH_CREATE_URL, headers=headers, json=request_body)

print(response.json()) 

このスクリプトを実行する前に、上でハイライトされている行でAPI_KEYDATAROBOT_KEYBATCH_CREATE_URLbatchNameを定義します。 シークレットは外部に保存し、スクリプトにインポートすることをお勧めします。

新しいバッチに予測を追加できるようになりました。 エージェントが監視する外部モデルからバッチに予測を追加するには、MLOpsエージェントのtarballで提供されているバッチ監視の例に従います。 例を実行する前に、予測 > バッチ管理タブで、外部予測を追加したいバッチのバッチIDをコピーして保存し、エージェント例の入力引数として使用します。

MLOpsエージェントのtarballに含まれているサンプルスクリプトBatchMonitoringExample/binary_classification.pyでは、入力引数として指定したバッチ IDが、以下のハイライト行のreport_deployment_statsおよびreport_predictions_data呼び出しでのbatch_idを定義します。

binary_classification.py
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
 # MLOPS: report deployment metrics: number of predictions and execution time
    m.report_deployment_stats(
        predictions_array.shape[0],
        (end_time - start_time) * 1000,
        batch_id=args.batch_id,
    )

    target_column_name = columns[len(columns) - 1]
    predictions = []

    orig_labels = test_df[target_column_name].tolist()
    # Based on prediction value and the threshold assign correct label to each prediction
    target_labels = []
    for value in predictions_array.tolist():
        if len(value) == 1:
            # Random forest classifier from scikit-learn can return a single probability value
            # instead of 2 values.  You need to infer the other one before reporting predictions,
            # because, 'report_predictions_data' expects probability for each class.
            value.append(1 - value[0])
        predictions.append(value)
        if value[0] < prediction_threshold:
            target_labels.append("0.0")
        else:
            target_labels.append("1.0")

    # Write csv file with labels and association Id, when output file is provided
    if args.actuals_filename is not None:
        write_actuals_file(args.actuals_filename, orig_labels, association_ids)

    # MLOPS: report test features and predictions and association_ids
    m.report_predictions_data(
        features_df=test_df,
        predictions=predictions,
        association_ids=association_ids,
        batch_id=args.batch_id,
    )

    m.shutdown()


if __name__ == "__main__":
    main() 

エージェントによって報告された予測は、コードで定義したバッチに追加されます。

バッチCLIツールを使用したバッチの作成

DataRobotコマンドラインインターフェイス(CLI)を使用してバッチ予測を行うには、デプロイの予測 > 予測APIタブからCLIツールをダウンロードします。 このツールを見つけるには、予測タイプバッチに設定され、インターフェイスCLIに設定されていることを確認します。その後、CLIツールをダウンロード(またはスクリプトをクリップボードにコピー)をクリックします。

ダウンロードしたpredict.pyファイルを開き(またはコピーしたコードをpythonファイルに貼り付け)、以下でハイライトされたコードをファイル内の適切な場所に追加して、バッチに名前を割り当てるmonitoringBatchPrefixを定義します。

predict.py
408
409
410
411
412
413
414
415
416
417
418
419
420
421
    elif args.predictions_start_date:
        logger.info("Cannot use --predictions_start_date without --predictions_end_date")
        return 1
    elif args.predictions_end_date:
        logger.info("Cannot use --predictions_end_date without --predictions_start_date")
        return 1

    payload['monitoringBatchPrefix'] = 'Batch From predict.py'

    try:
        make_datarobot_batch_predictions(input_file, output_file, payload)
    except DataRobotPredictionError as err:
        logger.exception("Error: {}".format(err))
        return 1 

これで、CLIを標準で使用できるようになりました。バッチ予測は、このファイルで定義されたバッチ接頭辞を持つバッチに追加されます。

バッチの管理

予測 > バッチ管理タブでは、バッチの作成に加えて、さまざまな管理アクションを実行したり、現在のデプロイで1日に作成可能なバッチ数の上限に対する状況を確認したりできます。

バッチ管理ページの上部には、バッチが作成されましたプログレスバーが表示されます。 作成可能なバッチ数の上限は、デフォルトでは_1デプロイあたり1日に_100バッチです。 プログレスバーの下には、1日の上限数がリセットされるタイミングが表示されます。

備考

デフォルトは_1デプロイあたり1日に_100バッチですが、組織の設定によって上限数が異なる場合があります。 セルフマネージドAIプラットフォームをご利用の場合、組織の管理者が特に設定しない限り、この制限は適用されません。

ヒント

バッチが作成されましたでの上限数に対する現在の状況は、使用状況タブでも確認できます。

以下のリストでは、バッチ名バッチID作成日最も古い予測最も新しい予測作成者作成者予測の数などのバッチ情報を表形式で確認できます。

さらに、次のような詳細情報を表示できます。

説明
サービスの正常性 このバッチに400エラーまたは500エラーの予測があるかどうかを示します。
ジョブステータス バッチ予測ジョブに関連付けられたバッチの場合、このバッチを作成したバッチ予測ジョブの現在のステータスを示します。

ジョブステータス列とアクション列では、複数の管理アクションを実行できます。

アクション 説明
バッチ予測ジョブに関連付けられたバッチの場合デプロイ > バッチジョブタブを開き、そのバッチに関連付けられた予測ジョブを表示します。
バッチをロックして、新しい予測が追加されないようにします。
バッチを削除して、誤った予測を取り除きます。

バッチをクリックすると情報タブが開き、バッチ名説明外部URLを確認・編集()できます。 さらに、バッチIDの横にあるコピーアイコン()をクリックすると、予測コードスニペットで使用するIDをコピーすることができます。

モデルの履歴タブをクリックすると、バッチでの予測に使用されたモデルのモデルIDが表示されます。 予測の開始時刻フィールドと終了時刻フィールドを参照することもできます。 日付を編集()して、過去のデータで行われた予測を識別することができます。これにより、デプロイチャートには、DataRobotがいつ予測を受け取ったかを表示する代わりに、過去のデータを取得した時点の予測情報を表示できます。

バッチデプロイの監視

バッチデプロイは、バッチ固有の サービスの正常性データドリフト、および 精度の監視をサポートします。 これらの視覚化は、標準デプロイでの視覚化とは異なります。

サービスの正常性タブでは、さまざまなサービスの正常性指標チャートを表示できます。 これらのチャートでは、バーはバッチを表し、x軸は最も古い予測から最新の予測までの時間を表します。y軸は選択された指標を表します。 バッチ名セレクターを使用して、どのバッチが含まれるかを決定できます。

データドリフトタブでは、特徴量ドリフトと特徴量の有用性の比較特徴量の詳細バッチにおけるドリフトバッチを使った予測のチャートを表示できます。 バッチ名セレクターを使用して、どのバッチが含まれるかを決定できます。

チャート 説明
特徴量ドリフトと特徴量の有用性の比較 x軸に特徴量の有用性、y軸に特徴量のドリフト値をプロットしたチャート。 詳細については、特徴量ドリフトと特徴量の有用性の比較のドキュメントを参照してください。
特徴量の詳細 トレーニングデータにおける選択された特徴量の分布と、推論データにおけるその特徴量の分布を比較するヒストグラム。 詳細については、特徴量の詳細のドキュメントを参照してください。
バッチにおけるドリフト バッチをバーとしてプロットするチャート。x軸に沿ったバーの幅は、最も古い予測から最新の予測までの時間を表し、y軸上の位置は、そのバッチで選択された特徴量のデータドリフト値(PSI単位)を表します。 視覚化される特徴量は、特徴量の詳細チャートで選択された特徴量によって決定されます。
バッチを使った予測 バッチをバーとしてプロットするチャート。x軸に沿ったバーの幅は、最も古い予測から最新の予測までの時間を表し、y軸上の位置は、 平均予測値 (連続値)またはクラス(二値)内の レコードのパーセンテージ を表します。

精度タブでは、バッチデプロイの精度指標値を表示できます。 バッチ名セレクターを使用して、どのバッチが含まれるかを決定できます。 さらに、タブに表示される指標をカスタマイズするには、 タイルをカスタマイズをクリックします。 次の精度チャートを表示することもできます。

チャート 説明
全クラスのバッチに対する精度 バッチをバーとしてプロットするチャート。x軸に沿ったバーの幅は、最も古い予測から最新の予測までの時間を表し、y軸上の位置は、そのバッチの精度値を表します。
全クラスの予測値と実測値 分類プロジェクトのデプロイの場合、バッチをバーとしてプロットするチャート。 各バッチでは、x軸に沿ったバーの幅は、最も古い予測から最新の予測までの時間を表し、y軸上の位置は、選択されたクラス(クラスドロップダウンメニューで変更可能)での予測レコードのパーセンテージを表します。 実測値はオレンジ、予測値はで表示されます。 このチャートから、 欠損実測値のIDをダウンロードできます。

サービスの正常性、データドリフト、および精度の監視に加えて、バッチデプロイの データ探索カスタム指標を設定できます。 これらの各タブでは、バッチ名セレクターを使用して、どのバッチを含めるかを決定できます。

バッチを選択モーダルで、 をクリックするとバッチが選択され、右(選択済み)の列に移動します。 また、 をクリックして選択したバッチを削除し、左(未選択)の列に戻ることもできます。

備考

デフォルトでは、視覚化されたバッチ監視には、予測を受け取った直近の10バッチが表示されます。 選択したバッチを変更できます。最大25個のバッチを選択できます。


更新しました October 2, 2024