取得批次推論和說明

本頁說明如何使用 Google Cloud 控制台或 Vertex AI API,向已訓練的 AutoML 分類或迴歸模型提出批次推論要求。

批次推論要求是屬於非同步要求 (與線上推論不同,後者屬於同步要求)。您可以直接從模型資源要求批次推論,而無需將模型部署至端點。如果是表格資料,如果您不需要立即取得回應,並想透過單一要求處理累積的資料,就適合使用批次推論功能。

如要提出批次推論要求,您必須指定輸入來源和輸出格式,讓 Vertex AI 儲存推論結果。

事前準備

您必須先訓練模型,才能提出批次推論要求。

輸入資料

批次推論要求的輸入資料,是模型用於推論的資料。對於分類或迴歸模型,您可以使用下列格式之一提供輸入資料:

  • BigQuery 資料表
  • Cloud Storage 中的 CSV 物件

建議您使用與訓練模型相同的格式輸入資料。舉例來說,如果您使用 BigQuery 中的資料訓練模型,最好使用 BigQuery 資料表做為批次推論的輸入內容。由於 Vertex AI 會將所有 CSV 輸入欄位視為字串,因此混合訓練和輸入資料格式可能會導致錯誤。

資料來源必須包含表格資料,其中包含用於訓練模型的所有欄 (可隨意排序)。您可以納入未包含在訓練資料中的資料欄,或是訓練資料中未用於訓練的資料欄。這些額外欄會納入輸出內容,但不會影響推論結果。

輸入資料規定

BigQuery 資料表

如果您選擇 BigQuery 資料表做為輸入內容,請務必確保以下事項:

  • BigQuery 資料來源資料表不得超過 100 GB。
  • 如果該資料表位於其他專案,您必須將 BigQuery Data Editor 角色授予該專案中的 Vertex AI 服務帳戶。

CSV 檔案

如果您選擇 Cloud Storage 中的 CSV 物件做為輸入內容,請務必確保以下事項:

  • 資料來源開頭必須是含有欄名稱的標題列。
  • 每個資料來源物件不得超過 10 GB。您可以加入多個檔案,但總大小上限為 100 GB。
  • 如果 Cloud Storage 值區位於其他專案,則必須將 Storage Object Creator 角色授予該專案中的 Vertex AI 服務帳戶。
  • 您必須將所有字串括在雙引號 (") 中。

輸出格式

批次推論要求的輸出格式不必與輸入格式相同。舉例來說,如果您使用 BigQuery 表格做為輸入內容,可以將結果輸出至 Cloud Storage 中的 CSV 物件。

向模型提出批次推論要求

如要提出批次推論要求,您可以使用 Google Cloud 控制台或 Vertex AI API。輸入資料來源可以是儲存在 Cloud Storage 值區或 BigQuery 資料表中的 CSV 物件。視您提交的資料量而定,批次推論工作可能需要一些時間才能完成。

Google Cloud 控制台

使用 Google Cloud 控制台要求批次預測。

  1. 在 Google Cloud 控制台的 Vertex AI 專區中,前往「批次推論」頁面。

    前往「Batch inferences」(批次推論) 頁面

  2. 按一下「Create」,開啟「New batch inference」視窗。
  3. 如要定義批次推論,請完成下列步驟:
    1. 輸入批次推論的名稱。
    2. 在「Model name」(模型名稱) 中,選取要用於此批次推論的模型名稱。
    3. 在「Version」 中,選取要用於此批次推論的模型版本。
    4. 在「選取來源」中,選取來源輸入資料是 Cloud Storage 中的 CSV 檔案,還是 BigQuery 中的資料表。
      • 針對 CSV 檔案,請指定 CSV 輸入檔案所在的 Cloud Storage 位置。
      • 針對 BigQuery 資料表,請指定資料表所在的專案 ID、BigQuery 資料集 ID 和 BigQuery 資料表或檢視表 ID。
    5. 在「輸出」部分,選取「CSV」或「BigQuery」
      • 如果是 CSV,請指定 Vertex AI 儲存輸出內容的 Cloud Storage 值區。
      • 針對 BigQuery,您可以指定專案 ID 或現有資料集:
        • 如要指定專案 ID,請在「Google Cloud 專案 ID」欄位中輸入專案 ID。Vertex AI 會為您建立新的輸出資料集。
        • 如要指定現有資料集,請在「Google Cloud 專案 ID」欄位中輸入 BigQuery 路徑,例如 bq://projectid.datasetid
      • 選填。您可以要求進行含有說明的推論 (也稱為功能歸因),瞭解模型如何做出推論。當地特徵重要性值會指出各項特徵對推論結果的影響程度。透過 Vertex Explainable AI,將特徵歸因納入 Vertex AI 推論中。

        如要啟用特徵歸因,請選取「為這個模型啟用特徵歸因」。如果輸出目的地是 BigQuery 或 Cloud Storage 上的 JSONL,您就可以使用這個選項。Cloud Storage 上的 CSV 不支援功能歸因。

  4. 選用:模型監控 可在預先發布版中進行批次推論分析。如要將偏差偵測設定新增至批次推論工作,請參閱「必要條件」。
    1. 點選「為這個批次推論啟用模型監控功能」,切換為開啟。
    2. 選取訓練資料來源。輸入所選訓練資料來源的資料路徑或位置。
    3. 選用步驟:在「警告門檻」下方,指定觸發警報的門檻。
    4. 如要設定通知電子郵件,請輸入一或多個以半形逗號分隔的電子郵件地址,以便在模型超過快訊門檻時收到快訊。
    5. 選用:針對「通知管道」,新增 Cloud Monitoring 管道,以便在模型超過快訊門檻時收到快訊。您可以按一下「管理通知管道」,選取現有的 Cloud Monitoring 管道,或建立新的管道。控制台支援 PagerDuty、Slack 和 Pub/Sub 通知管道。
  5. 按一下 [建立]。

API:BigQuery

REST

您可以使用 batchPredictionJobs.create 方法要求批次預測。

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:模型儲存及執行批次推論工作的位置。例如:us-central1
  • PROJECT_ID:您的專案 ID
  • BATCH_JOB_NAME:批次工作顯示名稱
  • MODEL_ID:模型的 ID,用於推論
  • INPUT_URI:BigQuery 資料來源的參照。在表單中:
    bq://bqprojectId.bqDatasetId.bqTableId
    
  • OUTPUT_URI:BigQuery 目的地參照 (推論寫入的位置)。指定專案 ID,並視需要指定現有資料集 ID。如果您只指定專案 ID,Vertex AI 會為您建立新的輸出資料集。請使用下列表單:
    bq://bqprojectId.bqDatasetId
    
  • MACHINE_TYPE:要用於這項批次推論工作的機器資源。瞭解詳情
  • STARTING_REPLICA_COUNT:此批次推論工作節點的起始數量。節點數量可視負載需求增加或減少,但不得低於節點數量上限。
  • MAX_REPLICA_COUNT:此批次推論工作節點數量上限。節點數量可視負載需求增加或減少,但絕不會超過上限。選用,預設值為 10。
  • GENERATE_EXPLANATION:您可以要求附帶說明 (也稱為功能歸因) 的推論,瞭解模型如何得出推論。當地特徵重要性值會指出各項特徵對推論結果的影響程度。透過 Vertex Explainable AI,將特徵歸因納入 Vertex AI 推論中。

    預設值為 false。設為 true 即可啟用功能歸因。

HTTP 方法和網址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs

JSON 要求主體:

{
  "displayName": "BATCH_JOB_NAME",
  "model": "MODEL_ID",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
      "outputUri": "OUTPUT_URI"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "MACHINE_TYPE",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": STARTING_REPLICA_COUNT,
    "maxReplicaCount": MAX_REPLICA_COUNT
  },

  "generateExplanation": GENERATE_EXPLANATION

}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content

您應該會收到如下的 JSON 回應:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890",
  "displayName": "batch_job_1 202005291958",
  "model": "projects/12345/locations/us-central1/models/5678",
  "state": "JOB_STATE_PENDING",
  "inputConfig": {
    "instancesFormat": "bigquery",
    "bigquerySource": {
      "inputUri": "INPUT_URI"
    }
  },
  "outputConfig": {
    "predictionsFormat": "bigquery",
    "bigqueryDestination": {
        "outputUri": bq://12345
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "n1-standard-32",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": 2,
    "maxReplicaCount": 6
  },
  "manualBatchTuningParameters": {
    "batchSize": 4
  },
  "generateExplanation": false,
  "outputInfo": {
    "bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04
  }
  "state": "JOB_STATE_PENDING",
  "createTime": "2020-09-30T02:58:44.341643Z",
  "updateTime": "2020-09-30T02:58:44.341643Z",
}

Java

在試用這個範例之前,請先按照 Vertex AI 快速入門:使用用戶端程式庫中的操作說明設定 Java。詳情請參閱 Vertex AI Java API 參考說明文件

如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。

在以下範例中,請將 INSTANCES_FORMATPREDICTIONS_FORMAT 替換為 `bigquery`。如要瞭解如何替換其他預留位置,請參閱本節的「REST 和 CMD LINE」分頁。
import com.google.cloud.aiplatform.v1.BatchPredictionJob;
import com.google.cloud.aiplatform.v1.BigQueryDestination;
import com.google.cloud.aiplatform.v1.BigQuerySource;
import com.google.cloud.aiplatform.v1.JobServiceClient;
import com.google.cloud.aiplatform.v1.JobServiceSettings;
import com.google.cloud.aiplatform.v1.LocationName;
import com.google.cloud.aiplatform.v1.ModelName;
import com.google.gson.JsonObject;
import com.google.protobuf.Value;
import com.google.protobuf.util.JsonFormat;
import java.io.IOException;

public class CreateBatchPredictionJobBigquerySample {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String project = "PROJECT";
    String displayName = "DISPLAY_NAME";
    String modelName = "MODEL_NAME";
    String instancesFormat = "INSTANCES_FORMAT";
    String bigquerySourceInputUri = "BIGQUERY_SOURCE_INPUT_URI";
    String predictionsFormat = "PREDICTIONS_FORMAT";
    String bigqueryDestinationOutputUri = "BIGQUERY_DESTINATION_OUTPUT_URI";
    createBatchPredictionJobBigquerySample(
        project,
        displayName,
        modelName,
        instancesFormat,
        bigquerySourceInputUri,
        predictionsFormat,
        bigqueryDestinationOutputUri);
  }

  static void createBatchPredictionJobBigquerySample(
      String project,
      String displayName,
      String model,
      String instancesFormat,
      String bigquerySourceInputUri,
      String predictionsFormat,
      String bigqueryDestinationOutputUri)
      throws IOException {
    JobServiceSettings settings =
        JobServiceSettings.newBuilder()
            .setEndpoint("us-central1-aiplatform.googleapis.com:443")
            .build();
    String location = "us-central1";

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (JobServiceClient client = JobServiceClient.create(settings)) {
      JsonObject jsonModelParameters = new JsonObject();
      Value.Builder modelParametersBuilder = Value.newBuilder();
      JsonFormat.parser().merge(jsonModelParameters.toString(), modelParametersBuilder);
      Value modelParameters = modelParametersBuilder.build();
      BigQuerySource bigquerySource =
          BigQuerySource.newBuilder().setInputUri(bigquerySourceInputUri).build();
      BatchPredictionJob.InputConfig inputConfig =
          BatchPredictionJob.InputConfig.newBuilder()
              .setInstancesFormat(instancesFormat)
              .setBigquerySource(bigquerySource)
              .build();
      BigQueryDestination bigqueryDestination =
          BigQueryDestination.newBuilder().setOutputUri(bigqueryDestinationOutputUri).build();
      BatchPredictionJob.OutputConfig outputConfig =
          BatchPredictionJob.OutputConfig.newBuilder()
              .setPredictionsFormat(predictionsFormat)
              .setBigqueryDestination(bigqueryDestination)
              .build();
      String modelName = ModelName.of(project, location, model).toString();
      BatchPredictionJob batchPredictionJob =
          BatchPredictionJob.newBuilder()
              .setDisplayName(displayName)
              .setModel(modelName)
              .setModelParameters(modelParameters)
              .setInputConfig(inputConfig)
              .setOutputConfig(outputConfig)
              .build();
      LocationName parent = LocationName.of(project, location);
      BatchPredictionJob response = client.createBatchPredictionJob(parent, batchPredictionJob);
      System.out.format("response: %s\n", response);
      System.out.format("\tName: %s\n", response.getName());
    }
  }
}

Python 適用的 Vertex AI SDK

如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Vertex AI SDK for Python API 參考說明文件

在以下範例中,將 `instances_format` 和 `predictions_format` 參數設為 `"bigquery"`。如要瞭解如何設定其他參數,請參閱本節的「REST 和 CMD LINE」分頁。
from google.cloud import aiplatform_v1beta1
from google.protobuf import json_format
from google.protobuf.struct_pb2 import Value


def create_batch_prediction_job_bigquery_sample(
    project: str,
    display_name: str,
    model_name: str,
    instances_format: str,
    bigquery_source_input_uri: str,
    predictions_format: str,
    bigquery_destination_output_uri: str,
    location: str = "us-central1",
    api_endpoint: str = "us-central1-aiplatform.googleapis.com",
):
    # The AI Platform services require regional API endpoints.
    client_options = {"api_endpoint": api_endpoint}
    # Initialize client that will be used to create and send requests.
    # This client only needs to be created once, and can be reused for multiple requests.
    client = aiplatform_v1beta1.JobServiceClient(client_options=client_options)
    model_parameters_dict = {}
    model_parameters = json_format.ParseDict(model_parameters_dict, Value())

    batch_prediction_job = {
        "display_name": display_name,
        # Format: 'projects/{project}/locations/{location}/models/{model_id}'
        "model": model_name,
        "model_parameters": model_parameters,
        "input_config": {
            "instances_format": instances_format,
            "bigquery_source": {"input_uri": bigquery_source_input_uri},
        },
        "output_config": {
            "predictions_format": predictions_format,
            "bigquery_destination": {"output_uri": bigquery_destination_output_uri},
        },
        # optional
        "generate_explanation": True,
    }
    parent = f"projects/{project}/locations/{location}"
    response = client.create_batch_prediction_job(
        parent=parent, batch_prediction_job=batch_prediction_job
    )
    print("response:", response)

API:Cloud Storage

REST

您可以使用 batchPredictionJobs.create 方法要求批次推論。

使用任何要求資料之前,請先替換以下項目:

  • LOCATION_ID:模型儲存及執行批次推論工作的位置。例如:us-central1
  • PROJECT_ID:您的專案 ID
  • BATCH_JOB_NAME:批次工作顯示名稱
  • MODEL_ID:模型的 ID,用於推論
  • URI:含有訓練資料的 Cloud Storage 值區路徑 (URI)。可以有多個。每個 URI 的格式如下:
    gs://bucketName/pathToFileName
    
  • OUTPUT_URI_PREFIX:Cloud Storage 目的地路徑,用於寫入推論。Vertex AI 會將批次推論寫入這個路徑的子目錄,並加上時間戳記。將這個值設為格式如下的字串:
    gs://bucketName/pathToOutputDirectory
    
  • MACHINE_TYPE:要用於這項批次推論工作的機器資源。瞭解詳情
  • STARTING_REPLICA_COUNT:此批次推論工作節點的起始數量。節點數量可視負載需求增加或減少,但不得低於節點數量上限。
  • MAX_REPLICA_COUNT:此批次推論工作節點數量上限。節點數量可視負載需求增加或減少,但絕不會超過上限。選用,預設值為 10。
  • GENERATE_EXPLANATION:您可以要求附帶說明 (也稱為功能歸因) 的推論,瞭解模型如何得出推論。當地特徵重要性值會指出各項特徵對推論結果的影響程度。透過 Vertex Explainable AI,將特徵歸因納入 Vertex AI 推論中。

    預設值為 false。設為 true 可啟用功能歸因。只有在輸出目的地為 JSONL 時,才能使用這個選項。Cloud Storage 中的 CSV 不支援功能歸因。

HTTP 方法和網址:

POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs

JSON 要求主體:

{
  "displayName": "BATCH_JOB_NAME",
  "model": "MODEL_ID",
  "inputConfig": {
    "instancesFormat": "csv",
    "gcsSource": {
      "uris": [
        URI1,...
      ]
    },
  },
  "outputConfig": {
    "predictionsFormat": "csv",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_URI_PREFIX"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "MACHINE_TYPE",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": STARTING_REPLICA_COUNT,
    "maxReplicaCount": MAX_REPLICA_COUNT
  },

  "generateExplanation": GENERATE_EXPLANATION

}

如要傳送要求,請選擇以下其中一個選項:

curl

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"

PowerShell

將要求主體儲存在名為 request.json 的檔案中,然後執行下列指令:

$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://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content

您應該會收到如下的 JSON 回應:

{
  "name": "projects/PROJECT__ID/locations/LOCATION_ID/batchPredictionJobs/67890",
  "displayName": "batch_job_1 202005291958",
  "model": "projects/12345/locations/us-central1/models/5678",
  "state": "JOB_STATE_PENDING",
  "inputConfig": {
    "instancesFormat": "csv",
    "gcsSource": {
      "uris": [
        "gs://bp_bucket/reg_mode_test"
      ]
    }
  },
  "outputConfig": {
    "predictionsFormat": "csv",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_URI_PREFIX"
    }
  },
  "dedicatedResources": {
    "machineSpec": {
      "machineType": "n1-standard-32",
      "acceleratorCount": "0"
    },
    "startingReplicaCount": 2,
    "maxReplicaCount": 6
  },
  "manualBatchTuningParameters": {
    "batchSize": 4
  }
  "outputInfo": {
    "gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z"
  }
  "state": "JOB_STATE_PENDING",
  "createTime": "2020-09-30T02:58:44.341643Z",
  "updateTime": "2020-09-30T02:58:44.341643Z",
}

擷取批次推論結果

Vertex AI 會將批次推論的輸出內容傳送至您指定的目的地,可以是 BigQuery 或 Cloud Storage。

BigQuery

輸出資料集

如果您使用 BigQuery,批次推論的輸出內容會儲存在輸出資料集中。如果您已向 Vertex AI 提供資料集,資料集名稱 (BQ_DATASET_NAME) 就是您先前提供的名稱。如果您未提供輸出資料集,Vertex AI 會為您建立一個。您可以按照下列步驟找到其名稱 (BQ_DATASET_NAME):

  1. 在 Google Cloud 控制台中,前往 Vertex AI 的「Batch predictions」頁面。

    前往「Batch inferences」(批次推論) 頁面

  2. 選取您建立的推論。
  3. 輸出資料集會顯示在「匯出位置」中。資料集名稱的格式如下: prediction_MODEL_NAME_TIMESTAMP
輸出資料表

輸出資料集包含下列三個輸出資料表之一或多個:

  • 預測表格

    這個表格包含輸入資料中每個要求推論的資料列 (也就是 TARGET_COLUMN_NAME = null 的資料列)。

  • 錯誤表格

    這個表格會為批次推論期間遇到的每個非重大錯誤建立一列。每個非重要錯誤都對應至 Vertex AI 無法傳回預測資料的輸入資料列。

預測表格

資料表名稱 (BQ_PREDICTIONS_TABLE_NAME) 的組成方式是將 `predictions_` 附加至批次推論工作開始的時間戳記:predictions_TIMESTAMP

如要擷取推論結果,請前往「BigQuery」頁面。

前往 BigQuery

查詢格式會因模型類型而異:

分類:

SELECT predicted_TARGET_COLUMN_NAME.classes AS classes,
predicted_TARGET_COLUMN_NAME.scores AS scores
FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME

classes 是可能類別的清單,而 scores 則是對應的信任度分數。

迴歸:

SELECT predicted_TARGET_COLUMN_NAME.value,
predicted_TARGET_COLUMN_NAME.lower_bound,
predicted_TARGET_COLUMN_NAME.upper_bound
FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME

如果您已啟用功能歸因,也可以在預測資料表中找到這些資料。如要存取功能 BQ_FEATURE_NAME 的歸因資料,請執行下列查詢:

SELECT explanation.attributions[OFFSET(0)].featureAttributions.BQ_FEATURE_NAME FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
  

錯誤表格

表格名稱 (BQ_ERRORS_TABLE_NAME) 的形成方式是將 errors_ 附加至批次推論工作開始的時間戳記:errors_TIMESTAMP 如要擷取錯誤驗證表格:
  1. 前往控制台的「BigQuery」頁面。

    前往 BigQuery

  2. 執行以下查詢:
    SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
          
錯誤會儲存在下列資料欄:
  • errors_TARGET_COLUMN_NAME.code
  • errors_TARGET_COLUMN_NAME.message

Cloud Storage

如果您指定 Cloud Storage 做為輸出目的地,批次推論要求的結果會以 CSV 物件的形式,在您指定的值區中新建立的資料夾中傳回。資料夾名稱是模型名稱,前面加上「prediction-」,後面接上批次推論工作開始的時間戳記。您可以在模型的「批次預測」分頁中找到 Cloud Storage 資料夾名稱。

Cloud Storage 資料夾包含兩種物件:
  • 預測物件

    推論物件會命名為 `predictions_1.csv`、`predictions_2.csv` 等等。其中包含一行含有資料欄名稱的標題列,以及每個傳回推論的一行。在推論物件中,Vertex AI 會傳回推論資料,並根據模型類型為推論結果建立一或多個新欄:

    • 分類:針對目標欄的每個可能值,結果會新增名為 TARGET_COLUMN_NAME_VALUE_score 的資料欄。這個資料欄包含該值的評分或置信度估計值。
    • 迴歸:該列的預測值會傳回至名為 predicted_TARGET_COLUMN_NAME 的資料欄。系統不會針對 CSV 輸出內容傳回預測間隔。
  • 錯誤物件

    錯誤物件會命名為 `errors_1.csv`、`errors_2.csv` 等等。 這些資料包含標題列,以及 Vertex AI 無法傳回推論 (例如,如果非可為空值的特徵為空值) 的輸入資料中每個資料列的資料列。

注意:如果結果很大,系統會將其拆分為多個物件。

對於 Cloud Storage 中傳回的批次推論結果,無法提供功能歸屬資訊。

解讀推論結果

分類

分類模型會傳回可信度分數。

信心分數會顯示模型將每個類別或標籤與測試項目建立關聯的強度。數字越高,表示模型判斷標籤適用於該項目的信心就越高。您可以自行決定接受模型結果所需的可信度分數門檻。

迴歸

迴歸模型會傳回推論值。對於 BigQuery 目的地,也會傳回推論間隔。推論間隔會提供值範圍,模型有 95% 信心包含實際結果。

解讀說明結果

如果批次推論結果儲存在 BigQuery 中,且您選擇啟用功能歸因功能,就可以在推論表格中找到功能歸因值。

如要計算本地特徵的重要性,系統會先計算基準推論分數。基準值會根據訓練資料計算,其中數值特徵使用中位數值,類別特徵則使用模式。從基準值產生的推論就是基準推論分數。基準值會針對模型計算一次,且不會變更。

針對特定推論,每項特徵的區域特徵重要性會指出,與基準推論分數相比,該特徵對結果的加分或減分幅度。所有特徵重要性值的總和,等於基準推論分數與推論結果之間的差異。

對於分類模型,分數一律會介於 0.0 和 1.0 之間 (含頭尾)。因此,分類模型的本地特徵重要性值一律會介於 -1.0 和 1.0 (含) 之間。

如需功能歸因查詢的範例和詳細資訊,請參閱「分類和迴歸的功能歸因」。

後續步驟