Acerca das divisões de dados para modelos do AutoML

Esta página descreve como o Vertex AI usa os conjuntos de preparação, validação e teste dos seus dados para preparar um modelo do AutoML e as formas como pode controlar a divisão dos seus dados entre estes três conjuntos. O AutoML usa divisões de dados de forma diferente consoante o tipo de dados dos dados de preparação.

Esta página descreve as divisões de dados para dados de imagens. Para obter informações sobre divisões de dados para dados tabulares, consulte o artigo Divisões de dados para dados tabulares.

Para conjuntos de dados de imagens, o AutoML usa o conjunto de preparação para preparar o modelo e o conjunto de validação para validar os resultados que o modelo devolve durante a preparação. Quando a preparação estiver concluída, o AutoML usa o conjunto de teste para fornecer as métricas de avaliação final.

Pode permitir que o Vertex AI divida os seus dados automaticamente. Os seus dados são divididos aleatoriamente nos três conjuntos por percentagem. Esta é a forma mais fácil de dividir os dados e funciona bem na maioria dos casos.

Definir Percentagem
Formação 80
Validação 10
Teste 10

Para usar a divisão de dados predefinida, aceite a predefinição na Google Cloud consola ou deixe o campo divisão vazio para a API.

Se quiser controlar a forma como os seus dados são divididos em conjuntos, tem as seguintes opções:

Escolha apenas uma destas opções. Faça a escolha quando preparar o modelo. Algumas destas opções requerem alterações aos dados de preparação (por exemplo, a etiqueta ml_use). A inclusão de dados ou etiquetas para opções de divisão de dados não requer que use essas opções. Ainda pode escolher outra opção quando preparar o seu modelo.

Divisão manual para dados não estruturados

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

Para usar a etiqueta ml_use para controlar a divisão de dados, tem de definir a etiqueta ml_use nos seus dados.

Defina um valor para a etiqueta ml_use

Pode definir a etiqueta ml_use para dados de imagens no momento da importação de dados (por item de dados ou para todo o ficheiro de importação) ou após a importação de dados através da consola Google Cloud .

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

Defina a etiqueta ml_use em cada item de dados incluindo um valor para o campo aiplatform.googleapis.com/ml_use nos dados JSON Lines ou definindo o valor da primeira coluna do ficheiro CSV. Consulte as informações sobre a preparação de dados para o seu tipo de dados para ver mais detalhes.

Se algum dos seus itens de dados se repetir nos dados (se o mesmo fragmento de código de imagem aparecer várias vezes no ficheiro de importação), o Vertex AI usa o valor ml_use para o primeiro item de dados que encontrar e ignora todos os valores ml_use subsequentes. O primeiro item encontrado não é necessariamente o item mais próximo do início do ficheiro de carregamento.

Definir ml_use para ficheiros de carregamento completos

Se os seus dados puderem ser ordenados em diferentes ficheiros de carregamento pelo valor de ml_use, pode definir o valor de ml_use para todo o ficheiro de carregamento através do menu pendente por ficheiro quando carrega ficheiros através da consola Google Cloud ou através do campo de mapeamento dataItemLabels no método datasets.import.

Se definir ml_use para um ficheiro de carregamento e o ficheiro também contiver valores ml_use, os valores ml_use no ficheiro têm precedência sobre o valor em todo o ficheiro.

Definir ml_use após a importação

Depois de carregar os dados, pode definir ou atualizar o valor ml_use para itens de dados específicos na consola Google Cloud selecionando um ou mais itens na vista de lista e usando o menu pendente Atribuir utilização de ML.

Se carregar novamente um ficheiro de dados, mesmo que os valores ml_use tenham sido alterados, o valor ml_use não é atualizado. Não pode atualizar os valores ml_use após a importação através da API Vertex AI.

Use a etiqueta ml_use

Quando preparar o modelo, especifique Manual (avançado) para a divisão de dados na Google Cloud consola. Se fizer a preparação com a API Vertex AI, use o objeto FilterSplit, especificando labels.aiplatform.googleapis.com/ml_use=training para o filtro de preparação, 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. Por 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 preparação.

Divisão do filtro de dados

Pode usar outras etiquetas (além de ml-use) e outros campos para dividir os seus dados usando o objeto FilterSplit na API Vertex AI. Por exemplo, pode definir o trainingFilter como labels.flower=rose, o validationFilter como labels.flower=daisy e o testFilter como labels.flower=dahlia. Esta definição faz com que todos os dados etiquetados como rose sejam adicionados ao conjunto de preparação, todos os dados etiquetados como daisy sejam adicionados ao conjunto de validação e todos os dados etiquetados como dahlia sejam adicionados ao conjunto de testes.

Se filtrar por vários campos, um item de dados pode corresponder a mais do que um filtro. Neste caso, o conjunto de preparação tem precedência, seguido do conjunto de validação e, por fim, do conjunto de testes. Por outras palavras, um item é colocado no conjunto de testes apenas se corresponder ao filtro do conjunto de testes, mas não corresponder aos filtros de preparação ou validação. Se um item não corresponder aos filtros de nenhum dos conjuntos, é excluído da preparação.

Não use categorias para a divisão de dados relacionadas com o que o modelo vai prever. Cada um dos seus conjuntos tem de 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 se espera que categorize imagens por tipo de flor.)

Se 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 de fração".

Por predefinição, os seus dados são divididos aleatoriamente nos conjuntos de acordo com as percentagens predefinidas para o seu tipo de dados. Pode alterar as percentagens para quaisquer valores que totalizem 100 (para a API Vertex AI, use frações que totalizem 1,0).

Para alterar as percentagens (frações), use o objeto FractionSplit para definir as suas frações. Para tipos de dados de imagens, também pode usar a consola para atualizar as percentagens de divisão quando prepara o modelo.Google Cloud