Obtenha inferências em lote amplas e avançadas

Esta página mostra-lhe como fazer um pedido de inferência em lote ao seu modelo de classificação ou regressão preparado usando a consola ou a API Vertex AI. Google Cloud

Um pedido de inferência em lote é um pedido assíncrono (ao contrário da inferência online, que é um pedido síncrono). Pede inferências em lote diretamente do recurso do modelo sem implementar o modelo num ponto final. Para dados tabulares, use inferências em lote quando não precisar de uma resposta imediata e quiser processar dados acumulados usando um único pedido.

Para fazer um pedido de inferência em lote, especifique uma origem de entrada e um formato de saída onde o Vertex AI armazena os resultados da inferência.

Antes de começar

Antes de fazer um pedido de inferência em lote, primeiro forme um modelo.

Dados de entrada

Os dados de entrada para pedidos de inferência em lote são os dados que o seu modelo usa para fazer inferências. Para modelos de classificação ou regressão, pode fornecer dados de entrada num dos seguintes formatos:

  • Tabelas do BigQuery
  • Objetos CSV no Cloud Storage

Recomendamos que use o mesmo formato para os dados de entrada que usou para formar o modelo. Por exemplo, se tiver preparado o modelo com dados no BigQuery, é melhor usar uma tabela do BigQuery como entrada para a inferência em lote. Uma vez que o Vertex AI trata todos os campos de entrada CSV como strings, a mistura de formatos de dados de entrada e de preparação pode causar erros.

A sua origem de dados tem de conter dados tabulares que incluam todas as colunas, por qualquer ordem, que foram usadas para preparar o modelo. Pode incluir colunas que não estavam nos dados de preparação ou que estavam nos dados de preparação, mas foram excluídas da utilização para preparação. Estas colunas adicionais estão incluídas na saída, mas não afetam os resultados da inferência.

Requisitos de dados de entrada

tabela do BigQuery

Se escolher uma tabela do BigQuery como entrada, tem de garantir o seguinte:

  • As tabelas de origem de dados do BigQuery não podem ter mais de 100 GB.
  • Se a tabela estiver num projeto diferente, tem de conceder a função BigQuery Data Editor à conta de serviço do Vertex AI nesse projeto.

Ficheiro CSV

Se escolher um objeto CSV no Cloud Storage como entrada, tem de garantir o seguinte:

  • A origem de dados tem de começar com uma linha de cabeçalho com os nomes das colunas.
  • Cada objeto de origem de dados não pode ter mais de 10 GB. Pode incluir vários ficheiros, até um máximo de 100 GB.
  • Se o contentor do Cloud Storage estiver num projeto diferente, tem de conceder a função Storage Object Creator à conta de serviço do Vertex AI nesse projeto.
  • Tem de colocar todas as strings entre aspas duplas (").

Formato de saída

O formato de saída do seu pedido de inferência em lote não tem de ser igual ao formato de entrada. Por exemplo, se usou a tabela do BigQuery como entrada, pode gerar os resultados num objeto CSV no Cloud Storage.

Faça um pedido de inferência em lote ao seu modelo

Para fazer pedidos de inferência em lote, pode usar a Google Cloud consola ou a API Vertex AI. A origem de dados de entrada pode ser objetos CSV armazenados num contentor do Cloud Storage ou tabelas do BigQuery. Consoante a quantidade de dados que enviar como entrada, uma tarefa de inferência em lote pode demorar algum tempo a ser concluída.

Google Cloud consola

Use a Google Cloud consola para pedir uma inferência em lote.

  1. Na Google Cloud consola, na secção Vertex AI, aceda à página Inferência em lote.

    Aceda à inferência em lote

  2. Clique em Criar para abrir a janela Nova inferência em lote.
  3. Para Definir a inferência em lote, conclua os seguintes passos:
    1. Introduza um nome para a inferência em lote.
    2. Para Nome do modelo, selecione o nome do modelo a usar para esta inferência em lote.
    3. Para Versão, selecione a versão do modelo a usar para esta inferência em lote.
    4. Em Selecionar origem, selecione se os dados de entrada de origem são um ficheiro CSV no Cloud Storage ou uma tabela no BigQuery.
      • Para ficheiros CSV, especifique a localização do Cloud Storage onde se encontra o ficheiro de entrada CSV.
      • Para tabelas do BigQuery, especifique o ID do projeto onde a tabela está localizada, o ID do conjunto de dados do BigQuery e o ID da tabela ou da vista do BigQuery.
    5. Para o Resultado, selecione CSV ou BigQuery.
      • Para CSV, especifique o contentor do Cloud Storage onde o Vertex AI armazena o resultado.
      • Para o BigQuery, pode especificar um ID do projeto ou um conjunto de dados existente:
        • Para especificar o ID do projeto, introduza-o no campo ID do projeto do Google Cloud. O Vertex AI cria um novo conjunto de dados de saída para si.
        • Para especificar um conjunto de dados existente, introduza o respetivo caminho do BigQuery no campo ID do projeto do Google Cloud, como bq://projectid.datasetid.
  4. Opcional: a monitorização de modelos para inferências em lote está disponível na pré-visualização. Consulte os Pré-requisitos para adicionar a configuração de deteção de desvios à sua tarefa de inferência em lote.
    1. Clique para ativar/desativar a opção Ativar monitorização do modelo para esta inferência em lote.
    2. Selecione uma origem de dados de preparação. Introduza o caminho ou a localização dos dados para a origem de dados de preparação que selecionou.
    3. Opcional: em Limites de alerta, especifique os limites nos quais os alertas devem ser acionados.
    4. Para Emails de notificação, introduza um ou mais endereços de email separados por vírgulas para receber alertas quando um modelo exceder um limite de alerta.
    5. Opcional: para Canais de notificação, adicione canais do Cloud Monitoring para receber alertas quando um modelo exceder um limite de alerta. Pode selecionar canais do Cloud Monitoring existentes ou criar um novo clicando em Gerir canais de notificação. A consola suporta canais de notificação do PagerDuty, Slack e Pub/Sub.
  5. Clique em Criar.

API: BigQuery

REST

Use o método batchPredictionJobs.create para pedir uma previsão em lote.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde o modelo é armazenado e a tarefa de inferência em lote é executada. Por exemplo, us-central1.
  • PROJECT_ID: o seu ID do projeto
  • BATCH_JOB_NAME: nome a apresentar para a tarefa em lote
  • MODEL_ID: o ID do modelo a usar para fazer inferências
  • INPUT_URI: Referência à origem de dados do BigQuery. No formulário:
    bq://bqprojectId.bqDatasetId.bqTableId
    
  • OUTPUT_URI: referência ao destino do BigQuery (onde as inferências são escritas). Especifique o ID do projeto e, opcionalmente, um ID do conjunto de dados existente. Se especificar apenas o ID do projeto, o Vertex AI cria um novo conjunto de dados de saída para si. Use o seguinte formulário:
    bq://bqprojectId.bqDatasetId
    
  • MACHINE_TYPE: os recursos da máquina a usar para esta tarefa de inferência em lote. Saiba mais.
  • STARTING_REPLICA_COUNT: o número inicial de nós para esta tarefa de inferência em lote. A contagem de nós pode ser aumentada ou diminuída conforme necessário pela carga, até ao número máximo de nós, mas nunca fica abaixo deste número.
  • MAX_REPLICA_COUNT: o número máximo de nós para esta tarefa de inferência em lote. A quantidade de nós pode ser aumentada ou diminuída conforme necessário pela carga, mas nunca excede o máximo. Opcional, a predefinição é 10.

Método HTTP e URL:

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

Corpo JSON do pedido:

{
  "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
  },

}

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

{
  "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

Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vertex AI com bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java Vertex AI.

Para se autenticar no Vertex AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

No exemplo seguinte, substitua INSTANCES_FORMAT e PREDICTIONS_FORMAT por "bigquery". Para saber como substituir os outros marcadores de posição, consulte o separador "REST & CMD LINE" desta secção.
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

Para saber como instalar ou atualizar o SDK Vertex AI para Python, consulte o artigo Instale o SDK Vertex AI para Python. Para mais informações, consulte a Python documentação de referência da API.

No exemplo seguinte, defina os parâmetros `instances_format` e `predictions_format` como `"bigquery"`. Para saber como definir os outros parâmetros, consulte o separador `REST & CMD LINE` desta secção.
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

Use o método batchPredictionJobs.create para pedir uma inferência em lote.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION_ID: região onde o modelo é armazenado e a tarefa de inferência em lote é executada. Por exemplo, us-central1.
  • PROJECT_ID:
  • BATCH_JOB_NAME: nome a apresentar para a tarefa em lote
  • MODEL_ID: o ID do modelo a usar para fazer inferências
  • URI: caminhos (URIs) para os contentores do Cloud Storage que contêm os dados de preparação. Pode haver mais do que um. Cada URI tem o formato:
    gs://bucketName/pathToFileName
    
  • OUTPUT_URI_PREFIX: caminho para um destino do Cloud Storage onde as inferências são escritas. O Vertex AI escreve inferências em lote num subdiretório com indicação de data/hora deste caminho. Defina este valor como uma string com o seguinte formato:
    gs://bucketName/pathToOutputDirectory
    
  • MACHINE_TYPE: os recursos da máquina a usar para esta tarefa de inferência em lote. Saiba mais.
  • STARTING_REPLICA_COUNT: o número inicial de nós para esta tarefa de inferência em lote. A contagem de nós pode ser aumentada ou diminuída conforme necessário pela carga, até ao número máximo de nós, mas nunca fica abaixo deste número.
  • MAX_REPLICA_COUNT: o número máximo de nós para esta tarefa de inferência em lote. A quantidade de nós pode ser aumentada ou diminuída conforme necessário pela carga, mas nunca excede o máximo. Opcional, a predefinição é 10.

Método HTTP e URL:

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

Corpo JSON do pedido:

{
  "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
  },

}

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte comando:

$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

Deve receber uma resposta JSON semelhante à seguinte:

{
  "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",
}

Obtenha resultados da inferência em lote

O Vertex AI envia o resultado das inferências em lote para o destino que especificou, que pode ser o BigQuery ou o Cloud Storage.

BigQuery

Conjunto de dados de saída

Se estiver a usar o BigQuery, o resultado da inferência em lote é armazenado num conjunto de dados de saída. Se tiver fornecido um conjunto de dados ao Vertex AI, o nome do conjunto de dados (BQ_DATASET_NAME) é o nome que forneceu anteriormente. Se não forneceu um conjunto de dados de saída, o Vertex AI criou um para si. Pode encontrar o nome do dispositivo (BQ_DATASET_NAME) através dos seguintes passos:

  1. Na Google Cloud consola, aceda à página Inferência em lote do Vertex AI.

    Aceda à inferência em lote

  2. Selecione a inferência que criou.
  3. O conjunto de dados de saída é fornecido em Localização de exportação. O nome do conjunto de dados é formatado da seguinte forma: prediction_MODEL_NAME_TIMESTAMP
Tabelas de saída

O conjunto de dados de saída contém uma ou mais das seguintes três tabelas de saída:

  • Tabela de previsões

    Esta tabela contém uma linha para cada linha nos seus dados de entrada em que foi pedida uma inferência (ou seja, em que TARGET_COLUMN_NAME = null).

  • Tabela de erros

    Esta tabela contém uma linha para cada erro não crítico encontrado durante a inferência em lote. Cada erro não crítico corresponde a uma linha nos dados de entrada para a qual o Vertex AI não conseguiu devolver uma previsão.

Tabela de previsões

O nome da tabela (BQ_PREDICTIONS_TABLE_NAME) é formado pela adição de `predictions_` com a data/hora em que a tarefa de inferência em lote foi iniciada: predictions_TIMESTAMP

Para aceder às inferências, aceda à página do BigQuery.

Aceda ao BigQuery

O formato da consulta depende do tipo de modelo:

Classificação:

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

classes é a lista de potenciais classes e scores são as pontuações de confiança correspondentes.

Regressão:

SELECT predicted_TARGET_COLUMN_NAME.value
FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME

Se o seu modelo usar inferência probabilística, predicted_TARGET_COLUMN_NAME.value contém o minimizador do objetivo de otimização. Por exemplo, se o objetivo de otimização for minimize-rmse, predicted_TARGET_COLUMN_NAME.value contém o valor médio. Se for minimize-mae, o elemento predicted_TARGET_COLUMN_NAME.value contém o valor mediano.

Se o seu modelo usar inferência probabilística com quantis, o Vertex AI fornece valores de quantis e inferências, além do minimizador do objetivo de otimização. Os valores dos quantis são definidos durante a preparação do modelo. As inferências de quantil são os valores de inferência associados aos valores de quantil.

Tabela de erros

O nome da tabela (BQ_ERRORS_TABLE_NAME) é formado pela anexação de errors_ com a data/hora em que a tarefa de inferência em lote foi iniciada: errors_TIMESTAMP Para obter a tabela de validação de erros:
  1. Na consola, aceda à página do BigQuery.

    Aceda ao BigQuery

  2. Execute a seguinte consulta:
    SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
          
Os erros são armazenados nas seguintes colunas:
  • errors_TARGET_COLUMN_NAME.code
  • errors_TARGET_COLUMN_NAME.message

Cloud Storage

Se especificou o armazenamento na nuvem como destino de saída, os resultados do seu pedido de inferência em lote são devolvidos como objetos CSV numa nova pasta no contentor especificado. O nome da pasta é o nome do seu modelo, com o prefixo "prediction-" e o sufixo da data/hora em que a tarefa de inferência em lote foi iniciada. Pode encontrar o nome da pasta do Cloud Storage no separador Previsões em lote do seu modelo.

A pasta do Cloud Storage contém dois tipos de objetos:
  • Objetos de previsão

    Os objetos de inferência têm os nomes `predictions_1.csv`, `predictions_2.csv` e assim sucessivamente. Contêm uma linha de cabeçalho com os nomes das colunas e uma linha para cada inferência devolvida. Nos objetos de previsão, o Vertex AI devolve os dados de previsão e cria uma ou mais colunas novas para os resultados da previsão com base no tipo de modelo:

    • Classificação: para cada valor potencial da coluna de destino, é adicionada uma coluna denominada TARGET_COLUMN_NAME_VALUE_score aos resultados. Esta coluna contém a pontuação ou a estimativa de confiança para esse valor.
    • Regressão: o valor previsto para essa linha é devolvido numa coluna denominada predicted_TARGET_COLUMN_NAME. O intervalo de previsão não é devolvido para a saída CSV.
  • Objetos de erro

    Os objetos de erro têm os nomes `errors_1.csv`, `errors_2.csv` e assim sucessivamente. Contêm uma linha de cabeçalho e uma linha para cada linha nos seus dados de entrada para os quais o Vertex AI não conseguiu devolver uma inferência (por exemplo, se uma funcionalidade não anulável fosse nula).

Nota: se os resultados forem grandes, são divididos em vários objetos.

Interprete os resultados da inferência

Classificação

Os modelos de classificação devolvem uma pontuação de confiança.

A pontuação de confiança comunica a intensidade com que o modelo associa cada classe ou etiqueta a um item de teste. Quanto mais elevado for o número, maior é a confiança do modelo de que a etiqueta deve ser aplicada a esse item. Decide qual o nível de confiança que a pontuação tem de ter para aceitar os resultados do modelo.

Regressão

Os modelos de regressão devolvem um valor de inferência.

Se o seu modelo usar a inferência probabilística, o campo value contém o minimizador do objetivo de otimização. Por exemplo, se o objetivo de otimização for minimize-rmse, o campo value contém o valor médio. Se for minimize-mae, o campo value contém o valor mediano.

Se o seu modelo usar inferência probabilística com quantis, o Vertex AI fornece valores de quantis e inferências, além do minimizador do objetivo de otimização. Os valores dos quantis são definidos durante a preparação do modelo. As inferências de quantil são os valores de inferência associados aos valores de quantil.

O que se segue?