

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á.

# Ajustar vários algoritmos com otimização de hiperparâmetros para encontrar o melhor modelo
<a name="multiple-algorithm-hpo"></a>

Para criar um novo trabalho de otimização de hiperparâmetros (HPO) com a Amazon SageMaker AI que ajusta vários algoritmos, você deve fornecer configurações de trabalho que se apliquem a todos os algoritmos a serem testados e uma definição de treinamento para cada um desses algoritmos. Também é necessário especificar os recursos que deseja usar para o trabalho de ajuste.
+ As **configurações de trabalho** a serem definidas incluem inicialização a quente, parada antecipada e a estratégia de ajuste. Os recursos de inicialização a quente e interrupção precoce estão disponíveis somente ao ajustar um único algoritmo.
+ A **definição do trabalho de treinamento** para especificar o nome, a fonte do algoritmo, a métrica do objetivo e o intervalo de valores, quando necessário, para configurar o conjunto de valores de hiperparâmetros para cada trabalho de treinamento. Ele configura os canais para entradas de dados, locais de saída de dados e quaisquer locais de armazenamento de pontos de verificação para cada trabalho de treinamento. A definição também configura os recursos a serem implantados em cada trabalho de treinamento, incluindo tipos e contagens de instâncias, treinamento pontual gerenciado e condições de parada.
+ Os **recursos do trabalho de ajuste**: a serem implantados, incluindo o número máximo de trabalhos de treinamento simultâneos que um trabalho de ajuste de hiperparâmetros pode executar simultaneamente e o número máximo de trabalhos de treinamento que o trabalho de ajuste de hiperparâmetros pode executar.

## Conceitos básicos
<a name="multiple-algorithm-hpo-get-started"></a>

Você pode criar um novo trabalho de ajuste de hiperparâmetros, clonar um trabalho, adicionar ou editar tags de um trabalho no console. Você também pode usar a função de busca para encontrar trabalhos pelo nome, horário de criação ou status. Como alternativa, você também pode fazer trabalhos de ajuste de hiperparâmetros com a API de SageMaker IA.
+ **No console**: Para criar um novo trabalho, abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/), escolha **Trabalhos de ajuste de hiperparâmetros** no menu **Treinamento** e, em seguida, escolha **Criar trabalho de ajuste de hiperparâmetros**. Em seguida, siga as etapas de configuração para criar um trabalho de treinamento para cada algoritmo que você deseja usar. Essas etapas estão documentadas no tópico do [Criar um trabalho de ajuste de otimização de hiperparâmetros para um ou mais algoritmos (console)](multiple-algorithm-hpo-create-tuning-jobs.md). 
**nota**  
Ao iniciar as etapas de configuração, observe que as funcionalidades de inicialização a quente e interrupção antecipada não estão disponíveis para uso com HPO de vários algoritmos. Se você quiser usar esses atributos, só poderá ajustar um único algoritmo por vez. 
+ **Com a API**: para obter instruções sobre como usar a SageMaker API para criar um trabalho de ajuste de hiperparâmetros, consulte [Exemplo: Trabalho de ajuste de hiperparâmetros](automatic-model-tuning-ex.html). Ao ligar [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)para ajustar vários algoritmos, você deve fornecer uma lista de definições de treinamento usando, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinitions](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinitions)em vez de especificar uma única [TrainingJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinition). Você deve fornecer configurações de trabalho que se apliquem a todos os algoritmos a serem testados e uma definição de treinamento para cada um desses algoritmos. Você também deve especificar os recursos que deseja utilizar para o trabalho de ajuste. Escolha somente um desses tipos de definição, dependendo do número de algoritmos que estão sendo ajustados. 

**Topics**
+ [Conceitos básicos](#multiple-algorithm-hpo-get-started)
+ [Criar um trabalho de ajuste de otimização de hiperparâmetros para um ou mais algoritmos (console)](multiple-algorithm-hpo-create-tuning-jobs.md)
+ [Gerenciar trabalhos de treinamento e ajuste de hiperparâmetros](multiple-algorithm-hpo-manage-tuning-jobs.md)

# Criar um trabalho de ajuste de otimização de hiperparâmetros para um ou mais algoritmos (console)
<a name="multiple-algorithm-hpo-create-tuning-jobs"></a>

Este guia mostra como criar um novo trabalho de ajuste de otimização de hiperparâmetros (HPO) para um ou mais algoritmos. Para criar uma tarefa de HPO, defina as configurações da tarefa de ajuste e crie definições da tarefa de treinamento para cada algoritmo que está sendo ajustado. Em seguida, configure os recursos e crie o trabalho de ajuste. As seguintes seções fornecem detalhes sobre como concluir cada etapa: Fornecemos um exemplo de como ajustar vários algoritmos usando a SageMaker IA SDK para o Python cliente no final deste guia.

## Componentes de um trabalho de ajuste
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-settings"></a>

Um trabalho de ajuste de HPO contém os três componentes a seguir:
+ Configurações do trabalho de ajuste
+ Definições de trabalho de treinamento
+ Configuração do trabalho de ajuste

A forma como esses componentes são incluídos em seu trabalho de ajuste de HPO depende se seu trabalho de ajuste contém um ou vários algoritmos de treinamento. O guia a seguir descreve cada um dos componentes e fornece um exemplo dos dois tipos de trabalhos de ajuste.

### Configurações do trabalho de ajuste
<a name="multiple-algorithm-hpo-create-tuning-jobs-components-tuning-settings"></a>

As configurações do trabalho de ajuste são aplicadas em todos os algoritmos no trabalho de ajuste de HPO. Os recursos de inicialização a quente e interrupção precoce estão disponíveis somente quando você ajusta um único algoritmo. Depois de definir as configurações de trabalho, você pode criar definições de treinamento individuais para cada algoritmo ou variação que deseja ajustar. 

**Inicialização a quente**  
Se você clonou este trabalho, pode usar os resultados de um trabalho de ajuste anterior para melhorar o desempenho deste novo trabalho de ajuste. Esse é o atributo de inicialização a quente e só está disponível ao ajustar um único algoritmo. Com a opção de inicialização a quente, você pode escolher até cinco trabalhos anteriores de ajuste de hiperparâmetros para usar. Como alternativa, você pode usar o aprendizado por transferência para adicionar dados adicionais ao trabalho de ajuste principal. Ao selecionar essa opção, você escolhe um trabalho de ajuste anterior como pai. 

**nota**  
A inicialização a quente é compatível apenas com trabalhos de ajuste criados após 1.º de outubro de 2018. Para obter mais informações, consulte [Executar um trabalho de inicialização a quente](automatic-model-tuning-considerations.html).

**Interrupção antecipada**  
Para reduzir o tempo de computação e evitar sobreajuste do modelo, você pode interromper os trabalhos de treinamento antecipadamente. A interrupção antecipada é útil quando o trabalho de treinamento é improvável de melhorar a métrica objetiva atualmente melhor no trabalho de ajuste de hiperparâmetros. Como a inicialização a quente, esse atributo só está disponível ao ajustar um único algoritmo. Esse é um atributo automático sem opções de configuração e está desativado por padrão. Para obter mais informações sobre como a interrupção antecipada funciona, os algoritmos que a são compatíveis com e como usá-la com seus próprios algoritmos, consulte [Parar trabalhos de treinamento antecipadamente](automatic-model-tuning-early-stopping.html).

**Estratégia de ajuste**  
A estratégia de ajuste pode ser aleatória ou bayesiana ou Hyperband. Essas seleções especificam como os algoritmos de ajuste automático pesquisam intervalos de hiperparâmetros especificados que são selecionados em uma etapa posterior. A pesquisa aleatória escolhe combinações aleatórias de valores dos intervalos especificados e pode ser executada sequencialmente ou em paralelo. A otimização bayesiana escolhe valores com base na probabilidade de obter o melhor resultado de acordo com o histórico conhecido de seleções anteriores. O Hyperband utiliza uma estratégia de múltipla fidelidade que aloca dinamicamente recursos para trabalhos bem utilizados e interrompe automaticamente aqueles que têm desempenho inferior. A nova configuração que começa após a interrupção de outras configurações é escolhida aleatoriamente.

 O Hyperband pode ser usado apenas com algoritmos iterativos, ou seja, algoritmos que executam etapas em iterações, como [https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) ou [Random Cut Forest](https://docs.aws.amazon.com/sagemaker/latest/dg/randomcutforest.html). O Hyperband não pode ser usado com algoritmos não iterativos, como árvores de decisão ou [k-Nearest Neighbors](https://docs.aws.amazon.com/sagemaker/latest/dg/k-nearest-neighbors.html). Para obter mais informações sobre estratégias, consulte [Como funciona o ajuste de hiperparâmetros](automatic-model-tuning-how-it-works.html).

**nota**  
O Hyperband usa um mecanismo interno avançado para aplicar a interrupção antecipada. Portanto, quando você usa o atributo Hyperband interno de parada antecipada, o parâmetro `TrainingJobEarlyStoppingType` na API `HyperParameterTuningJobConfig` deve ser definido como `OFF`.

**Tags**  
Para ajudá-lo a gerenciar os trabalhos de ajuste, você pode inserir tags como pares de valores-chave para atribuir metadados aos trabalhos de ajuste. Os valores do par de chave/valor não são obrigatórios. Você pode usar a chave sem valores. Para ver as chaves associadas a um trabalho, escolha a guia **Tags** na página de detalhes do trabalho de ajuste. Para obter mais informações sobre como usar tags para trabalhos de ajuste, consulte [Gerenciar trabalhos de treinamento e ajuste de hiperparâmetros](multiple-algorithm-hpo-manage-tuning-jobs.md).

### Definições de trabalho de treinamento
<a name="multiple-algorithm-hpo-create-tuning-jobs-training-definitions"></a>

Para criar uma definição de trabalho de treinamento, você deve configurar o algoritmo e os parâmetros, definir a entrada e a saída de dados e configurar os recursos. Forneça pelo menos um [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html) para cada trabalho de ajuste do HPO. Cada definição de treinamento especifica a configuração de um algoritmo.

Para criar várias definições para a tarefa de treinamento, é possível clonar uma definição. A clonagem de uma tarefa pode economizar tempo porque copia todas as configurações da tarefa, incluindo canais de dados e locais de armazenamento do Amazon S3 para artefatos de saída. Você pode editar um trabalho clonado para alterar o que você precisa para seu caso de uso.

**Topics**
+ [Configurar algoritmo e parâmetros](#multiple-algorithm-hpo-algorithm-configuration)
+ [Definir entrada e saída de dados](#multiple-algorithm-hpo-data)
+ [Configurar recursos de trabalho de treinamento](#multiple-algorithm-hpo-training-job-definition-resources)
+ [Adicionar ou clonar um trabalho de treinamento](#multiple-algorithm-hpo-add-training-job)

#### Configurar algoritmo e parâmetros
<a name="multiple-algorithm-hpo-algorithm-configuration"></a>

 A lista a seguir descreve o que você precisa para configurar o conjunto de valores de hiperparâmetros para cada trabalho de treinamento. 
+ Um nome para o seu trabalho de ajuste
+ Permissão para acessar serviços
+ Parâmetros para qualquer opção de algoritmo
+ Uma métrica objetiva
+ A faixa de valores de hiperparâmetros, quando necessário

**Nome**  
 Forneça um nome exclusivo para a definição de treinamento. 

**Permissões**  
 A Amazon SageMaker AI exige permissões para ligar para outros serviços em seu nome. Escolha uma função AWS Identity and Access Management (IAM) ou deixe AWS criar uma função com a política do `AmazonSageMakerFullAccess` IAM anexada. 

**Configurações de segurança opcionais**  
 A configuração de isolamento de rede impede que o contêiner faça qualquer chamada de rede de saída. Isso é necessário para ofertas AWS Marketplace de aprendizado de máquina. 

 Você também pode escolher usar uma nuvem privada virtual (VPC).

**nota**  
 A criptografia entre contêineres está disponível apenas ao criar uma definição de trabalho por meio da API. 

**Opções do algoritmo**  
Você pode escolher entre algoritmos integrados, seu próprio algoritmo, seu próprio contêiner com um algoritmo, ou pode assinar um algoritmo do AWS Marketplace. 
+ Se você escolher um algoritmo integrado, ele terá as informações de imagem do Amazon Elastic Container Registry (Amazon ECR) pré-preenchidas.
+ Se você escolher seu próprio contêiner, é necessário especificar as informações da imagem (Amazon ECR). Você pode selecionar o modo de entrada para o algoritmo como File ou Pipe.
+ Se você planeja fornecer seus dados usando um arquivo CSV do Amazon S3, selecione o arquivo.

**Metrics**  
Quando você escolhe um algoritmo integrado, as métricas são fornecidas para você. Se você escolher seu próprio algoritmo, é necessário definir suas métricas. Você pode definir até 20 métricas para o seu trabalho de ajuste monitorar. Você deve escolher uma métrica como métrica objetiva. Para obter mais informações sobre como definir uma métrica para um trabalho de ajuste, consulte [Definir métricas](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).

**Métrica objetiva**  
Para encontrar o melhor trabalho de treinamento, defina uma métrica objetiva e se deve maximizá-la ou minimizá-la. Depois que o trabalho de treinamento for concluído, você poderá visualizar a página de detalhes do trabalho de ajuste. A página de detalhes fornece um resumo do melhor trabalho de treinamento encontrado usando essa métrica objetiva. 

**Configuração do hiperparâmetro**  
Quando você escolhe um algoritmo integrado, os valores padrão para seus hiperparâmetros são definidos para você, utilizando intervalos otimizados para o algoritmo que está sendo ajustado. É possível alterar esses valores conforme achar adequado. Por exemplo, em vez de um intervalo, você pode definir um valor fixo para um hiperparâmetro configurando o tipo do parâmetro como **estático**. Cada algoritmo tem diferentes parâmetros obrigatórios e opcionais. Para obter mais informações, consulte [Práticas recomendadas para ajuste de hiperparâmetros](automatic-model-tuning-considerations.html) e [definição de intervalos de hiperparâmetros](automatic-model-tuning-define-ranges.html). 

#### Definir entrada e saída de dados
<a name="multiple-algorithm-hpo-data"></a>

Cada definição de trabalho de treinamento para um trabalho de sintonia deve configurar os canais para as entradas de dados, os locais de saída de dados e, opcionalmente, quaisquer locais de armazenamento de pontos de verificação para cada trabalho de treinamento. 

**Configuração dos dados de entrada**  
Os dados de entrada são definidos por canais. Cada canal possui sua própria local de origem (Amazon S3 ou Amazon Elastic File System), opções de compressão e formato. É possível definir até 20 canais de fontes de entrada. Se o algoritmo que você escolheu é compatível com vários canais de entrada, você também pode especificá-los. Por exemplo, ao usar o [caderno de predição de fragmentos do XGBoost](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/xgboost_customer_churn/xgboost_customer_churn.html), você pode adicionar dois canais: treino e validação.

**Configuração do ponto de verificação**  
Os pontos de verificação são gerados periodicamente durante o treinamento. Para que os pontos de verificação sejam salvos, você deve escolher um local no Amazon S3. Os pontos de verificação são usados nos relatórios de métricas e também são usados para retomar trabalhos de treinamento gerenciado de spots. Para obter mais informações, consulte [Pontos de verificação na Amazon AI SageMaker](model-checkpoints.md).

**Configuração dos dados de saída**  
Defina uma localização no Amazon S3 para armazenar os artefatos do trabalho de treinamento. Você tem a opção de adicionar criptografia à saída usando uma chave AWS Key Management Service (AWS KMS). 

#### Configurar recursos de trabalho de treinamento
<a name="multiple-algorithm-hpo-training-job-definition-resources"></a>

Cada definição de trabalho de treinamento para um trabalho de sintonia deve configurar os recursos para implantação, incluindo tipos e contagens de instâncias, treinamento em instâncias Spot gerenciadas e condições de interrupção.

**Configuração de recursos**  
Cada definição de treinamento pode ter uma configuração de recurso diferente. Escolha o tipo de instância e o número de nós. 

**Treinamento de spot gerenciado**  
Você pode economizar custos de computador para trabalhos se tiver flexibilidade nos horários de início e término, permitindo que a SageMaker IA use a capacidade disponível para executar trabalhos. Para obter mais informações, consulte [Treinamento de spot gerenciado no Amazon SageMaker AI](model-managed-spot-training.md).

**Condição de interrupção**  
A condição de interrupção especifica a duração máxima permitida para cada tarefa de treinamento. 

#### Adicionar ou clonar um trabalho de treinamento
<a name="multiple-algorithm-hpo-add-training-job"></a>

Depois de criar uma definição de tarefa de treinamento para um trabalho de ajuste, você retornará ao painel **Definição de tarefa de treinamento (s)**. Esse painel é onde você pode criar definições adicionais de tarefas de treinamento para treinar algoritmos adicionais. Você pode selecionar a **definição Adicionar tarefa de treinamento** e seguir as etapas para definir uma tarefa de treinamento novamente. 

Como alternativa, para replicar uma definição de tarefa de treinamento existente e editá-la para o novo algoritmo, escolha **Clonar** no menu **Ação**. A opção de clonagem pode economizar tempo porque copia todas as configurações do tarefa, incluindo os canais de dados e os locais de armazenamento do Amazon S3. Para obter mais informações sobre clonagem, consulte [Gerenciar trabalhos de treinamento e ajuste de hiperparâmetros](multiple-algorithm-hpo-manage-tuning-jobs.md).

### Configuração do trabalho de ajuste
<a name="multiple-algorithm-hpo-resource-config"></a>

**Limites de recursos**  
Você pode especificar o número máximo de trabalhos de treinamento simultâneos que um trabalho de ajuste de hiperparâmetros pode executar simultaneamente (10 no máximo). Você também pode especificar o número máximo de trabalhos de treinamento que o trabalho de sintonia de hiperparâmetros pode executar (no máximo 500). O número de trabalhos paralelos não deve exceder o número de nós que você solicitou em todas as definições de treinamento. O número total de trabalhos não pode exceder o número de trabalhos que as definições devem executar.

Revise as configurações do trabalho, as definições do trabalho de treinamento e os limites de recursos. Em seguida, selecione **Criar trabalho de ajuste de hiperparâmetros**.

## Exemplo de trabalho de ajuste de HPO
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example"></a>

Para executar um trabalho de treinamento de otimização de hiperparâmetros (HPO), primeiro crie uma definição de trabalho de treinamento para cada algoritmo que está sendo ajustado. Em seguida, defina as configurações do trabalho de ajuste e configure os recursos para o trabalho de ajuste. Por fim, execute o trabalho de ajuste.

Se seu trabalho de ajuste de HPO contiver um único algoritmo de treinamento, a função de ajuste de SageMaker IA chamará a `HyperparameterTuner` API diretamente e transmitirá seus parâmetros. Se seu trabalho de ajuste do HPO conter vários algoritmos de treinamento, sua função de ajuste chamará a `create` função da API `HyperparameterTuner`. A função `create` diz à API que espere um dicionário contendo um ou mais estimadores.

Na seção a seguir, exemplos de código mostram como ajustar um trabalho contendo um único algoritmo de treinamento ou vários algoritmos usando a SageMaker IAPython SDK.

### Criar definições de trabalho de treinamento
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-train"></a>

Quando você cria um trabalho de ajuste que inclui vários algoritmos de treinamento, a configuração do trabalho de ajuste incluirá os estimadores, as métricas e outros parâmetros para seus trabalhos de treinamento. Portanto, você precisa primeiro criar a definição do trabalho de treinamento e, em seguida, configurar seu trabalho de ajuste. 

O exemplo de código a seguir mostra como recuperar dois contêineres de SageMaker IA contendo os algoritmos integrados [https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)e. [https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html](https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html) Se seu trabalho de ajuste conter somente um algoritmo de treinamento, omita um dos contêineres e um dos estimadores.

```
import sagemaker
from sagemaker import image_uris

from sagemaker.estimator import Estimator

sess = sagemaker.Session()
region = sess.boto_region_name
role = sagemaker.get_execution_role()

bucket = sess.default_bucket()
prefix = "sagemaker/multi-algo-hpo"

# Define the training containers and intialize the estimators
xgb_container = image_uris.retrieve("xgboost", region, "latest")
ll_container = image_uris.retrieve("linear-learner", region, "latest")

xgb_estimator = Estimator(
    xgb_container,
    role=role,
    instance_count=1,
    instance_type="ml.m4.xlarge",
    output_path='s3://{}/{}/xgb_output".format(bucket, prefix)',
    sagemaker_session=sess,
)

ll_estimator = Estimator(
    ll_container,
    role,
    instance_count=1,
    instance_type="ml.c4.xlarge",
    output_path="s3://{}/{}/ll_output".format(bucket, prefix),
    sagemaker_session=sess,
)

# Set static hyperparameters
ll_estimator.set_hyperparameters(predictor_type="binary_classifier")
xgb_estimator.set_hyperparameters(
    eval_metric="auc",
    objective="binary:logistic",
    num_round=100,
    rate_drop=0.3,
    tweedie_variance_power=1.4,
)
```

Em seguida, defina seus dados de entrada especificando os conjuntos de dados de treinamento, validação e teste, conforme mostrado no exemplo de código a seguir. Este exemplo mostra como ajustar vários algoritmos de treinamento.

```
training_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/train".format(bucket, prefix), content_type="csv"
)
validation_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/validate".format(bucket, prefix), content_type="csv"
)
test_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/test".format(bucket, prefix), content_type="csv"
)

train_inputs = {
    "estimator-1": {
        "train": training_data,
        "validation": validation_data,
        "test": test_data,
    },
    "estimator-2": {
        "train": training_data,
        "validation": validation_data,
        "test": test_data,
    },
}
```

Se seu algoritmo de ajuste contém somente um algoritmo de treinamento, seu `train_inputs` deve conter somente um estimador.

Você deve fazer o upload das entradas para os conjuntos de dados de treinamento, validação e treinamento em seu bucket do Amazon S3 antes de usá-las em um trabalho de ajuste de HPO.

### Definir recursos e configurações para seu trabalho de ajuste
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources"></a>

Esta seção mostra como inicializar um sintonizador, definir recursos e especificar configurações de trabalho para seu trabalho de ajuste. Se seu trabalho de ajuste conter vários algoritmos de treinamento, essas configurações serão aplicadas a todos os algoritmos contidos em sua trabalho de ajuste. Esta seção fornece dois exemplos de código para definir um sintonizador. Os exemplos de código mostram como otimizar um único algoritmo de treinamento seguido por um exemplo de como ajustar vários algoritmos de treinamento.

#### Ajustar um único algoritmo de treinamento
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources-single"></a>

O exemplo de código a seguir mostra como inicializar um sintonizador e definir intervalos de hiperparâmetros para um algoritmo integrado de SageMaker IA,. XGBoost

```
from sagemaker.tuner import HyperparameterTuner
from sagemaker.parameter import ContinuousParameter, IntegerParameter

hyperparameter_ranges = {
    "max_depth": IntegerParameter(1, 10),
    "eta": ContinuousParameter(0.1, 0.3),
}

objective_metric_name = "validation:accuracy"

tuner = HyperparameterTuner(
    xgb_estimator,
    objective_metric_name,
    hyperparameter_ranges,
    objective_type="Maximize",
    max_jobs=5,
    max_parallel_jobs=2,
)
```

#### Ajustar vários algoritmos de treinamento
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources-multiple"></a>

Cada trabalho de treinamento requer configurações diferentes, e elas são especificadas usando um dicionário. O exemplo de código a seguir mostra como inicializar um sintonizador com configurações para dois algoritmos integrados de SageMaker IA e. XGBoost Linear Learner O exemplo de código também mostra como definir uma estratégia de ajuste e outras configurações do trabalho, como os recursos de computação para o trabalho de ajuste. O exemplo de código a seguir usa `metric_definitions_dict`, o que é opcional.

```
from sagemaker.tuner import HyperparameterTuner
from sagemaker.parameter import ContinuousParameter, IntegerParameter

# Initialize your tuner
tuner = HyperparameterTuner.create(
    estimator_dict={
        "estimator-1": xgb_estimator,
        "estimator-2": ll_estimator,
    },
    objective_metric_name_dict={
        "estimator-1": "validation:auc",
        "estimator-2": "test:binary_classification_accuracy",
    },
    hyperparameter_ranges_dict={
        "estimator-1": {"eta": ContinuousParameter(0.1, 0.3)},
        "estimator-2": {"learning_rate": ContinuousParameter(0.1, 0.3)},
    },
    metric_definitions_dict={
        "estimator-1": [
            {"Name": "validation:auc", "Regex": "Overall test accuracy: (.*?);"}
        ],
        "estimator-2": [
            {
                "Name": "test:binary_classification_accuracy",
                "Regex": "Overall test accuracy: (.*?);",
            }
        ],
    },
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=3,
)
```

### Executar seu trabalho de ajuste de HPO
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-run"></a>

Agora você pode executar seu trabalho de ajuste passando suas entradas de treinamento para a função `fit` da classe `HyperparameterTuner`. O exemplo de código a seguir mostra como passar o parâmetro `train_inputs`, definido em um exemplo de código anterior, para seu sintonizador.

```
tuner.fit(inputs=train_inputs, include_cls_metadata ={}, estimator_kwargs ={})   
```

# Gerenciar trabalhos de treinamento e ajuste de hiperparâmetros
<a name="multiple-algorithm-hpo-manage-tuning-jobs"></a>

Um trabalho de ajuste pode conter muitos trabalhos de treinamento e criar e gerenciar esses trabalhos e suas definições pode se tornar uma tarefa complexa e onerosa. SageMaker A IA fornece ferramentas para ajudar a facilitar o gerenciamento desses trabalhos. Os trabalhos de ajuste que você executou podem ser acessados no console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). Selecione **Trabalho de ajuste de hiperparâmetros** no menu **Treinamento** para ver a lista. Essa página também é onde você inicia o procedimento para criar um novo trabalho de ajuste selecionando **Criar trabalho de ajuste de hiperparâmetros**. 

Para ver os trabalhos de treinamento serem executados como parte de um trabalho de ajuste, selecione um dos trabalhos de ajuste de hiperparâmetros na lista. As guias na página do trabalho de ajuste permitem que você inspecione os trabalhos de treinamento, suas definições, as tags e configurações usadas para o trabalho de ajuste, e o melhor trabalho de treinamento encontrado durante o ajuste. Você pode selecionar o melhor trabalho de treinamento ou qualquer outro trabalho de treinamento que pertença ao trabalho de ajuste para ver todas as configurações. A partir daqui, você pode criar um modelo que usa os valores de hiperparâmetros encontrados por um trabalho de treinamento selecionando **Criar modelo** ou clonar o trabalho de treinamento selecionando **Clonar**.

**Clonagem**  
Você pode economizar tempo clonando um trabalho de treinamento que pertence a um trabalho de ajuste de hiperparâmetros. A clonagem copia todas as configurações do trabalho, incluindo canais de dados, locais de armazenamento S3 para artefatos de saída. Você pode fazer isso para os trabalhos de treinamento que já foram executados a partir da página do trabalho de sintonia, conforme descrito anteriormente, ou ao criar definições adicionais de trabalho de treinamento ao criar um trabalho de sintonia de hiperparâmetros, como descrito na etapa [Adicionar ou clonar um trabalho de treinamento](multiple-algorithm-hpo-create-tuning-jobs.md#multiple-algorithm-hpo-add-training-job) desse procedimento. 

**Tags**  
O ajuste automático de modelos inicia vários trabalhos de treinamento em um único trabalho de ajuste principal para descobrir a ponderação ideal dos hiperparâmetros do modelo. As tags podem ser adicionadas ao trabalho de ajuste principal, conforme descrito na seção [Componentes de um trabalho de ajuste](multiple-algorithm-hpo-create-tuning-jobs.md#multiple-algorithm-hpo-create-tuning-jobs-define-settings), e essas tags são então propagadas para os trabalhos de treinamento individuais abaixo. Os clientes podem usar essas tags para fins como alocação de custos ou controle de acesso. Para adicionar tags usando o SageMaker SDK, use a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API. Para obter mais informações sobre como usar a marcação para AWS recursos, consulte Como [marcar AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) recursos.