Acompanhe e defina critérios de conclusão para seu trabalho de ajuste - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acompanhe e defina critérios de conclusão para seu trabalho de ajuste

Você pode usar critérios de conclusão para instruir o ajuste automático do modelo (AMT) a interromper seu trabalho de ajuste se determinadas condições forem atendidas. Com essas condições, você pode definir um desempenho mínimo do modelo ou um número máximo de trabalhos de treinamento que não melhoram quando avaliados em relação à métrica objetiva. Você também pode acompanhar o progresso do seu trabalho de ajuste e decidir deixá-lo continuar ou pará-lo manualmente. Este guia mostra como definir critérios de conclusão, verificar o progresso e interromper seu trabalho de ajuste manualmente.

Definir critérios de conclusão para o seu trabalho de ajuste

Durante a otimização de hiperparâmetros, um trabalho de ajuste iniciará vários trabalhos de treinamento dentro de um loop. O trabalho de ajuste fará o seguinte.

  • Verifique se seus trabalhos de treinamento foram concluídos e atualize as estatísticas adequadamente

  • Decida qual combinação de hiperparâmetros será avaliada em seguida.

AMTverificará continuamente os trabalhos de treinamento que foram iniciados a partir do seu trabalho de ajuste para atualizar as estatísticas. Essas estatísticas incluem o tempo de execução do trabalho de ajuste e o melhor trabalho de treinamento. Em seguida, AMT determina se o trabalho deve ser interrompido de acordo com seus critérios de conclusão. Você também pode verificar essas estatísticas e interromper seu trabalho manualmente. Para obter mais informações sobre como interromper um trabalho manualmente, consulte a seção Interrompendo seu trabalho de ajuste manualmente.

Por exemplo, se seu trabalho de ajuste atingir seu objetivo, você poderá interromper o ajuste mais cedo para conservar recursos ou garantir a qualidade do modelo. AMTverifica o desempenho do trabalho em relação aos critérios de conclusão e interrompe o trabalho de ajuste, caso algum tenha sido atendido.

Você pode especificar os seguintes tipos de critérios de conclusão:

  • MaxNumberOfTrainingJobs - O número máximo de trabalhos de treinamento a serem executados antes da interrupção do ajuste.

  • MaxNumberOfTrainingJobsNotImproving - O número máximo de trabalhos de treinamento que não melhoram o desempenho em relação à métrica objetiva do melhor trabalho de treinamento atual. Como exemplo, se o melhor trabalho de treinamento retornou uma métrica objetiva com uma precisão de 90%, e MaxNumberOfTrainingJobsNotImproving for definido como 10. Neste exemplo, o ajuste será interrompido após os trabalhos de treinamento do 10 não retornarem uma precisão maior que 90%.

  • MaxRuntimeInSeconds - O limite superior do tempo do relógio de parede em segundos de quanto tempo um trabalho de ajuste pode ser executado.

  • TargetObjectiveMetricValue - O valor da métrica objetiva em relação à qual o trabalho de ajuste é avaliado. Quando esse valor for atingido, AMT interrompe o trabalho de ajuste.

  • CompleteOnConvergence - Um indicador para interromper o ajuste após um algoritmo interno determinar que é improvável que o trabalho de ajuste melhore mais de 1% em relação à métrica objetiva do melhor trabalho de treinamento.

Escolher critérios de conclusão

Você pode escolher um ou vários critérios de conclusão para interromper seu trabalho de ajuste de hiperparâmetros depois que uma condição for atendida. As instruções a seguir mostram como selecionar os critérios de preenchimento e como decidir qual é o mais apropriado para seu caso de uso.

  • Use MaxNumberOfTrainingJobs in ResourceLimitsAPIpara definir um limite superior para o número de trabalhos de treinamento que podem ser executados antes que seu trabalho de ajuste seja interrompido. Comece com um número grande e ajuste-o com base no desempenho do modelo em relação ao objetivo do seu trabalho de ajuste. A maioria dos usuários insere valores de cerca de 50 ou mais trabalhos de treinamento para encontrar uma configuração ideal de hiperparâmetros. Os usuários que buscam níveis mais altos de desempenho do modelo usarão 200 ou mais trabalhos de treinamento.

  • Use MaxNumberOfTrainingJobsNotImproving no BestObjectiveNotImprovingAPIcampo para interromper o treinamento se o desempenho do modelo não melhorar após um número especificado de trabalhos. O desempenho do modelo é avaliado em relação à função objetiva. Depois que o MaxNumberOfTrainingJobsNotImproving for cumprido, AMT interromperá o trabalho de ajuste. Os trabalhos de ajuste tendem a progredir mais no início do trabalho. Melhorar o desempenho do modelo em relação a uma função objetiva exigirá um número maior de trabalhos de treinamento no final do ajuste. Selecione um valor para MaxNumberOfTrainingJobsNotImproving comparando o desempenho de trabalhos de treinamento semelhantes em relação à sua métrica objetiva.

  • Use MaxRuntimeInSeconds no ResourceLimitsAPIpara definir um limite superior para a quantidade de tempo de relógio de parede que o trabalho de ajuste pode levar. Use esse campo para cumprir um prazo no qual o trabalho de ajuste deve ser concluído ou para limitar os recursos de computação.

    Para obter um tempo de computação total estimado em segundos para um trabalho de ajuste, use a seguinte fórmula:

    Tempo máximo estimado de computação em segundos= MaxRuntimeInSeconds * MaxParallelTrainingJobs * MaxInstancesPerTrainingJob

    nota

    A duração real de um trabalho de ajuste pode se desviar ligeiramente do valor especificado nesse campo.

  • Use TargetObjectiveMetricValue no TuningJobCompletionCriteriaAPIpara interromper seu trabalho de ajuste. Você interrompe o trabalho de ajuste após qualquer trabalho de treinamento iniciado pelo trabalho de ajuste atingir esse valor da métrica objetiva. Use esse campo se seu caso de uso depender de atingir um nível de desempenho específico, em vez de gastar recursos de computação para encontrar o melhor modelo possível.

  • Use CompleteOnConvergence no TuningJobCompletionCriteriaAPIpara interromper um trabalho de ajuste após AMT detectar que o trabalho de ajuste convergiu e é improvável que faça mais progressos significativos. Use esse campo quando não estiver claro quais valores para qualquer um dos outros critérios de preenchimento devem ser usados. AMTdetermina a convergência com base em um algoritmo desenvolvido e testado em uma ampla variedade de benchmarks diversos. Um trabalho de ajuste é definido como tendo convergido quando nenhum dos trabalhos de treinamento retorna uma melhoria significativa (1% ou menos). A melhoria é medida em relação à métrica objetiva retornada pelo trabalho de melhor desempenho até o momento.

Combinando diferentes critérios de conclusão

Você também pode combinar qualquer um dos diferentes critérios de conclusão no mesmo trabalho de ajuste. AMTinterromperá o trabalho de ajuste quando qualquer um dos critérios de conclusão for atendido. Por exemplo, se você quiser ajustar seu modelo até que ele atinja uma métrica objetiva, mas não quiser continuar ajustando se seu trabalho tiver convergido, use a orientação a seguir.

  • Especifique TargetObjectiveMetricValue no TuningJobCompletionCriteriaAPIpara definir um valor de métrica objetivo alvo a ser alcançado.

  • CompleteOnConvergenceDefina como Enabled para interromper um trabalho de ajuste se AMT tiver determinado que é improvável que o desempenho do modelo melhore.

Monitore o progresso do trabalho de ajuste

Você pode usar o DescribeHyperParameterTuningJob API para acompanhar o progresso do seu trabalho de ajuste a qualquer momento enquanto ele estiver em execução. Você não precisa especificar critérios de conclusão para obter informações de rastreamento para seu trabalho de ajuste. Use os campos a seguir para obter estatísticas sobre seu trabalho de ajuste.

  • BestTrainingJob— Um objeto que descreve o melhor trabalho de treinamento obtido até agora, avaliado em relação à sua métrica objetiva. Use esse campo para verificar o desempenho atual do seu modelo e o valor da métrica objetiva desse melhor trabalho de treinamento.

  • ObjectiveStatusCounters— Um objeto que especifica o número total de trabalhos de treinamento concluídos em um trabalho de ajuste. Para estimar a duração média de um trabalho de ajuste, use ObjectiveStatusCounters e o tempo total de execução de um trabalho de ajuste. Você pode usar a duração média para estimar por quanto tempo seu trabalho de ajuste será executado.

  • ConsumedResources - O total de recursos, por exemplo o RunTimeInSeconds, consumidos pelo seu trabalho de ajuste. CompareConsumedResources, encontrado BestTrainingJob no DescribeHyperParameterTuningJob API, com o mesmoAPI. Você também pode ConsumedResources comparar com a resposta do ListTrainingJobsForHyperParameterTuningJobAPIpara avaliar se seu trabalho de ajuste está progredindo satisfatoriamente, considerando os recursos que estão sendo consumidos.

  • TuningJobCompletionDetails— Ajustar as informações de conclusão do trabalho que incluem o seguinte:

    • O timestamp de quando a convergência é detectada se a tarefa tiver convergido.

    • O número de trabalhos de treinamento que não melhoraram o desempenho do modelo. O desempenho do modelo é avaliado em relação à métrica objetiva do melhor trabalho de treinamento.

    Use os critérios de conclusão do trabalho de ajuste para avaliar a probabilidade de seu trabalho de ajuste melhorar o desempenho do modelo. O desempenho do modelo é avaliado em relação à melhor métrica objetiva se for executado até a conclusão.

Interrompendo seu trabalho de ajuste manualmente

Você pode determinar se deve deixar o trabalho de ajuste ser executado até que seja concluído ou se deve interromper o trabalho de ajuste manualmente. Para determinar isso, use as informações retornadas pelos parâmetros no DescribeHyperParameterTuningJobAPI, conforme mostrado na seção anterior Rastreando o andamento do trabalho de ajuste. Por exemplo, se o desempenho do seu modelo não melhorar após a conclusão de vários trabalhos de treinamento, você pode optar por interromper o trabalho de ajuste. O desempenho do modelo é avaliado em relação à melhor métrica objetiva.

Para interromper o trabalho de ajuste manualmente, use StopHyperParameterTuningJobAPIe forneça o nome do trabalho de ajuste a ser interrompido.