Estoy tratando de entender cómo implementar un algoritmo de aprendizaje automático, donde el preprocesamiento y el posprocesamiento son una tarea pesada dentro de AWS Sagemaker. La idea principal es obtener datos de S3, cada vez que los datos cambian en S3, Cloud Watch activa una función lambda para invocar un punto final de SageMaker. El problema es que, una vez que se entrena el algoritmo, antes de predecir los nuevos datos, necesito preprocesar los datos (preprocesamiento personalizado de NLP). Una vez que el algoritmo haya hecho la predicción, debo tomar esta predicción, realizar un posprocesamiento y luego enviar los datos posprocesados a S3. La idea que tengo en mente es crear una ventana acoplable:
├── text_classification/ - ml scripts | ├── app.py | ├── config.py | ├── data.py | ├── models.py | ├── predict.py - pre-processing data and post-processing data | ├── train.py | ├── utils.pyAsí que haré el preprocesamiento y el posprocesamiento dentro de "predict.py". Cuando invoque el punto final para la predicción, ese script se ejecutará. ¿Es esto correcto?
Eche un vistazo al uso de Step Functions para organizar todo el flujo de trabajo por usted.
Haga que el evento de CloudWatch active una función de paso que haría lo siguiente:
También puede explorar las canalizaciones de inferencia de Amazon SageMaker .
Una canalización de inferencia es un modelo de Amazon SageMaker que se compone de una secuencia lineal de dos a cinco contenedores que procesan solicitudes de inferencias sobre datos. Utilice una canalización de inferencia para definir e implementar cualquier combinación de algoritmos integrados de Amazon SageMaker entrenados previamente y sus propios algoritmos personalizados empaquetados en contenedores de Docker. Puede usar una canalización de inferencia para combinar tareas de ciencia de datos de preprocesamiento, predicciones y posprocesamiento. Las canalizaciones de inferencia están completamente administradas.