このページでは、AML AI のバックテスト予測結果を作成および管理する方法について説明します。バックテスト予測では、既存の過去のデータに対してトレーニング済みモデルを使用します。これらの月のデータセットには、AML_EXIT イベントにつながる不審なアクティビティまたは調査開始日を持つ当事者が含まれている必要があります。AML AI がさまざまな当事者にラベルを付ける方法について詳しくは、リスクケースのライフサイクルをご覧ください。
トレーニングの終了日がバックテストの日付より前であれば、トレーニングとバックテストに同じデータセットを使用できます。
始める前に
-
バックテスト結果の作成と管理に必要な権限を取得するには、プロジェクトに対する金融サービス管理者(
financialservices.admin)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。 - インスタンスを作成する
- モデルを作成
- データセットを作成する
バックテスト結果を作成する
一部の API メソッドは長時間実行オペレーション(LRO)を返します。 これらのメソッドは非同期で、Operation オブジェクトを返します。詳細については、REST リファレンスをご覧ください。このメソッドがレスポンスを返すときにオペレーションが完了していない場合があります。これらのメソッドの場合、リクエストを送信して結果を確認します。一般に、すべての POST、PUT、UPDATE、DELETE オペレーションは長時間実行されます。
リクエストを送信する
バックテスト結果を作成するには、projects.locations.instances.backtestResults.create メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。 サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子BACKTEST_RESULTS_ID: バックテスト結果のユーザー定義の識別子MODEL_ID: モデルのユーザー定義の識別子BACKTEST_DATASET_ID: バックテストに使用されるデータセットのユーザー定義の識別子。テーブルにトレーニング ラベル列を含めることはできませんBACKTEST_END_DATE: バックテスト用の特徴を生成するためにデータが使用された最新の時刻。この日付は、データセットの終了日時と同じかそれ以前にする必要があります。RFC3339 UTC「Zulu」形式を使用します(例:2014-10-02T15:01:23Z)。PARTY_INVESTIGATIONS_PER_PERIOD_HINT: 期間ごとに(毎月)調査されるこのデータの当事者の数に関するヒントをチューナーに与える数値。モデルの評価方法の制御に使用されます。たとえば、AML AI を初めて試す場合は、既存の自動アラート システムのアラートに基づいて、平均 1 か月間に調査された当事者の数に設定することをおすすめします。
リクエストの本文(JSON):
{
"model": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/models/MODEL_ID",
"dataset": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/datasets/BACKTEST_DATASET_ID",
"endTime": "BACKTEST_END_DATE",
"backtestPeriods": 5,
"performanceTarget": {
"partyInvestigationsPerPeriodHint": "PARTY_INVESTIGATIONS_PER_PERIOD_HINT"
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF'
{
"model": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/models/MODEL_ID",
"dataset": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/datasets/BACKTEST_DATASET_ID",
"endTime": "BACKTEST_END_DATE",
"backtestPeriods": 5,
"performanceTarget": {
"partyInvestigationsPerPeriodHint": "PARTY_INVESTIGATIONS_PER_PERIOD_HINT"
}
}
EOFその後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults?backtest_result_id=BACKTEST_RESULTS_ID"
PowerShell
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@'
{
"model": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/models/MODEL_ID",
"dataset": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/datasets/BACKTEST_DATASET_ID",
"endTime": "BACKTEST_END_DATE",
"backtestPeriods": 5,
"performanceTarget": {
"partyInvestigationsPerPeriodHint": "PARTY_INVESTIGATIONS_PER_PERIOD_HINT"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults?backtest_result_id=BACKTEST_RESULTS_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": CREATE_TIME,
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
結果を確認する
バックテスト結果が作成されたかどうかを確認するには、projects.locations.operations.get メソッドを使用します。レスポンスに "done": false が含まれている場合は、レスポンスに "done": true が含まれるまでコマンドを繰り返します。これらのオペレーションの完了には数分~数時間かかることがあります。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に記載されている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。 サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
OPERATION_ID: オペレーションの ID。
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": "2023-03-14T15:52:55.358979323Z",
"endTime": "2023-03-14T16:52:55.358979323Z",
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"verb": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": true,
"response": {
"@type": "type.googleapis.com/dataresidency.monitoring.DataResidencyAugmentedView",
"tpIds": [
"i608e8cf4abb2a7d9-tp"
]
}
}
ExportMetadata
バックテスト結果からメタデータをエクスポートするには、projects.locations.instances.backtestResults.exportMetadata メソッドを使用します。
詳細については、AML 出力データモデルのエクスポートされたメタデータをご覧ください。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子BACKTEST_RESULTS_ID: バックテスト結果のユーザー定義の識別子BQ_OUTPUT_DATASET_NAME: バックテスト結果の構造化メタデータを記述するテーブルをエクスポートする BigQuery データセットSTRUCTURED_METADATA_TABLE: 構造化メタデータを書き込むテーブルWRITE_DISPOSITION: 宛先テーブルがすでに存在する場合に発生するアクション。次の値のいずれかを使用できます。-
WRITE_EMPTY: BigQuery テーブルが空の場合にのみデータをエクスポートします。 -
WRITE_TRUNCATE: テーブルに書き込む前に、BigQuery テーブル内の既存のデータをすべて削除します。
-
リクエストの本文(JSON):
{
"structuredMetadataDestination": {
"tableUri": "bq://PROJECT_ID.BQ_OUTPUT_DATASET_NAME.STRUCTURED_METADATA_TABLE",
"writeDisposition": "WRITE_DISPOSITION"
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF'
{
"structuredMetadataDestination": {
"tableUri": "bq://PROJECT_ID.BQ_OUTPUT_DATASET_NAME.STRUCTURED_METADATA_TABLE",
"writeDisposition": "WRITE_DISPOSITION"
}
}
EOFその後、次のコマンドを実行して REST リクエストを送信します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID:exportMetadata"
PowerShell
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@'
{
"structuredMetadataDestination": {
"tableUri": "bq://PROJECT_ID.BQ_OUTPUT_DATASET_NAME.STRUCTURED_METADATA_TABLE",
"writeDisposition": "WRITE_DISPOSITION"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID:exportMetadata" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": CREATE_TIME,
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"verb": "exportMetadata",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
長時間実行オペレーション(LRO)の結果を取得する方法の詳細については、結果の確認をご覧ください。
バックテスト結果を取得する
バックテスト結果を取得するには、projects.locations.instances.backtestResults.get メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。 サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子BACKTEST_RESULTS_ID: バックテスト結果のユーザー定義の識別子
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"state": "ACTIVE",
"dataset": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/datasets/BACKTEST_DATASET_ID",
"model": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/models/MODEL_ID",
"endTime": "BACKTEST_END_DATE",
"performanceTarget": {
"partyInvestigationsPerPeriodHint": "PARTY_INVESTIGATIONS_PER_PERIOD_HINT"
},
"lineOfBusiness": "RETAIL"
}
バックテスト結果を更新する
バックテスト結果を更新するには、projects.locations.instances.backtestResults.patch メソッドを使用します。
バックテストの labels フィールドのみ更新できます。次の例では、バックテスト結果に関連付けられた Key-Value ペアのユーザーラベルを更新します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。 サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子BACKTEST_RESULTS_ID: バックテスト結果のユーザー定義の識別子KEY: バックテスト結果の整理に使用する Key-Value ペアのキー。詳細については、labelsをご覧ください。VALUE: バックテスト結果の整理に使用する Key-Value ペアの値。詳細については、labelsをご覧ください。
リクエストの本文(JSON):
{
"labels": {
"KEY": "VALUE"
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
cat > request.json << 'EOF'
{
"labels": {
"KEY": "VALUE"
}
}
EOFその後、次のコマンドを実行して REST リクエストを送信します。
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID?updateMask=labels"
PowerShell
リクエスト本文を request.json という名前のファイルに保存します。ターミナルで次のコマンドを実行して、このファイルを現在のディレクトリに作成または上書きします。
@'
{
"labels": {
"KEY": "VALUE"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8その後、次のコマンドを実行して REST リクエストを送信します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID?updateMask=labels" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": CREATE_TIME,
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
長時間実行オペレーション(LRO)の結果を取得する方法の詳細については、結果の確認をご覧ください。
バックテスト結果を一覧表示する
特定のインスタンスのバックテスト結果を表示するには、projects.locations.instances.backtestResults.list メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。 サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"backtestResults": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"createTime": CREATE_TIME,
"updateTime": UPDATE_TIME,
"state": "ACTIVE",
"dataset": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/datasets/BACKTEST_DATASET_ID",
"model": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/models/MODEL_ID",
"endTime": "BACKTEST_END_DATE",
"performanceTarget": {
"partyInvestigationsPerPeriodHint": "PARTY_INVESTIGATIONS_PER_PERIOD_HINT"
},
"lineOfBusiness": "RETAIL"
}
]
}
バックテスト結果を削除する
バックテスト結果を削除するには、projects.locations.instances.backtestResults.delete メソッドを使用します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト IDLOCATION: インスタンスのロケーション。サポートされているリージョンのいずれかを使用します。ロケーションを表示us-central1us-east1asia-south1europe-west1europe-west2europe-west4northamerica-northeast1southamerica-east1australia-southeast1
INSTANCE_ID: インスタンスのユーザー定義の識別子BACKTEST_RESULTS_ID: バックテスト結果のユーザー定義の識別子
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://financialservices.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.financialservices.v1.OperationMetadata",
"createTime": CREATE_TIME,
"target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/backtestResults/BACKTEST_RESULTS_ID",
"verb": "delete",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
長時間実行オペレーション(LRO)の結果を取得する方法の詳細については、結果の確認をご覧ください。