Tengo un modelo predictivo de aprendizaje automático personalizado. También tengo una clase Estimator definida por el usuario que usa Optuna para el ajuste de hiperparámetros. Necesito implementar este modelo en SageMaker para invocarlo desde una función lambda.
Tengo problemas en el proceso de creación de un contenedor para el modelo y el Estimador.
Soy consciente de que SageMaker tiene un contenedor de aprendizaje de scikit que se puede usar para Optuna, pero ¿cómo aprovecharía esto para incluir las funciones de mi propia clase Estimator? Además, el modelo es uno de los parámetros que se pasan a esta clase de estimador, entonces, ¿cómo lo defino como un trabajo de entrenamiento separado para convertirlo en un punto final?
Así es como se invoca la clase Estimator y el modelo:
sirf_estimator = Estimator( SIRF, ncov_df, population_dict[countryname], name=countryname, places=[(countryname, None)], start_date=critical_country_start ) sirf_dict = sirf_estimator.run()donde:
Sería realmente útil si alguien pudiera investigar esto, ¡muchas gracias!
Los puntos finales de inferencia de SageMaker actualmente se basan en una interfaz basada en imágenes de Docker. En el nivel básico, puede configurar una imagen de Docker que ejecute un servidor web y responda a los puntos finales en los puertos que requiere AWS. Esta guía le mostrará cómo hacerlo: https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-inference-code.html .
Esta es una cantidad molesta de trabajo. Si está utilizando un marco conocido, tienen una biblioteca de contenedores que contiene un código repetitivo que podría reutilizar: https://github.com/aws/sagemaker-containers . Es posible que pueda reutilizar algún código desde allí, pero personalícelo.
O no utilice puntos finales de inferencia de SageMaker :) Si su modelo puede ajustarse a las restricciones de tamaño/memoria de AWS Lambda, ¡esa es una opción más fácil!