Usar conjuntos de dados gerenciados

Nesta página, mostramos como usar os conjuntos de dados gerenciados da Vertex AI para treinar seus modelos personalizados. Os conjuntos de dados gerenciados oferecem os seguintes benefícios:

  • Gerencie seus conjuntos de dados em um local central.
  • Crie facilmente rótulos e vários conjuntos de anotações.
  • Crie tarefas para a rotulagem humana usando rótulos de dados integrados.
  • Acompanhe a linhagem para modelos de governança e desenvolvimento iterativo.
  • Compare o desempenho dos modelos treinando o AutoML e os modelos personalizados com os mesmos conjuntos de dados.
  • Gere estatísticas e visualizações de dados.
  • Dividir automaticamente os dados em conjuntos de treinamento, teste e validação.

Antes de começar

Antes de usar um conjunto de dados gerenciado no aplicativo de treinamento, você precisa criar o conjunto de dados. É preciso criar o conjunto de dados e o pipeline de treinamento usados para o treinamento na mesma região. Use uma região em que os recursos do Dataset estiverem disponíveis.

Acessar um conjunto de dados do aplicativo de treinamento

Ao criar um pipeline de treinamento personalizado, é possível especificar que o aplicativo de treinamento usa um conjunto de dados da Vertex AI.

No ambiente de execução, a Vertex AI transmite os metadados sobre o conjunto de dados para o aplicativo de treinamento definindo as seguintes variáveis de ambiente no contêiner de treinamento.

  • AIP_DATA_FORMAT: o formato em que o conjunto de dados é exportado. Os valores possíveis incluem jsonl, csv ou bigquery.
  • AIP_TRAINING_DATA_URI: o URI do BigQuery dos dados de treinamento ou o URI do Cloud Storage do arquivo de dados de treinamento.
  • AIP_VALIDATION_DATA_URI: o URI do BigQuery para seus dados de validação ou o URI do Cloud Storage do seu arquivo de dados de validação.
  • AIP_TEST_DATA_URI: o URI do BigQuery para os dados de teste ou o URI do Cloud Storage do arquivo de dados de teste.

Se AIP_DATA_FORMAT de seu conjunto de dados for jsonl ou csv, os valores de URI de dados se referirão a URIs do Cloud Storage, como gs://bucket_name/path/training-*. Para manter o tamanho de cada arquivo de dados relativamente pequeno, a Vertex AI divide seu conjunto de dados em vários arquivos. Como os dados de treinamento, validação ou teste podem ser divididos em vários arquivos, os URIs são fornecidos no formato curinga.

Saiba mais sobre como fazer o download de objetos usando os exemplos de código do Cloud Storage.

Se AIP_DATA_FORMAT for bigquery, os valores de URI de dados farão referência aos URIs do BigQuery, como bq://project.dataset.table.

Saiba mais sobre paginação por meio de dados do BigQuery.

Formato do conjunto de dados

Use as seções a seguir para saber mais sobre como a Vertex AI formata os dados ao transmitir um conjunto de dados para o aplicativo de treinamento.

Conjuntos de dados de imagens

Os conjuntos de dados de imagens são transmitidos ao aplicativo de treinamento no formato JSON Lines. Selecione a guia do objetivo do conjunto de dados para saber mais sobre como a Vertex AI formata o conjunto de dados.

Classificação de rótulo único

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de classificação de imagem de rótulo único. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotation": {
    "displayName": "LABEL",
    "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
   },
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Observações sobre o campo:

  • imageGcsUri: o URI do Cloud Storage dessa imagem.
  • annotationResourceLabels: contém qualquer número de pares de strings de chave-valor. A Vertex AI usa esse campo para especificar o conjunto de anotações.
  • dataItemResourceLabels: contém qualquer número de pares de strings de chave-valor. Especifica o uso do machine learning do item de dados, como treinamento, teste ou validação.

Linhas JSON de exemplo


{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Classificação de vários rótulos

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de classificação de imagens de vários rótulos. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotations": [
    {
      "displayName": "LABEL1",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "flower_type"
      }
    },
    {
      "displayName": "LABEL2",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "image_shot_type"
      }
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Observações sobre o campo:

  • imageGcsUri: o URI do Cloud Storage dessa imagem.
  • annotationResourceLabels: contém qualquer número de pares de strings de chave-valor. A Vertex AI usa esse campo para especificar o conjunto de anotações.
  • dataItemResourceLabels: contém qualquer número de pares de strings de chave-valor. Especifica o uso do machine learning do item de dados, como treinamento, teste ou validação.

Linhas JSON de exemplo


{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Detecção de objetos

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de detecção de objetos. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "boundingBoxAnnotations": [
    {
      "displayName": "OBJECT1_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
    },
    {
      "displayName": "OBJECT2_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX"
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "test/train/validation"
  }
}

Observações sobre o campo:

  • imageGcsUri: o URI do Cloud Storage dessa imagem.
  • annotationResourceLabels: contém qualquer número de pares de strings de chave-valor. A Vertex AI usa esse campo para especificar o conjunto de anotações.
  • dataItemResourceLabels: contém qualquer número de pares de strings de chave-valor. Especifica o uso do machine learning do item de dados, como treinamento, teste ou validação.

Linhas JSON de exemplo


{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Conjuntos de dados tabulares

A Vertex AI transmite dados tabulares para o aplicativo de treinamento no formato CSV ou como um URI para uma tabela ou visualização do BigQuery. Para mais informações sobre o formato e os requisitos da fonte de dados, consulte Como preparar a origem de importação. Consulte o conjunto de dados no Console do Google Cloud para mais informações sobre o esquema do conjunto de dados.

Conjuntos de dados de texto

Os conjuntos de dados de texto são transmitidos ao aplicativo de treinamento no formato JSON Lines. Selecione a guia do objetivo do conjunto de dados para saber mais sobre como a Vertex AI formata o conjunto de dados.

Classificação de rótulo único

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de classificação de texto de rótulo único. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Classificação de vários rótulos

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de classificação de texto de vários rótulos. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Extração de entidade

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de extração de entidade. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.

{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}
{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

Análise de sentimento

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de análise de sentimento. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.

{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Conjuntos de dados de vídeo

Os conjuntos de dados de vídeo são transmitidos ao aplicativo de treinamento no formato JSON Lines. Selecione a guia do objetivo do conjunto de dados para saber mais sobre como a Vertex AI formata o conjunto de dados.

Reconhecimento de ação

A Vertex AI usa o seguinte esquema acessível ao exportar um conjunto de dados de reconhecimento de ação. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
  "videoGcsUri': "gs://bucket/filename.ext",
  "timeSegments": [{
    "startTime": "start_time_of_fully_annotated_segment",
    "endTime": "end_time_of_segment"}],
  "timeSegmentAnnotations": [{
    "displayName": "LABEL",
    "startTime": "start_time_of_segment",
    "endTime": "end_time_of_segment"
  }],
  "dataItemResourceLabels": {
    "ml_use": "train|test"
  }
}

Observação: os segmentos de tempo aqui são usados para calcular os carimbos de data/hora das ações. startTime e endTime de timeSegmentAnnotations podem ser iguais e correspondem ao frame de chave da ação.

Linhas JSON de exemplo


{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}}
...

Classificação

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de classificação. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
	"videoGcsUri": "gs://bucket/filename.ext",
	"timeSegmentAnnotations": [{
		"displayName": "LABEL",
		"startTime": "start_time_of_segment",
		"endTime": "end_time_of_segment"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

Exemplo de linhas JSON - classificação de vídeo:


{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

Rastreamento de objetos

A Vertex AI usa o seguinte esquema acessível publicamente ao exportar um conjunto de dados de rastreamento de objetos. Esse esquema determina o formato dos arquivos de exportação de dados. A estrutura do esquema segue o esquema OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml

Cada item de dados no conjunto de dados exportado usa o formato a seguir. O exemplo inclui quebras de linha para facilitar a leitura.


{
	"videoGcsUri": "gs://bucket/filename.ext",
	"TemporalBoundingBoxAnnotations": [{
		"displayName": "LABEL",
		"xMin": "leftmost_coordinate_of_the_bounding box",
		"xMax": "rightmost_coordinate_of_the_bounding box",
		"yMin": "topmost_coordinate_of_the_bounding box",
		"yMax": "bottommost_coordinate_of_the_bounding box",
		"timeOffset": "timeframe_object-detected"
                "instanceId": "instance_of_object
                "annotationResourceLabels": "resource_labels"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

Linhas JSON de exemplo


{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

A seguir