Classes de dados

O SDK da Vertex AI inclui classes que armazenam e leem dados usados para treinar um modelo. Cada classe relacionada a dados representa um conjunto de dados gerenciado da Vertex AI que tem dados estruturados, dados não estruturados ou dados da Feature Store da Vertex AI. Depois de criar um conjunto de dados, você o usará para treinar seu modelo.

Os tópicos a seguir fornecem explicações resumidas de cada classe relacionada a dados no SDK da Vertex AI. O tópico de cada classe inclui um exemplo de código que mostra como criar uma instância dessa classe. Depois de criar um conjunto de dados, use o ID para recuperá-lo:

dataset = aiplatform.ImageDataset('projects/my-project/location/my-region/datasets/{DATASET_ID}')

Classes de dados estruturados

As classes a seguir funcionam com dados estruturados, organizados em linhas e colunas. Geralmente, os dados estruturados são usados para armazenar números, datas, valores e strings.

TabularDataset

Use essa classe para trabalhar com conjuntos de dados tabulares. É possível usar um arquivo CSV ou um DataFrame do pandas ou BigQuery para criar um conjunto de dados tabular. Para mais informações sobre paginação por meio de dados do BigQuery, consulte Ler dados com a API BigQuery usando paginação. Para mais informações sobre dados tabulares, consulte Dados tabulares.

O código a seguir mostra como criar um conjunto de dados tabular ao importar um arquivo CSV.

my_dataset = aiplatform.TabularDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

O código a seguir mostra como criar um conjunto de dados tabular ao importar um arquivo CSV em duas etapas distintas.

my_dataset = aiplatform.TextDataset.create(
    display_name="my-dataset")

my_dataset.import(
    gcs_source=['gs://path/to/my/dataset.csv']
    import_schema_uri=aiplatform.schema.dataset.ioformat.text.multi_label_classification
)

Se você criar um conjunto de dados tabular com um DataFrame do pandas, será necessário usar uma tabela do BigQuery para organizar os dados para a Vertex AI:

my_dataset = aiplatform.TabularDataset.create_from_dataframe(
    df_source=my_pandas_dataframe,
    staging_path=f"bq://{bq_dataset_id}.table-unique"
)

TimeSeriesDataset

Use essa classe para trabalhar com conjuntos de dados de séries temporais. Uma série temporal é um conjunto de dados que contém dados registrados em diferentes intervalos de tempo. O conjunto de dados inclui tempo e pelo menos uma variável que depende do tempo. Você usa um conjunto de dados de série temporal para previsões. Para mais informações, consulte Visão geral da previsão.

É possível criar um conjunto de dados gerenciado de série temporal a partir de arquivos CSV em um bucket do Cloud Storage ou em uma tabela do BigQuery.

O código a seguir mostra como criar um TimeSeriesDataset importando um arquivo de fonte de dados CSV que tenha o conjunto de dados de série temporal:

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

O código a seguir mostra como criar uma TimeSeriesDataset com um arquivo de tabela do BigQuery que tenha o conjunto de dados da série temporal:

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", bq_source=['bq://path/to/my/bigquerydataset.train'])

Classes de dados não estruturados

As classes a seguir funcionam com dados não estruturados, que não podem ser armazenados em um banco de dados relacional tradicional. Geralmente, ele é armazenado como áudio, texto, arquivos de vídeo ou como um banco de dados NoSQL.

ImageDataset

Use essa classe para trabalhar com um conjunto de dados de imagens gerenciadas. Para criar um conjunto de dados de imagens gerenciadas, você precisa de um arquivo de fonte de dados no formato CSV e de um arquivo de esquema no formato YAML. Um esquema é opcional para um modelo personalizado. O arquivo CSV e o esquema são acessados em buckets do Cloud Storage.

Use dados de imagem para os seguintes objetivos:

O código a seguir mostra como criar um conjunto de dados de imagens importando um arquivo de fonte de dados CSV e um arquivo de esquema YAML. O arquivo de esquema usado depende do conjunto de dados de imagem ser usado para classificação de rótulo único, classificação de vários rótulos ou detecção de objetos.

my_dataset = aiplatform.ImageDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/image-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

TextDataset

Use essa classe para trabalhar com um conjunto de dados gerenciado de texto. Para criar um conjunto de dados de texto, você precisa de uma fonte de dados no formato CSV e um esquema no formato YAML. Um esquema é opcional para um modelo personalizado. O arquivo CSV e o esquema são acessados nos buckets do Cloud Storage.

Use dados de texto para os seguintes objetivos:

O código a seguir mostra como criar um conjunto de dados de texto importando um arquivo de fonte de dados CSV e um arquivo de esquema YAML. O arquivo de esquema usado depende do conjunto de dados de texto ser usado para classificação, extração de entidade ou análise de sentimento.

my_dataset = aiplatform.TextDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/text-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

VideoDataset

Use essa classe para trabalhar com um conjunto de dados de vídeos gerenciado. Para criar um conjunto de dados de vídeo, você precisa de um arquivo de fonte de dados CSV e um esquema no formato YAML. O arquivo CSV e o esquema são acessados nos buckets do Cloud Storage.

Use dados de vídeo para os seguintes objetivos:

O código a seguir mostra como criar um conjunto de dados para treinar um modelo de classificação de vídeo importando um arquivo de fonte de dados CSV. O arquivo de esquema escolhido depende do conjunto de dados de vídeo para classificação de ações, reconhecimento ou rastreamento de objetos.

my_dataset = aiplatform.VideoDataset.create(
    gcs_source=['gs://path/to/my/dataset.csv'],
    import_schema_uri=['gs://aip.schema.dataset.ioformat.video.classification.yaml']
)

Classes de dados do Feature Store da Vertex AI

O Feature Store da Vertex AI é um serviço gerenciado usado para armazenar, exibir, gerenciar e compartilhar atributos de ML em escala.

O Feature Store da Vertex AI usa um modelo de dados de série temporal composto por três classes que mantêm atributos à medida que mudam ao longo do tempo. As três classes são organizadas na seguinte ordem hierárquica:

Hierarquia de classes do Feature Store da Vertex AI

Para mais informações sobre o modelo de dados do Feature Store da Vertex AI, consulte Modelo de dados e recursos. Para saber mais sobre os requisitos de fonte de dados do Feature Store da Vertex AI, consulte Requisitos de dados de origem.

As classes a seguir são usadas com dados do Feature Store da Vertex AI:

Featurestore

O recurso featurestore, representado pela classe Featurestore, é a classe de nível superior na hierarquia de modelos de dados do Feature Store da Vertex AI. O próximo recurso de nível no modelo de dados é o tipo de entidade, que é uma coleção de atributos semanticamente relacionados que você cria. Veja a seguir alguns dos métodos Featurestore que funcionam com tipos de entidade:

Criar um tipo de entidade

Use a Featurestore.Método create_entity_type com um entity_type_id para criar um recurso de tipo de entidade. Um recurso de tipo de entidade é representado pela classe EntityType. O entity_type_id é alfanumérico e precisa ser exclusivo em um featurestore. Veja um exemplo de como criar um tipo de entidade:

entity_type = aiplatform.featurestore.create_entity_type(
        entity_type_id=my_entity_type_name, description=my_entity_type_description
        )

Exibir tipos de entidade

Use um dos três métodos Featurestore para exibir itens de dados da entidade:

EntityType

A classe EntityType representa um recurso de tipo de entidade, que é uma coleção de atributos semanticamente relacionados que você define. Por exemplo, um serviço de música pode ter os tipos de entidade musical_artist e user. Use o método FeatureStore.create_entity_type ou EntityType.create para criar um tipo de entidade. O código a seguir mostra como usar EntityType.create:

entity_type = aiplatform.EntityType.create(
        entity_type_id=my_entity_type_name, featurestore_name=featurestore_name
    )

Feature

A classe Feature representa um recurso de recurso que é uma propriedade mensurável ou atributo de um tipo de entidade. Por exemplo, o tipo de entidade musical_artist pode ter recursos, como date_of_birth e last_name, para rastrear várias propriedades de artistas musicais. Os recursos precisam ser exclusivos para um tipo de entidade, mas não precisam ser globalmente exclusivos.

Ao criar um Feature, você precisa especificar o tipo de valor (por exemplo, BOOL_ARRAY, DOUBLE, DOUBLE_ARRAY ou STRING) (em inglês). O código abaixo mostra um exemplo de como criar um atributo:

my_feature = aiplatform.Feature.create(
    feature_id='my_feature_id',
    value_type='INT64',
    entity_type_name='my_entity_type_id',
    featurestore_id='my_featurestore_id',
)

A seguir