Preparar un modelo para la implementación
Para obtener el valor de un modelo de aprendizaje automático, lo implemente para que pueda generar predicciones siempre que la empresa las necesite. Antes de desplegar, sin embargo, hay que tomar algunas decisiones que determinan cómo funciona el resto de la canalización.
En Proseware, una empresa tecnológica de atención médica, el equipo de ciencia de datos entrena un modelo de clasificación que predice si es probable que un paciente pierda una próxima cita clínica. El personal de la clínica utiliza esta puntuación de riesgo de no asistencia para decidir a qué pacientes llamar con antelación para confirmar la cita, de modo que la clínica pueda cubrir huecos que, de otro modo, quedarían vacíos. El modelo es lo suficientemente preciso para su uso en producción. El desafío es conseguir que sirva predicciones de forma confiable, en un proceso que el equipo puede repetir cada vez que se vuelve a entrenar el modelo.
Elección de un tipo de punto de conexión
Azure Machine Learning admite dos tipos de puntos de conexión, y la elección depende de cómo se vaya a consumir la predicción. Un endpoint por lotes genera predicciones para un gran conjunto de registros de forma programada, lo que resulta adecuado para tareas periódicas de puntuación. Un punto de conexión en línea devuelve una predicción sincrónicamente, con baja latencia, el momento en que recibe una solicitud.
El sistema de programación de Proseware llama al modelo tan pronto como el personal reserve o vuelva a programar una cita, por lo que puede marcar inmediatamente las citas de alto riesgo para una llamada de confirmación ese día. Dado que la predicción debe volver inmediatamente, el equipo implementa el modelo en un punto de conexión en línea administrado.
Registro del modelo con MLflow
El equipo de ciencia de datos entrena el modelo de riesgo sin mostrar y lo empaqueta con MLflow, una plataforma de código abierto para el seguimiento de experimentos de aprendizaje automático y modelos de empaquetado en un formato estándar. Cuando el script de entrenamiento llama a mlflow.autolog(), MLflow registra automáticamente el modelo, sus parámetros y sus métricas como parte de la salida del trabajo de entrenamiento.
Dado que el modelo está empaquetado como un modelo de MLflow, puede registrarlo directamente desde la salida del trabajo sin escribir un script de evaluación personalizado ni definir un entorno por su cuenta. Azure Machine Learning genera ambos a partir de los metadatos de MLflow del modelo durante la implementación, una funcionalidad conocida como implementación sin código. Un equipo que trabaje con un formato de modelo personalizado, como un archivo pickle, tendría que crear y mantener ese script de inferencia y el entorno correspondiente.
Tip
Obtenga más información sobre la implementación de modelos de MLflow en Azure Machine Learning.
Para registrar el modelo, apunte a la salida de un trabajo de entrenamiento completado o a un archivo de modelo almacenado en un almacén de datos del área de trabajo. Una vez registrado, el modelo se convierte en un recurso con versiones en el área de trabajo que usted, o un flujo de trabajo automatizado, puede hacer referencia por nombre y versión al crear una implementación.
A medida que evoluciona el modelo, registre artefactos modificados como nuevas versiones en lugar de reemplazar una versión existente. Puede actualizar la descripción y las etiquetas de una versión, pero otros cambios requieren una nueva versión. Archivar versiones que ya no desea en listas predeterminadas. El archivado no elimina un modelo y los flujos de trabajo todavía pueden hacer referencia a una versión archivada cuando sea necesario.
Tip
Obtenga más información sobre la administración de modelos registrados.
Planificar una implementación reproducible
Registrar e implementar un modelo manualmente funciona para un primer lanzamiento, pero Proseware espera reentrenar periódicamente el modelo de ausencias a medida que van llegando nuevos datos de citas. Repetir los mismos pasos manuales para cada nueva versión es lento y propenso a errores, por lo que el objetivo del equipo es automatizar el registro, la implementación y las pruebas a través de una canalización, que es lo que el resto de este módulo se basa en.