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á.
Treinar um modelo
Nesta etapa, você escolhe um algoritmo de treinamento e executa um trabalho de treinamento para o modelo. O Amazon SageMaker Python SDK
Escolha do algoritmo de treinamento
Para escolher o algoritmo certo para seu conjunto de dados, você normalmente precisa avaliar modelos diferentes para encontrar os modelos mais adequados aos seus dados. Para simplificar, o algoritmo Algoritmo XGBoost com Amazon AI SageMaker integrado de SageMaker IA é usado em todo este tutorial sem a pré-avaliação dos modelos.
dica
Se você quiser que a SageMaker IA encontre um modelo apropriado para seu conjunto de dados tabular, use o Amazon SageMaker Autopilot, que automatiza uma solução de aprendizado de máquina. Para obter mais informações, consulte SageMaker Piloto automático.
Criar e executar um trabalho de treinamento
Depois de descobrir qual modelo usar, comece a criar um trabalho de treinamento. Este tutorial usa o algoritmo integrado do XGBoost.
Como executar uma tarefa de treinamento de modelo
-
Importe o Amazon SageMaker Python SDK
e comece recuperando as informações básicas da sua sessão atual SageMaker de IA. from sagemaker.core.helper.session_helper import Session, get_execution_role sagemaker_session = Session() region = sagemaker_session.boto_region_name print(f"AWS Region: {region}") role = get_execution_role() print(f"RoleArn: {role}")nota
Verifique a versão do SDK do SageMaker Python executando.
sagemaker.__version__Este tutorial é baseado emsagemaker>=3.0. Se o SDK estiver desatualizado, instale a versão mais recente executando o seguinte comando:! pip install -qU sagemakerSe você executar essa instalação nas instâncias existentes do SageMaker Studio ou do notebook, precisará atualizar manualmente o kernel para concluir a aplicação da atualização de versão.
Isso retorna as informações a seguir:
-
region— A AWS região atual em que a instância do notebook SageMaker AI está sendo executada. -
role: o perfil do IAM usada pela instância de caderno.
-
-
Crie uma configuração de treinamento e defina hiperparâmetros para o algoritmo XGBoost.
Crie um
ModelTrainerusando asagemaker.train.ModelTrainerclasse com hiperparâmetros passados diretamente no construtor. No código de exemplo a seguir, o ModelTrainer é chamadoxgb_model_trainer.from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute, OutputDataConfig from sagemaker.core import image_uris s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model') container = image_uris.retrieve("xgboost", region, "1.2-1") print(container) compute = Compute( instance_type='ml.m4.xlarge', instance_count=1, volume_size_in_gb=5 ) xgb_model_trainer = ModelTrainer( training_image=container, role=role, compute=compute, output_data_config=OutputDataConfig(s3_output_path=s3_output_location), hyperparameters={ "max_depth": "5", "eta": "0.2", "gamma": "4", "min_child_weight": "6", "subsample": "0.7", "objective": "binary:logistic", "num_round": "1000" } )Para construir a SageMaker IA
ModelTrainer, especifique os seguintes parâmetros:-
training_image: especifique o URI da imagem de contêiner de treinamento. Neste exemplo, o SageMaker URI do contêiner de treinamento do AI XGBoost é especificado usando.image_uris.retrieve -
role— A função AWS Identity and Access Management (IAM) que a SageMaker IA usa para realizar tarefas em seu nome (por exemplo, ler resultados de treinamento, chamar artefatos de modelos do Amazon S3 e escrever resultados de treinamento no Amazon S3). -
compute— Um objetoComputede configuração que especifica o tipo e o número de instâncias de computação de ML do Amazon EC2 a serem usadas para treinamento de modelos. Para este exercício de treinamento, você usa uma única instânciaml.m4.xlarge, que tem 4 CPUs, 16 GB de memória, um armazenamento Amazon Elastic Block Store (Amazon EBS) e um alto desempenho de rede. Para obter mais informações sobre os tipos de instância de computação EC2, consulte Tipos de instância do Amazon EC2. Para obter mais informações sobre cobrança, consulte os SageMaker preços https://aws.amazon.com/sagemaker/pricing/ da Amazon. -
hyperparameters— Um dicionário de hiperparâmetros para o algoritmo de treinamento. Todos os valores devem ser cadeias de caracteres.
dica
Se você quiser executar o treinamento distribuído de modelos de aprendizado profundo de grande porte, como redes neurais convolucionais (CNN) e modelos de processamento de linguagem natural (PNL), use o SageMaker AI Distributed para paralelismo de dados ou paralelismo de modelos. Para obter mais informações, consulte Treinamento distribuído na Amazon SageMaker AI.
dica
Você também pode ajustar os hiperparâmetros usando o recurso de otimização de hiperparâmetros de SageMaker IA. Para obter mais informações, consulte Ajuste automático de modelos com SageMaker IA.
-
-
Configure a entrada de dados para treinamento.
Use a classe
InputDatapara configurar um fluxo de entrada de dados para treinamento. O código de exemplo a seguir mostra como configurar objetosInputDatapara usar os conjuntos de dados de treinamento e validação que você enviou para o Amazon S3 na seção Divida o conjunto de dados em treinamento, validação e teste.from sagemaker.train.configs import InputData train_input = InputData( channel_name="train", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/train.csv") ) validation_input = InputData( channel_name="validation", data_source="s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv") ) -
Inicie o treinamento de modelos.
Para iniciar o treinamento do modelo, chame o
trainmétodo do instrutor com os conjuntos de dados de treinamento e validação. Por padrão, otrainmétodo exibe registros de progresso e espera até que o treinamento seja concluído.xgb_model_trainer.train(input_data_config=[train_input, validation_input])Para obter mais informações sobre treinamento de modelo, consulte Treine um modelo com a Amazon SageMaker. Esse trabalho de treinamento tutorial pode levar até 10 minutos.
Depois que o trabalho de treinamento for concluído, você poderá baixar um relatório de treinamento do XGBoost e um relatório de perfil gerado pelo Debugger. SageMaker O relatório de treinamento do XGBoost oferece insights sobre o progresso e os resultados do treinamento, como a função de perda em relação à iteração, importância do atributo, matriz de confusão, curvas de precisão e outros resultados estatísticos do treinamento. Por exemplo, você pode encontrar a seguinte curva de perda no relatório de treinamento do XGBoost, que indica claramente que há um problema de ajuste excessivo:
Execute o código a seguir para especificar o URI do bucket do S3 em que os relatórios de treinamento do Depurador são gerados e verifique se os relatórios existem.
training_job = xgb_model_trainer._latest_training_job rule_output_path = training_job.output_data_config.s3_output_path + "/" + training_job.training_job_name + "/rule-output" ! aws s3 ls {rule_output_path} --recursiveFaça o download dos relatórios de treinamento e criação de perfil do Depurador do XGBoost para o espaço de trabalho atual:
! aws s3 cp {rule_output_path} ./ --recursiveExecute o seguinte script do IPython para obter o link do arquivo do relatório de treinamento do XGBoost:
from IPython.display import FileLink, FileLinks display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))O script IPython a seguir retorna o link do arquivo do relatório de criação de perfil do Depurador, que mostra resumos e detalhes da utilização de recursos da instância EC2, dos resultados da detecção de gargalos do sistema e dos resultados da criação de perfil da operação do python:
# Note: In V3, debugger rule outputs can be accessed via the SageMaker console # or the boto3 DescribeTrainingJob API (DebugRuleEvaluationStatuses field). # Example using boto3: # import boto3 # sm = boto3.client("sagemaker") # resp = sm.describe_training_job(TrainingJobName=training_job.training_job_name) # rule_statuses = resp["DebugRuleEvaluationStatuses"] profiler_report_name = "ProfilerReport-1234567890" display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))dica
Se os relatórios HTML não renderizarem gráficos na JupyterLab exibição, você deverá escolher Confiar em HTML na parte superior dos relatórios.
Para identificar problemas de treinamento, como sobreajuste, desaparecimento de gradientes e outros problemas que impedem a convergência do modelo, use o SageMaker Debugger e realize ações automatizadas ao criar protótipos e treinar seus modelos de ML. Para obter mais informações, consulte SageMaker Depurador Amazon. Para encontrar uma análise completa dos parâmetros do modelo, consulte o caderno de exemplo Explicabilidade com o Amazon SageMaker Debugger
.
Agora você tem um modelo XGBoost treinado. SageMaker A IA armazena o artefato modelo em seu bucket do S3. Para encontrar a localização do artefato modelo, execute o código a seguir para imprimir o model_data atributo:
xgb_model_trainer._latest_training_job.model_artifacts.s3_model_artifacts
dica
Para medir os vieses que podem ocorrer durante cada estágio do ciclo de vida do aprendizado de máquina (coleta de dados, treinamento e ajuste de modelos e monitoramento de modelos de aprendizado de máquina implantados para previsão), use o Clarify. SageMaker Para obter mais informações, consulte Explicabilidade do modelo. Para ver um exemplo de ponta a ponta, consulte o caderno de exemplo de justiça e explicabilidade com Clarify. SageMaker