Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Para obtener predicciones, implementa tu modelo en Amazon EC2 mediante Amazon SageMaker AI.
Temas
Implemente el modelo en los servicios de alojamiento de SageMaker IA
Para alojar un modelo a través de Amazon EC2 con Amazon SageMaker AI, despliega el modelo en el que te has entrenado Creación y ejecución de un trabajo de entrenamiento llamando al deploy
método del xgb_model
estimador. Al utilizar el deploy
método, debe especificar la cantidad y el tipo de instancias de EC2 aprendizaje automático que desea utilizar para alojar un punto final.
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
initial_instance_count=1,
instance_type='ml.t2.medium',
serializer=CSVSerializer()
)
-
initial_instance_count
(int): el número de instancias en las que se va a implementar el modelo. -
instance_type
(str): el tipo de instancias en las que quiera que funcione el modelo implementado. -
serializer
(int): serializa los datos de entrada de varios formatos (una NumPy matriz, una lista, un archivo o un búfer) en una cadena con formato CSV. Usamos esto porque el XGBoost algoritmo acepta archivos de entrada en formato CSV.
El deploy
método crea un modelo desplegable, configura el punto final de los servicios de alojamiento de SageMaker IA y lanza el punto final para alojar el modelo. Para obtener más información, consulte el método de clase de despliegue del estimador genérico de SageMaker IAdeploy
, ejecute el siguiente código:
xgb_predictor.endpoint_name
Esto debería devolver el nombre del punto de conexión del xgb_predictor
. El formato del nombre del punto de conexión es "sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"
. Este punto de conexión permanece activo en la instancia de machine learning y puede realizar predicciones instantáneas en cualquier momento, a menos que lo cierre más adelante. Copie el nombre de este punto de conexión y guárdelo para reutilizarlo y realizar predicciones en tiempo real en cualquier otro lugar de las instancias de SageMaker Studio o SageMaker AI Notebook.
sugerencia
Para obtener más información sobre cómo compilar y optimizar su modelo para su implementación en EC2 instancias de Amazon o dispositivos perimetrales, consulte Compilar e implementar modelos con Neo.
(Opcional) Utilice SageMaker AI Predictor para reutilizar el punto final alojado
Después de implementar el modelo en un punto final, puede configurar un nuevo predictor de SageMaker IA emparejando el punto final y realizando predicciones continuas en tiempo real en cualquier otro bloc de notas. El siguiente código de ejemplo muestra cómo utilizar la clase SageMaker AI Predictor para configurar un nuevo objeto predictor utilizando el mismo punto final. Vuelva a utilizar el nombre del punto de conexión que utilizó para el xgb_predictor
.
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
endpoint_name="sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS
",
sagemaker_session=sagemaker.Session(),
serializer=sagemaker.serializers.CSVSerializer()
)
El predictor xgb_predictor_reuse
se comporta exactamente igual que el xgb_predictor
original. Para obtener más información, consulte la clase SageMaker AI Predictor
(Opcional) Predicciones con la transformación por lotes
En lugar de alojar un punto final en producción, puede ejecutar un trabajo de inferencia por lotes único para realizar predicciones en un conjunto de datos de prueba mediante la transformación por lotes de SageMaker IA. Una vez finalizado el entrenamiento con el modelo, puede extender el estimador a un transformer
objeto, que se basa en la clase SageMaker AI
Para ejecutar un trabajo de transformación por lotes
Ejecute el siguiente código para convertir las columnas de características del conjunto de datos de prueba en un archivo CSV y cargarlo en el bucket de 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 el grupo S3 URIs de entrada y salida para el trabajo de transformación por lotes, tal y como se muestra a continuación:
# 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)
Cree un objeto transformador que especifique el número mínimo de parámetros: los parámetros
instance_count
yinstance_type
para ejecutar el trabajo de transformación por lotes y eloutput_path
para guardar los datos de predicción, como se muestra a continuación:transformer = xgb_model.transformer( instance_count=1, instance_type='ml.m4.xlarge', output_path=batch_output )
Inicie el trabajo de transformación por lotes ejecutando el método
transform()
del objetotransformer
como se muestra a continuación:transformer.transform( data=batch_input, data_type='S3Prefix', content_type='text/csv', split_type='Line' ) transformer.wait()
Cuando se completa el trabajo de transformación por lotes, la SageMaker IA crea los datos de
test.csv.out
predicción guardados en labatch_output
ruta, que deben tener el siguiente formato:s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction
. Ejecute lo siguiente AWS CLI para descargar los datos de salida del trabajo de transformación por lotes:! aws s3 cp {batch_output} ./ --recursive
Esto debería crear el archivo
test.csv.out
en el directorio de trabajo actual. Podrá ver los valores flotantes que se predicen en función de la regresión logística del trabajo de XGBoost formación.