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á.
Definir intervalos de hiperparâmetros
Este guia mostra como usar SageMaker APIs para definir intervalos de hiperparâmetros. Também fornece uma lista de tipos de escalonamento de hiperparâmetros que você pode usar.
A escolha de hiperparâmetros e intervalos afeta significativamente o desempenho do seu trabalho de ajuste. O ajuste de hiperparâmetros encontra os melhores valores de hiperparâmetros para o seu modelo ao pesquisar em uma faixa de valores que você especifica para cada hiperparâmetro ajustável. Você também pode especificar até 100 hiperparâmetros estáticos que não mudam ao longo do trabalho de ajuste. Você pode usar até 100 hiperparâmetros no total (estático+ajustável). Para obter orientação sobre como escolher hiperparâmetros e intervalos, consulte Práticas recomendadas para o ajuste de hiperparâmetros. Você também pode usar o ajuste automático para encontrar as configurações ideais do trabalho de ajuste. Para mais informações, consulte a seção Ajuste automático a seguir.
nota
SageMaker O ajuste automático do modelo (AMT) pode adicionar hiperparâmetros adicionais que contribuem para o limite total de 100 hiperparâmetros. Atualmente, para passar sua métrica objetiva para o trabalho de ajuste para uso durante o treinamento, SageMaker ela é _tuning_objective_metric
adicionada automaticamente.
Hiperparâmetros estáticos
Use hiperparâmetros estáticos para os seguintes casos: Por exemplo, você pode usar AMT para ajustar seu modelo usando param1
(um parâmetro ajustável) e param2
(um parâmetro estático). Se você fizer isso, use um espaço de pesquisa param1
que esteja entre dois valores e passe param2
como um hiperparâmetro estático, da seguinte maneira.
param1: ["range_min","range_max"] param2: "static_value"
Os hiperparâmetros estáticos têm a seguinte estrutura:
"StaticHyperParameters": { "objective" : "reg:squarederror", "dropout_rate": "0.3" }
Você pode usar a Amazon SageMaker API para especificar pares de valores-chave no StaticHyperParameterscampo do HyperParameterTrainingJobDefinition
parâmetro que você passa para a CreateHyperParameterTuningJoboperação.
Hiperparâmetros dinâmicos
Você pode usar o SageMaker API para definir intervalos de hiperparâmetros. Especifique os nomes dos hiperparâmetros e as faixas de valores no campo ParameterRanges
do parâmetro HyperParameterTuningJobConfig
que você passa para a operação CreateHyperParameterTuningJob
.
O campo ParameterRanges
tem três subcampos: categórico, inteiro e contínuo. Você pode definir até 30 hiperparâmetros ajustáveis totais (categóricos + inteiros + contínuos) para pesquisar.
nota
Cada hiperparâmetro categórico pode ter no máximo 30 valores diferentes.
Os hiperparâmetros dinâmicos têm a seguinte estrutura:
"ParameterRanges": { "CategoricalParameterRanges": [ { "Name": "tree_method", "Values": ["auto", "exact", "approx", "hist"] } ], "ContinuousParameterRanges": [ { "Name": "eta", "MaxValue" : "0.5", "MinValue": "0", "ScalingType": "Auto" } ], "IntegerParameterRanges": [ { "Name": "max_depth", "MaxValue": "10", "MinValue": "1", "ScalingType": "Auto" } ] }
Se você criar um trabalho de ajuste com uma Grid
estratégia, só poderá especificar valores categóricos. Não é necessário fornecer o MaxNumberofTrainingJobs
. Esse valor é inferido do número total de configurações que podem ser produzidas a partir de seus parâmetros categóricos. Se especificado, o valor de MaxNumberOfTrainingJobs
deve ser igual ao número total de combinações categóricas distintas possíveis.
Ajuste automático
Para economizar tempo e recursos pesquisando intervalos de hiperparâmetros, recursos ou métricas objetivas, o ajuste automático pode adivinhar automaticamente os valores ideais para alguns campos de hiperparâmetros. Use o ajuste automático para encontrar valores ideais para os seguintes campos:
-
ParameterRanges— Os nomes e intervalos de hiperparâmetros que um trabalho de ajuste pode otimizar.
-
ResourceLimits— O máximo de recursos a serem usados em um trabalho de ajuste. Esses recursos podem incluir o número máximo de trabalhos de treinamento, o tempo de execução máximo de um trabalho de ajuste e o número máximo de trabalhos de treinamento que podem ser executados ao mesmo tempo.
-
TrainingJobEarlyStoppingType— Uma bandeira que interrompe um trabalho de treinamento se um trabalho não estiver melhorando significativamente em relação a uma métrica objetiva. O padrão é habilitado. Para obter mais informações, consulte Interromper trabalhos de treinamento precocemente.
-
RetryStrategy— O número de vezes que você deve tentar novamente um trabalho de treinamento. Valores diferentes de zero para
RetryStrategy
podem aumentar a probabilidade de seu trabalho ser concluído com sucesso. -
Strategy — Especifica como o ajuste de hiperparâmetros escolhe as combinações de valores de hiperparâmetros a serem usadas no trabalho de treinamento que ele inicia.
-
ConvergenceDetected— Um sinalizador para indicar que o Automatic Model Tuning (AMT) detectou a convergência do modelo.
Para usar o ajuste automático, faça o seguinte:
-
Especifique o hiperparâmetro e um valor de exemplo no
AutoParameters
campo do ParameterRangesAPI. -
Habilite o ajuste automático.
AMTdeterminará se seus hiperparâmetros e valores de exemplo são elegíveis para ajuste automático. Os hiperparâmetros que podem ser usados no ajuste automático são automaticamente atribuídos ao tipo de intervalo de parâmetros apropriado. Em seguida, AMT usa ValueHint
para selecionar um intervalo ideal para você. Você pode usar o DescribeHyperParameterTrainingJob
API para visualizar esses intervalos.
O exemplo a seguir mostra como configurar um trabalho de ajuste que usa o ajuste automático. No exemplo de configuração, o hiperparâmetro max_depth
contém ValueHint
um valor de exemplo de 4
.
config = { 'Autotune': {'Mode': 'Enabled'}, 'HyperParameterTuningJobName':'my-autotune-job', 'HyperParameterTuningJobConfig': { 'HyperParameterTuningJobObjective': {'Type': 'Minimize', 'MetricName': 'validation:rmse'}, 'ResourceLimits': {'MaxNumberOfTrainingJobs': 5, 'MaxParallelTrainingJobs': 1}, 'ParameterRanges': { 'AutoParameters': [ {'Name': 'max_depth', 'ValueHint': '4'} ] } }, 'TrainingJobDefinition': { .... }
Continuando com o exemplo anterior, um trabalho de ajuste é criado depois que a configuração anterior é incluída em uma chamada para CreateHyperParameterTuningJob
API o. Em seguida, o autotune converte o hiperparâmetro max_depth em hiperparâmetro. AutoParameters IntegerParameterRanges
A resposta a seguir de a DescribeHyperParameterTrainingJob
API mostra que os ideais IntegerParameterRanges
para max_depth
estão entre 2
8
e.
{ 'HyperParameterTuningJobName':'my_job', 'HyperParameterTuningJobConfig': { 'ParameterRanges': { 'IntegerParameterRanges': [ {'Name': 'max_depth', 'MinValue': '2', 'MaxValue': '8'}, ], } }, 'TrainingJobDefinition': { ... }, 'Autotune': {'Mode': 'Enabled'} }
Tipos de escalabilidade de hiperparâmetros
Para intervalos de hiperparâmetros inteiros e contínuos, você pode escolher a escala que deseja que o ajuste de hiperparâmetros utilize. Por exemplo, para pesquisar o intervalo de valores, você pode especificar um valor para o campo ScalingType
do intervalo de hiperparâmetros. Você pode escolher entre os seguintes tipos de escalonamento de hiperparâmetros:
- Auto
-
SageMaker o ajuste de hiperparâmetros escolhe a melhor escala para o hiperparâmetro.
- Linear
-
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala linear. Normalmente, você escolhe isso se o intervalo de todos os valores, do menor ao mais alto, for relativamente pequeno (dentro de uma ordem de magnitude). A busca uniforme de valores dentro da faixa proporciona uma exploração razoável de todo o intervalo.
- Logarítmica
-
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala logarítmica.
A escalabilidade logarítmica funciona apenas para intervalos que têm valores maiores que 0.
Escolha a escala logarítmica quando estiver pesquisando uma faixa que abrange várias ordens de magnitude.
Por exemplo, se você estiver ajustando um modelo Ajustar um modelo de aprendizagem linear e especificar um intervalo de valores entre 0,0001 e 1,0 para o
learning_rate
hiperparâmetro, considere o seguinte: Pesquisar uniformemente em uma escala logarítmica fornece uma amostra melhor de todo o intervalo do que pesquisar em uma escala linear. Isso ocorre porque pesquisar em uma escala linear dedicaria, em média, 90% do seu orçamento de treinamento apenas aos valores entre 0,1 e 1,0. Como resultado, isso deixa apenas 10% do seu orçamento de treinamento para valores entre 0,0001 e 0,1. ReverseLogarithmic
-
O ajuste de hiperparâmetros pesquisa os valores no intervalo de hiperparâmetros usando uma escala logarítmica reversa. A escala logarítmica reversa é suportada somente para intervalos contínuos de hiperparâmetros. Ela não é compatível para intervalos de hiperparâmetros inteiros.
Escolha a escalabilidade logarítmica inversa ao pesquisar um intervalo muito sensível a pequenas alterações que sejam muito próximas de 1.
A escalabilidade logarítmica inversa funciona apenas para intervalos que estão inteiramente dentro do intervalo 0<=x<1,0.
Para ver um exemplo de notebook que usa escalabilidade de hiperparâmetros, consulte esses exemplos de SageMaker hiperparâmetros da Amazon