Como criar um job de avaliação contínua

Um job de avaliação contínua define como o Serviço de rotulagem de dados do AI Platform executa uma avaliação contínua em uma versão do modelo implantada no AI Platform Prediction. Quando você cria um job de avaliação para uma versão do modelo, duas coisas começam a acontecer:

  • Como a versão de modelo fornece previsões on-line, a entrada e a saída de algumas delas são salvas em uma tabela do BigQuery.
  • Em um intervalo regular, o job de avaliação contínua é executado, realizando as seguintes tarefas:
    1. O job cria um conjunto de dados do Serviço de rotulagem de dados com todas as novas linhas no BigQuery desde a última execução.
    2. (Opcional) O job envia uma solicitação de rotulagem para que revisores humanos providenciem rótulos informativos às previsões.
    3. O job calcula um conjunto de métricas de avaliação, que pode ser visualizado no Console do Google Cloud.

Antes de começar

Antes de começar, você precisa implantar uma versão no AI Platform Prediction que atenda aos requisitos específicos do modelo. Também é preciso ativar determinadas APIs do Google Cloud. Leia Antes de iniciar a avaliação contínua para saber como atender a esses requisitos.

Configurar opções básicas

Nas seções a seguir, descrevemos como navegar até a página de criação de jobs e configurar os detalhes básicos do seu job de avaliação.

Para criar um job de avaliação para uma versão de modelo, navegue até a página da versão no console do Google Cloud e abra a página de criação do job:

  1. Abra a página Modelos do AI Platform no console do Google Cloud:

    Acessar a página "Modelos do AI Platform"

  2. Clique no nome do modelo com a versão para a qual você quer criar um job de avaliação.

  3. Clique no nome da versão do modelo para a qual você quer criar um job de avaliação. Essa versão não pode ter um job de avaliação anexado a ela.

  4. Clique na guia Avaliação. Em seguida, clique em Configurar job de avaliação.

Especificar descrição, objetivo do modelo, rótulos e porcentagem de amostragem

Nas etapas a seguir, descrevemos os detalhes básicos de configuração que você precisa especificar no formulário de criação de job:

  1. Adicione uma descrição ao job de avaliação no campo Descrição do job.

  2. Especifique o tipo de tarefa que seu modelo de machine learning realiza no campo Objetivo do modelo. Saiba mais sobre os tipos de modelos de machine learning permitidos na avaliação contínua.

    • Se o modelo realiza uma classificação, especifique se é uma classificação de rótulo único ou de vários rótulos no campo Tipo de classificação.
    • Se o modelo realiza a detecção de objetos de imagem, especifique o mínimo de interseção sobre união (IOU, na sigla em inglês) entre 0 e 1. Isso define como as caixas delimitadoras previstas do modelo precisam ser comparadas às caixas delimitadoras de informações para serem consideradas uma previsão correta.
  3. No campo Caminho do arquivo do rótulo de previsão, especifique o caminho para um arquivo CSV no Cloud Storage que contenha os possíveis rótulos referentes às previsões do seu modelo. Neste arquivo, é definido um conjunto de especificações de anotação para o modelo. Saiba como estruturar esse arquivo.

  4. No campo Porcentagem diária de amostras, especifique a porcentagem de previsões exibidas pela versão do modelo que você quer exportar para o BigQuery e analisar como parte da avaliação contínua.

    Especifique também um Limite de amostras diário a fim de definir um número máximo de previsões para amostragem durante um único período de avaliação.

    Por exemplo, você pode fazer uma amostragem de 10% das previsões para avaliação contínua. No entanto, caso receba muitas previsões em um dia específico, você nunca vai querer fazer uma amostragem de mais de 100 previsões para a execução do job de avaliação desse dia. Os revisores humanos podem levar muito tempo para rotular um grande número de previsões, e isso pode gerar mais custos do Serviço de rotulagem de dados do que o esperado.

Especificar a tabela do BigQuery

No campo Tabela do BigQuery, especifique o nome de uma tabela do BigQuery em que o Serviço de rotulagem de dados pode armazenar previsões que passaram por amostragem da versão do modelo.

Se você especificar o nome de uma tabela que ainda não existe, o Serviço de rotulagem de dados criará uma tabela com o esquema correto para você.

Você precisa inserir o nome completo da tabela no seguinte formato: bq://YOUR_PROJECT_ID.YOUR_DATASET_NAME.YOUR_TABLE_NAME

Se a tabela que você especificar já existir, ela precisará ter o esquema correto para a avaliação contínua:

Nome do campoTipoModo
modelSTRINGREQUIRED
model_versionSTRINGREQUIRED
timeTIMESTAMPREQUIRED
raw_dataSTRINGREQUIRED
raw_predictionSTRINGNULLABLE
groundtruthSTRINGNULLABLE

A tabela não pode ter outras colunas além dessas.

Especificar chaves de previsão

Especifique as chaves para determinados campos na entrada para que o Serviço de rotulagem de dados possa extrair as informações necessárias da entrada de previsão bruta e do JSON de saída armazenados na tabela do BigQuery. Verifique se a versão do modelo aceita a entrada e retorna previsões no formato obrigatório. Em seguida, insira as chaves relevantes:

  • Chave de dados: a chave para um campo na entrada de previsão da versão do modelo que contém os dados usados na previsão. Se você ativar a rotulagem humana, o Serviço de rotulagem de dados enviará os dados a revisores humanos para que providenciem os rótulos informativos. Além disso, essa chave será usada para mostrar comparações lado a lado quando você visualizar as métricas de avaliação no console do Google Cloud.

    Se a versão do modelo realiza uma classificação de texto ou geral, você precisa inserir essa chave. Se a versão do modelo realiza uma classificação de imagens ou detecção de objetos de imagem e aceita imagens codificadas em base64 como entrada de previsão, você também precisa inserir essa chave.

  • Chave de referência de dados: a chave para um campo na entrada de previsão da versão do modelo que contém um caminho do Cloud Storage para uma imagem. O Serviço de rotulagem de dados carrega essa imagem e a utiliza para as mesmas finalidades que a Chave de dados.

    Insira essa chave somente se a versão do modelo realiza uma classificação de imagens ou detecção de objetos de imagem e aceita caminhos para imagens no Cloud Storage como entrada de previsão. É obrigatório inserir uma destas chaves: Chave de dados e Chave de referência de dados.

  • Chave do rótulo de previsão: a chave para um campo na saída de previsão da versão do modelo que contém uma matriz de rótulos previstos. O Serviço de rotulagem de dados compara esses valores com os valores informativos para calcular as métricas de avaliação, como matrizes de confusão.

    Este campo é obrigatório.

  • Chave de pontuação de previsão: a chave para um campo na saída de previsão da versão do modelo que contém uma matriz de pontuações previstas. O Serviço de rotulagem de dados usa esses valores com os rótulos de previsão e informativos para calcular as métricas de avaliação, como curvas de precisão/recall.

    Este campo é obrigatório.

  • Chave de caixa delimitadora: a chave para um campo na saída de previsão da versão do modelo que contém uma matriz de caixas delimitadoras. Ela é necessário para avaliar a detecção de objetos de imagem.

    Insira essa chave somente se a versão do modelo realiza uma detecção de objetos de imagem.

Exemplos de chave de previsão

Na seção a seguir, apresentamos exemplos de como inserir chaves de previsão para tipos diferentes de modelos:

Classificação de imagens

Exemplo codificado em base64

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "image_bytes": {
        "b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
      }
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de dados: image_bytes/b64
  • Chave do rótulo de previsão: sentiments
  • Chave de pontuação de previsão: confidence

Exemplo de referência do Cloud Storage

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de referência de dados: image_path
  • Chave do rótulo de previsão: sentiments
  • Chave de pontuação de previsão: confidence

Classificação de texto

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "text": "If music be the food of love, play on;"
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de dados: text
  • Chave do rótulo de previsão: sentiments
  • Chave de pontuação de previsão: confidence

Classificação geral

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "weather": [
        "sunny",
        72,
        0.22
      ]
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "sentiments": [
        "happy"
      ],
      "confidence": [
        "0.8"
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de dados: weather
  • Chave do rótulo de previsão: sentiments
  • Chave de pontuação de previsão: confidence

Detecção de objetos de imagem

Exemplo codificado em base64

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "image_bytes": {
        "b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
      }
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "bird_locations": [
        {
          "top_left": {
            "x": 53,
            "y": 22
          },
          "bottom_right": {
            "x": 98,
            "y": 150
          }
        }
      ],
      "species": [
        "rufous hummingbird"
      ],
      "probability": [
        0.77
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de dados: image_bytes/b64
  • Chave do rótulo de previsão: species
  • Chave de pontuação de previsão: probability
  • Chave da caixa delimitadora: bird_locations

Exemplo de referência do Cloud Storage

Suponha que a versão do modelo aceite a seguinte entrada:

{
  "instances": [
    {
      "image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
    }
  ]
}

Suponha também que ela retorne a seguinte saída:

{
  "predictions": [
    {
      "bird_locations": [
        {
          "top_left": {
            "x": 53,
            "y": 22
          },
          "bottom_right": {
            "x": 98,
            "y": 150
          }
        }
      ],
      "species": [
        "rufous hummingbird"
      ],
      "probability": [
        0.77
      ]
    }
  ]
}

Em seguida, insira as seguintes chaves:

  • Chave de referência de dados: image_path
  • Chave do rótulo de previsão: species
  • Chave de pontuação de previsão: probability
  • Chave da caixa delimitadora: bird_locations

Especificar o método de informações empíricas

O trabalho da avaliação contínua é feito pela comparação das previsões do seu modelo de machine learning com os rótulos informativos anotados por humanos. Selecione como quer criar rótulos informativos clicando no Método de informações empíricas de sua preferência:

  • Serviço de rotulagem gerenciado pelo Google: se você selecionar essa opção, toda vez que o job de avaliação for executado, o Serviço de rotulagem de dados enviará todos os novos dados de amostragem aos revisores humanos para que façam a rotulagem com as informações. Serão aplicados os preços do Serviço de rotulagem de dados (em inglês). Se você escolher essa opção, precisará fornecer instruções em PDF para a rotulagem da entrada de previsão. Saiba como elaborar instruções eficientes.

  • Forneça seus próprios rótulos: ao selecionar essa opção, você mesmo precisará adicionar rótulos informativos à tabela do BigQuery do job de avaliação. Adicione rótulos informativos a qualquer nova entrada de previsão que passe por amostragem antes da próxima execução do job de avaliação. Por padrão, o job de avaliação é executado diariamente às 10h UTC. Por isso, é necessário adicionar rótulos informativos todos os dias às novas linhas na tabela do BigQuery antes desse horário. Caso contrário, esses dados não serão avaliados e você verá um erro no console do Google Cloud.

    Essa é a única opção se a versão do modelo realiza uma classificação geral.

Criar o job

Clique no botão Criar para criar o job de avaliação. A entrada e a saída de previsão devem começar a receber amostras da versão do modelo na tabela do BigQuery imediatamente.

A seguir

Saiba como visualizar métricas de avaliação.