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