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á.
Implantar o modelo do Amazon EC2
Para obter previsões, implante seu modelo no Amazon EC2 usando o Amazon SageMaker AI.
Tópicos
Implante o modelo nos serviços de hospedagem de SageMaker IA
Para hospedar um modelo por meio do Amazon EC2 usando o Amazon SageMaker AI, implante o modelo no Criar e executar um trabalho de treinamento qual você treinou.
Use a ModelBuilder classe para criar e implantar seu modelo. ModelBuildersuporta o encadeamento de recursos, para que você possa passar ModelTrainer diretamente pelo treinado para criar e implantar seu modelo.
from sagemaker.serve import ModelBuilder # Build and deploy using resource chaining from the trained model model_builder = ModelBuilder( model=xgb_model_trainer, role_arn=role, instance_type='ml.t2.medium' ) # Build creates a SageMaker Model resource model = model_builder.build() # Deploy creates a SageMaker Endpoint resource endpoint = model_builder.deploy(endpoint_name="xgboost-endpoint")
-
model— OModelTrainerobjeto treinado.ModelBuildervincula automaticamente a saída do treinamento à implantação. -
instance_type(str): O tipo de instância em que você deseja operar seu modelo implantado.
O build() método cria um recurso de modelo de SageMaker IA e deploy() cria um recurso de endpoint de SageMaker IA. Para obter mais informações, consulte a SageMaker IA ModelBuilder
endpoint.endpoint_name
Esse endpoint permanece ativo na instância de ML e você pode fazer predições instantâneas a qualquer momento, a menos que o desligue posteriormente. Copie o nome desse endpoint e salve-o para reutilizar e fazer previsões em tempo real em outras instâncias do SageMaker Studio ou do notebook SageMaker AI.
dica
Para saber mais sobre como compilar e otimizar seu modelo para implantação em instâncias ou dispositivos de borda do Amazon EC2, consulte Compilar e implantar modelos com o Neo.
(Opcional) Reutilize ou invoque um endpoint existente
Depois de implantar o modelo em um endpoint, você pode invocá-lo de qualquer outro notebook ou aplicativo usando a Endpoint classe do sagemaker-core. O código de exemplo a seguir mostra como obter um endpoint existente e fazer previsões. Re-use o nome do endpoint da etapa de implantação acima.
from sagemaker.core.resources import Endpoint endpoint = Endpoint.get(endpoint_name="xgboost-endpoint") # Make a prediction response = endpoint.invoke( body=test_data, content_type="text/csv" ) result = response.body.read().decode('utf-8')
(Opcional) Faça predições com o Transformador de Lotes
Em vez de hospedar um endpoint em produção, você pode executar um trabalho único de inferência em lote para fazer previsões em um conjunto de dados de teste usando a transformação em lote da IA. SageMaker Depois que o treinamento do modelo for concluído, você poderá usar o transformador de lote para ler os dados de entrada de um bucket S3 especificado e fazer previsões.
Para executar um trabalho de transformação em lote
Execute o código a seguir para converter as colunas de atributos do conjunto de dados de teste em um arquivo CSV e fazer o upload para o bucket do S3:
X_test.to_csv('test.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')Especifique URIs de entrada e saída do bucket S3 para o trabalho de transformação em lote, conforme mostrado a seguir:
# The location of the test dataset batch_input = 's3://{}/{}/test'.format(bucket, prefix) # The location to store the results of the batch transform job batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)Crie e execute um trabalho de transformação em lote.
# Build a model from the trained ModelTrainer model_builder = ModelBuilder(model=xgb_model_trainer, role_arn=role) model = model_builder.build(model_name="xgboost-batch-model") # Create and run the batch transform job from sagemaker.core.resources import TransformJob transform_job = TransformJob.create( model_name=model.model_name, transform_input={ "data_source": { "s3_data_source": { "s3_data_type": "S3Prefix", "s3_uri": batch_input } }, "content_type": "text/csv", "split_type": "Line" }, transform_output={ "s3_output_path": batch_output }, transform_resources={ "instance_type": "ml.m4.xlarge", "instance_count": 1 } ) transform_job.wait()Quando o trabalho de transformação em lote é concluído, a SageMaker IA cria os dados de
test.csv.outprevisão salvos nobatch_outputcaminho, que devem estar no seguinte formato:s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction. Execute o seguinte AWS CLI para baixar os dados de saída da tarefa de transformação em lote:! aws s3 cp {batch_output} ./ --recursiveIsso deve criar o arquivo
test.csv.outno diretório de trabalho atual. Você poderá ver os valores flutuantes que são previstos com base na regressão logística do trabalho de treinamento do XGBoost.