

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

# Algoritmo XGBoost com Amazon AI SageMaker
<a name="xgboost"></a>

O [XGBoost](https://github.com/dmlc/xgboost) (eXtreme Gradient Boosting) é uma conhecida e eficiente implantação de código aberto do algoritmo baseado em árvores com gradient boosting. O aumento de gradiente é um algoritmo de aprendizado supervisionado que procura prever com precisão uma variável de destino combinando várias estimativas de um conjunto de modelos mais simples. O algoritmo XGBoost tem mostrado um bom desempenho nas competições de machine learning pelos seguintes motivos:
+ Seu manuseio robusto de uma variedade de tipos de dados, relacionamentos e distribuições.
+ Variedade de hiperparâmetros que você pode ajustar.

Você pode usar o XGBoost para regressão, classificação (binária e multiclasse) e problemas de classificação. 

Você pode usar a nova versão do algoritmo XGBoost das seguintes formas:
+ Um algoritmo integrado de SageMaker IA da Amazon.
+ Em uma estrutura para executar scripts de treinamento em seus ambientes locais.

Essa implementação usa um espaço menor na memória, melhor registro em log, validação aprimorada de hiperparâmetros e um conjunto expandido de métricas em relação às versões originais. Ela fornece um `estimator` do XGBoost que executa um script de treinamento em um ambiente gerenciado para XGBoost. A versão atual do SageMaker AI XGBoost é baseada nas versões 1.0, 1.2, 1.3, 1.5, 1.7 e 3.0 originais do XGBoost.

Para obter mais informações sobre o algoritmo Amazon SageMaker AI XGBoost, consulte as seguintes postagens no blog:
+ [Apresentando o contêiner de algoritmo Amazon SageMaker AI XGBoost de código aberto](https://aws.amazon.com/blogs/machine-learning/introducing-the-open-source-amazon-sagemaker-xgboost-algorithm-container/)
+ [O Amazon SageMaker AI XGBoost agora oferece treinamento de GPU totalmente distribuído](https://aws.amazon.com/blogs/machine-learning/amazon-sagemaker-xgboost-now-offers-fully-distributed-gpu-training/)

## Versões aceitas
<a name="xgboost-supported-versions"></a>

Para obter mais detalhes, consulte nossa [política de suporte](https://docs.aws.amazon.com/sagemaker/latest/dg/pre-built-containers-support-policy.html#pre-built-containers-support-policy-ml-framework).
+ Modo de estrutura (código aberto): 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1, 3,0-5
+ Modo de algoritmo: 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1, 3,0-5

**Atenção**  
Devido à capacidade computacional necessária, a versão 3.0-5 do SageMaker AI XGBoost não é compatível com instâncias de GPU da família de instâncias P3 para treinamento ou inferência.

**Atenção**  
Devido à compatibilidade do pacote, a versão 3.0-5 do SageMaker AI XGBoost não oferece suporte ao depurador. SageMaker 

**Atenção**  
Devido à capacidade computacional necessária, a versão 1.7-1 do SageMaker AI XGBoost não é compatível com instâncias de GPU da família de instâncias P2 para treinamento ou inferência.

**Atenção**  
Modo de isolamento de rede: não atualize o pip além da versão 25.2. As versões mais recentes podem tentar obter ferramentas de configuração do PyPI durante a instalação do módulo.

**Importante**  
Ao recuperar o URI da imagem do SageMaker AI XGBoost, não use `:latest` ou `:1` para a tag do URI da imagem. Você deve especificar um deles [Versões aceitas](#xgboost-supported-versions) para escolher o contêiner SageMaker AI-managed XGBoost com a versão nativa do pacote XGBoost que você deseja usar. Para encontrar a versão do pacote migrada para os contêineres SageMaker AI XGBoost, consulte [Docker Registry Paths](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) and Example Code. Em seguida Região da AWS, escolha o seu e navegue até a seção **XGBoost (algoritmo)**.

**Atenção**  
A versão 0.90 do XGBoost foram descontinuadas. A compatibilidade com atualizações de segurança ou correções de erros para o XGBoost 0.90 foi descontinuado. É altamente recomendável atualizar a versão do XGBoost para uma das versões mais recentes.

**nota**  
O XGBoost v1.1 não é compatível com IA. SageMaker A capacidade do XGBoost 1.1 de executar predições é interrompida quando a entrada de teste tem menos atributos do que os dados de treinamento nas entradas de LIBSVM. Essa capacidade foi restaurada no XGBoost v1.2. Considere usar o SageMaker AI XGBoost 1.2-2 ou posterior.

**nota**  
Você pode usar o XGBoost v1.0-1, mas ele não é oficialmente compatível.

## Recomendações de instâncias do EC2 para o algoritmo XGBoost
<a name="Instance-XGBoost"></a>

SageMaker O AI XGBoost suporta treinamento e inferência de CPU e GPU. As recomendações de instância dependem das necessidades de treinamento e inferência, bem como da versão do algoritmo XGBoost. Escolha uma das seguintes opções para obter mais informações:
+ [Treinamento de CPU](#Instance-XGBoost-training-cpu)
+ [Treinamento de GPU](#Instance-XGBoost-training-gpu)
+ [Treinamento de CPU distribuído](#Instance-XGBoost-distributed-training-cpu)
+ [Treinamento de GPU distribuído](#Instance-XGBoost-distributed-training-gpu)
+ [Inferência](#Instance-XGBoost-inference)

### Treinamento
<a name="Instance-XGBoost-training"></a>

O algoritmo SageMaker AI XGBoost suporta treinamento de CPU e GPU.

#### Treinamento de CPU
<a name="Instance-XGBoost-training-cpu"></a>

SageMaker O AI XGBoost 1.0-1 ou anterior treina apenas usando CPUs. É um algoritmo de uso intensivo de memória (ao contrário dos de uso intensivo de computação). Portanto, uma instância de computação de uso geral (por exemplo, M5) é uma opção melhor do que uma instância otimizada para computação (por exemplo, C4). Além disso, recomendamos que você tenha memória total suficiente em instâncias específicas para armazenar os dados de treinamento. Ele possibilita o uso de espaço em disco para lidar com dados que não cabem na memória principal. Isso é resultado do atributo out-of-core disponível com o modo de entrada LIBSVM. Mesmo assim, gravar arquivos de cache no disco diminui o tempo de processamento do algoritmo. 

#### Treinamento de GPU
<a name="Instance-XGBoost-training-gpu"></a>

SageMaker A versão 1.2-2 ou posterior do AI XGBoost suporta treinamento em GPU. Apesar de os custos por instância serem mais altos, as GPUs treinam mais rapidamente, o que as tornam mais econômicas. 

SageMaker O AI XGBoost versão 1.2-2 ou posterior oferece suporte às famílias de instâncias de GPU P2, P3, G4dn e G5.

SageMaker O AI XGBoost versão 1.7-1 ou posterior oferece suporte às famílias de instâncias de GPU P3, G4dn e G5. Observe que, devido aos requisitos de capacidade computacional, a versão 1.7-1 ou posterior não oferece apoio à família de instâncias P2.

SageMaker O AI XGBoost versão 3.0-5 ou posterior oferece suporte às famílias de instâncias de GPU G4dn e G5. Observe que, devido aos requisitos de capacidade computacional, a versão 3.0-5 ou posterior não oferece suporte à família de instâncias P3.

Para aproveitar as vantagens do treinamento em GPU:
+ Especifique o tipo de instância como uma das instâncias da GPU (por exemplo, G4dn) 
+ Defina o hiperparâmetro `tree_method` para `gpu_hist` em seu script XGBoost existente

### Treinamento distribuído
<a name="Instance-XGBoost-distributed-training"></a>

SageMaker O AI XGBoost oferece suporte a instâncias de CPU e GPU para treinamento distribuído.

#### Treinamento de CPU distribuído
<a name="Instance-XGBoost-distributed-training-cpu"></a>

Para executar o treinamento de CPU em várias instâncias, defina o parâmetro `instance_count` do estimador como um valor maior que um. Os dados de entrada devem ser divididos entre o número total de instâncias. 

##### Divida os dados de entrada entre as instâncias
<a name="Instance-XGBoost-distributed-training-divide-data"></a>

Divida os dados de entrada usando as seguintes etapas:

1. Divida os dados de entrada em arquivos menores. O número de arquivos deve ser pelo menos igual ao número de instâncias usadas para o treinamento distribuído. O uso de vários arquivos menores em vez de um arquivo grande também diminui o tempo de download dos dados para o trabalho de treinamento.

1. Ao criar seu [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html), defina o parâmetro de distribuição como`ShardedByS3Key`. Com isso, cada instância obtém aproximadamente o *1/n*mesmo número de arquivos no S3 se houver *n* instâncias especificadas no trabalho de treinamento.

#### Treinamento de GPU distribuído
<a name="Instance-XGBoost-distributed-training-gpu"></a>

Você pode usar o treinamento distribuído com instâncias de GPU única ou várias GPUs.

**Treinamento distribuído com instâncias de GPU única **

SageMaker As versões 1.2-2 a 1.3-1 do AI XGBoost oferecem suporte apenas ao treinamento de instância de GPU única. Isso significa que, mesmo que você selecione uma instância com várias GPUs, somente uma GPU será usada por instância.

Os dados de entrada devem ser divididos entre o número total de instâncias. 
+ Você usa as versões 1.2-2 a 1.3-1 do XGBoost.
+ Você não precisa usar instâncias de várias GPUs.

 Para obter mais informações, consulte [Divida os dados de entrada entre as instâncias](#Instance-XGBoost-distributed-training-divide-data).

**nota**  
As versões 1.2-2 a 1.3-1 do SageMaker AI XGBoost usam apenas uma GPU por instância, mesmo se você escolher uma instância com várias GPUs.

**Treinamento distribuído com instâncias de várias GPUs**

[A partir da versão 1.5-1, o SageMaker AI XGBoost oferece treinamento distribuído de GPU com o Dask.](https://www.dask.org/) Com o Dask, você pode utilizar todas as GPUs ao usar uma ou mais instâncias com várias GPUs. O Dask também funciona ao usar instâncias de várias GPUs. 

Treine com o Dask usando as seguintes etapas:

1. Omita o `distribution` parâmetro em seu [TrainingInput](https://sagemaker.readthedocs.io/en/stable/api/utility/inputs.html)ou defina-o como. `FullyReplicated`

1. Ao definir seus hiperparâmetros, defina `use_dask_gpu_training` como `"true"`.

**Importante**  
O treinamento distribuído com o Dask oferece apoio apenas para formatos de entrada CSV e Parquet. Se você usar outros formatos de dados, como LIBSVM ou PROTOBUF, o trabalho de treinamento falhará.   
Para dados do Parquet, verifique se os nomes das colunas estão salvos como cadeias de caracteres. As colunas com nomes de outros tipos de dados não serão carregadas.

**Importante**  
O treinamento distribuído com o Dask não oferece apoio para o modo pipe. Se o modo pipe for especificado, o trabalho de treinamento falhará.

Há algumas considerações a serem observadas ao treinar o SageMaker AI XGBoost com o Dask. Lembre-se de dividir seus dados em arquivos menores. O Dask lê cada arquivo Parquet como uma partição. Há um operador do Dask para cada GPU. Como resultado, o número de arquivos deve ser maior que o número total de GPUs (contagem de instâncias \* número de GPUs por instância). Ter um número muito grande de arquivos também pode prejudicar o desempenho. Para obter mais informações, consulte [Práticas recomendadas do Dask](https://docs.dask.org/en/stable/best-practices.html).

#### Variações na saída
<a name="Instance-XGBoost-distributed-training-output"></a>

O hiperparâmetro `tree_method` especificado determina o algoritmo usado para o treinamento do XGBoost. Os métodos de árvore `approx`, `hist` e `gpu_hist` são todos métodos aproximados e usam esboços para cálculo de quantil. Para ter mais informações, consulte [Métodos de árvore](https://xgboost.readthedocs.io/en/stable/treemethod.html) na documentação do XGBoost. O esboço é um algoritmo aproximado. Portanto, você pode esperar variações no modelo dependendo de fatores como o número de operadores escolhidos para o treinamento distribuído. A importância da variação depende dos dados.

### Inferência
<a name="Instance-XGBoost-inference"></a>

SageMaker O AI XGBoost suporta instâncias de CPU e GPU para inferência. Para obter informações sobre os tipos de instância para inferência, consulte [Tipos de instância do Amazon SageMaker AI ML](https://aws.amazon.com/sagemaker/pricing/).