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á.
XGBoostalgoritmo com a Amazon SageMaker
O XGBoost
-
É um tratamento robusto de uma variedade de tipos de dados, relacionamentos e distribuições.
-
A variedade de hiperparâmetros que você pode ajustar.
Você pode usar XGBoost para problemas de regressão, classificação (binária e multiclasse) e classificação.
Você pode usar a nova versão do XGBoost algoritmo da seguinte forma:
-
Um algoritmo SageMaker integrado da Amazon.
-
Uma estrutura para executar scripts de treinamento em seus ambientes locais.
Essa implementação ocupa menos memória, melhor registro, melhor validação de hiperparâmetros e um conjunto maior de métricas do que as versões originais. Ele fornece um XGBoost estimator
que executa um script de treinamento em um XGBoost ambiente gerenciado. A versão atual do SageMaker XGBoost é baseada nas XGBoost versões originais 1.0, 1.2, 1.3, 1.5 e 1.7.
Para obter mais informações sobre o SageMaker XGBoost algoritmo da Amazon, consulte as seguintes postagens no blog:
Versões compatíveis
-
Modo de estrutura (código aberto): 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1
-
Modo de algoritmo: 1,2-1, 1,2-2, 1,3-1, 1,5-1, 1,7-1
Atenção
Devido à capacidade computacional necessária, a versão 1.7-1 do não SageMaker XGBoost é compatível com GPU instâncias da família de instâncias P2 para treinamento ou inferência.
Importante
Ao recuperar a SageMaker XGBoost imagemURI, não use :latest
ou :1
para a URI tag de imagem. Você deve especificar um dos Versões compatíveis para escolher o XGBoost contêiner SageMaker gerenciado com a versão do XGBoost pacote nativo que você deseja usar. Para encontrar a versão do pacote migrada para os SageMaker XGBoost contêineres, consulte Docker Registry Paths and Example Code. Em seguida Região da AWS, escolha seu e navegue até a seção XGBoost(algoritmo).
Atenção
As versões XGBoost 0.90 estão obsoletas. O suporte para atualizações de segurança ou correções de erros para a versão XGBoost 0.90 foi descontinuado. É altamente recomendável que você atualize a XGBoost versão para uma das versões mais recentes.
nota
XGBoostA v1.1 não é suportada no. SageMaker XGBoost1.1 tem uma capacidade interrompida de executar previsões quando a entrada do teste tem menos recursos do que os dados de treinamento nas LIBSVM entradas. Esse recurso foi restaurado na XGBoost v1.2. Considere usar SageMaker XGBoost 1.2-2 ou posterior.
nota
Você pode usar a XGBoost versão v1.0-1, mas ela não é oficialmente suportada.
EC2recomendação de instância para o XGBoost algoritmo
SageMaker XGBoostapoios, GPU treinamento CPU e inferência. As recomendações de instância dependem das necessidades de treinamento e inferência, bem como da versão do XGBoost algoritmo. Escolha uma das opções a seguir para obter mais informações:
Treinamento
O SageMaker XGBoost algoritmo suporta CPU e GPU treina.
CPUtreinamento
SageMaker XGBoost1.0-1 ou anterior, somente trens que usam. 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 suporta o uso de espaço em disco para lidar com dados que não cabem na memória principal. Isso é resultado do out-of-core recurso disponível com o modo de entrada libsvm. Mesmo assim, gravar arquivos de cache no disco diminui o tempo de processamento do algoritmo.
GPUtreinamento
SageMaker XGBoosta versão 1.2-2 ou posterior oferece suporte GPU ao treinamento. Apesar dos custos mais altos por instância, GPUs treine mais rapidamente, tornando-os mais econômicos.
SageMaker XGBoosta versão 1.2-2 ou posterior oferece suporte às famílias de instâncias P2, P3, G4dn e G5. GPU
SageMaker XGBoosta versão 1.7-1 ou posterior oferece suporte às famílias de instâncias P3, G4dn e G5. GPU Observe que, devido aos requisitos de capacidade computacional, a versão 1.7-1 ou posterior não oferece suporte à família de instâncias P2.
Para aproveitar as vantagens do GPU treinamento:
-
Especifique o tipo de instância como uma das GPU instâncias (por exemplo, P3)
-
Defina o
tree_method
hiperparâmetro comogpu_hist
em seu script existente XGBoost
Treinamento distribuído
SageMaker XGBoostsuportes CPU e GPU instâncias para treinamento distribuído.
CPUTreinamento distribuído
Para executar o CPU treinamento em várias instâncias, defina o instance_count
parâmetro do estimador para 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
Divida os dados de entrada usando as seguintes etapas:
-
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.
-
Ao criar seu TrainingInput
, defina o parâmetro de distribuição como ShardedByS3Key
. Com isso, cada instância obtém aproximadamente 1/n do número de arquivos no S3 se houver n instâncias especificadas no trabalho de treinamento.
GPUTreinamento distribuído
Você pode usar o treinamento distribuído com uma GPU ou várias GPU instâncias.
Treinamento distribuído com GPU instâncias únicas
SageMaker XGBoostAs versões 1.2-2 a 1.3-1 oferecem suporte apenas ao treinamento em instância única. GPU Isso significa que, mesmo que você selecione uma GPU multiinstância, somente uma GPU será usada por instância.
Você deve dividir seus dados de entrada entre o número total de instâncias se:
-
Você usa XGBoost as versões 1.2-2 a 1.3-1.
-
Você não precisa usar várias GPU instâncias.
Para obter mais informações, consulte Divida os dados de entrada entre as instâncias.
nota
As versões 1.2-2 a 1.3-1 usam SageMaker XGBoost apenas uma GPU por instância, mesmo se você escolher uma instância múltipla. GPU
Treinamento distribuído com várias instâncias GPU
A partir da versão 1.5-1, SageMaker XGBoost oferece GPU treinamento distribuído com o Dask.
Treine com o Dask usando as seguintes etapas:
Omita o
distribution
parâmetro em seu TrainingInputou defina-o como. FullyReplicated
Ao definir seus hiperparâmetros, defina
use_dask_gpu_training
como"true"
.
Importante
O treinamento distribuído com suporte apenas para o Dask CSV e os formatos de entrada do Parquet. Se você usar outros formatos de dados, como LIBSVM ouPROTOBUF, 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 suporte para o modo pipe. Se o modo pipe for especificado, o trabalho de treinamento falhará.
Há algumas considerações que você deve considerar ao treinar SageMaker 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 funcionário da Dask para cadaGPU. 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
Variações na saída
O tree_method
hiperparâmetro especificado determina o algoritmo usado para XGBoost treinamento. 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 obter mais informações, consulte Métodos de árvore
Inferência
SageMaker XGBoostsuportes CPU e GPU instâncias para inferência. Para obter informações sobre os tipos de instância para inferência, consulte Tipos de instância do Amazon SageMaker ML