Sobre divisões de dados para modelos do AutoML

Nesta página, descrevemos como a Gemini Enterprise Agent Platform usa os conjuntos de treinamento, validação e teste dos seus dados para treinar um modelo do AutoML e as maneiras de controlar como os dados são divididos entre esses três conjuntos. O AutoML usa divisões de dados de maneira diferente dependendo do tipo dos dados de treinamento.

Essa página descreve divisões de dados para dados de imagem. Para informações sobre divisões de dados tabulares, consulte Divisões de dados para dados tabulares.

Para conjuntos de dados de imagem, o AutoML usa o conjunto de treinamento para treinar o modelo. O conjunto de validação é usado para validar os resultados que o modelo retorna durante o treinamento. Quando o treinamento é concluído, o AutoML usa o conjunto de teste para fornecer as métricas de avaliação finais.

É possível permitir que a plataforma de agentes do Gemini Enterprise divida seus dados automaticamente. Os dados são divididos aleatoriamente nos três conjuntos por porcentagem. Essa é a maneira mais fácil de dividir os dados e funciona bem na maioria dos casos.

Definir Porcentagem
Treinamento 80
Validação 10
Teste 10

Para usar a divisão de dados padrão, aceite o padrão no Google Cloud console, ou deixe o campo split vazio para a API.

Quando você quer controlar como seus dados são divididos em conjuntos, você tem as seguintes opções:

Escolha apenas uma dessas opções ao treinar o modelo. Algumas dessas opções exigem alterações nos dados de treinamento (por exemplo, o identificador ml_use). A inclusão de dados ou rótulos para opções de divisão de dados não exige usar essas opções. É possível ainda escolher outra opção ao treinar seu modelo.

Divisão manual para dados não estruturados

A divisão manual também é conhecida como "divisão predefinida".

Para usar o identificador ml_use para controlar a divisão de dados, defina o identificador ml_use nos dados.

Defina um valor para o identificador ml_use

Defina o identificador ml_use para dados de imagem no momento da importação de dados (por item de dados ou para todo o arquivo de importação) ou após a importação de dados usando o Google Cloud console.

Como definir ml_use em itens de dados individuais no momento da importação

Defina o identificador ml_use em cada item de dados incluindo um valor para o aiplatform.googleapis.com/ml_use campo nos seus dados de linhas JSON ou definindo o valor da primeira coluna do arquivo CSV. Para mais detalhes, consulte as informações sobre como preparar dados para seu tipo de dados.

Se algum dos seus itens de dados for repetido nos dados (se o mesmo snippet de imagem aparecer várias vezes no arquivo de importação), o Agent Platform usará o valor ml_use para o primeiro item de dados encontrado e ignorará todos os valores ml_use subsequentes. O primeiro item encontrado não é necessariamente o item mais próximo do início do arquivo de upload.

Como definir ml_use para arquivos de upload inteiros

Caso seus dados possam ser classificados em diferentes arquivos de upload por valor ml_use, você pode definir o valor ml_use para todo o arquivo de upload usando o menu suspenso por arquivo ao fazer o upload dos arquivos usando o Google Cloud console ou usando o campo de mapa dataItemLabels no método datasets.import.

Se você definir ml_use para um arquivo de upload e ele também contiver valores ml_use, os valores ml_use no arquivo terão precedência sobre o valor do arquivo.

Como definir ml_use após a importação

Depois de fazer upload dos dados, é possível definir ou atualizar o valor de ml_use para itens de dados específicos no Google Cloud console. Basta selecionar um ou mais itens na visualização em lista e usar o menu suspenso Atribuir uso de ML.

Se você fizer upload de um arquivo de dados novamente, mesmo que os valores de ml_use tenham mudado, o valor de ml_use não será atualizado. Não é possível atualizar os valores de ml_use após a importação usando a API do Agent Platform.

Usar o identificador ml_use

Ao treinar o modelo, especifique Manual (Avançado) para a divisão de dados no Google Cloud console. Se você treinar usando a API do Agent Platform, use o FilterSplit objeto, especificando labels.aiplatform.googleapis.com/ml_use=training para o filtro de treinamento, labels.aiplatform.googleapis.com/ml_use=validation para o filtro de validação e labels.aiplatform.googleapis.com/ml_use=test para o filtro de teste. Exemplo:

model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")

Todos os itens de dados com um valor ml_use são atribuídos ao conjunto especificado. Os itens de dados que não têm ml_use definido são excluídos do processo de treinamento.

Divisão de filtro de dados

É possível usar outros rótulos (além de ml-use) e outros campos para dividir seus dados usando o FilterSplit objeto na API do Agent Platform. Por exemplo, defina trainingFilter como labels.flower=rose, validationFilter como labels.flower=daisy e testFilter como labels.flower=dahlia. Essa configuração faz com que todos os dados rotulados como rose sejam adicionados ao conjunto de treinamento, todos os dados rotulados como daisy, adicionados ao conjunto de validação, e todos os dados rotulados como dahlia para o conjunto de testes.

Se você filtrar por vários campos, um item de dados poderá corresponder a mais de um filtro. Nesse caso, o conjunto de treinamento tem precedência, seguido pelo conjunto de validação, seguido pelo conjunto de testes. Em outras palavras, um item será colocado no conjunto de teste somente se corresponder ao filtro para o conjunto de teste, mas não para filtros de treinamento ou validação. Se um item não corresponder aos filtros de qualquer um dos conjuntos, ele será excluído do treinamento.

Não use categorias para a divisão de dados relacionadas às previsões que o modelo fará. Cada um dos conjuntos precisa refletir o intervalo de dados que o modelo usa para fazer previsões. Por exemplo, não use os filtros descritos anteriormente para um modelo que precisa classificar imagens por tipo de flor.

Se você não quiser que um filtro corresponda a nenhum item, defina-o como "-" (o sinal de menos).

Divisão matemática

A divisão matemática também é conhecida como "divisão fracionária".

Por padrão, os dados são divididos aleatoriamente nos conjuntos de acordo com as porcentagens padrão do seu tipo de dados. É possível alterar as porcentagens para quaisquer valores que somam até 100 (para a Agent Platform API, use frações que totalizem 1,0).

Para alterar os percentuais (frações), use o FractionSplit para definir as frações. Para tipos de dados de imagem, use também o Google Cloud console para atualizar as porcentagens de divisão ao treinar o modelo.