MLflow: una plataforma de ciclo de vida de aprendizaje automático
MLflow: una plataforma de ciclo de vida de aprendizaje automático
MLflow es una plataforma para agilizar el desarrollo del aprendizaje automático, incluido el seguimiento de experimentos, el empaquetado de código en ejecuciones reproducibles y el uso compartido e implementación de modelos. MLflow ofrece un conjunto de API livianas que se pueden usar con cualquier aplicación o biblioteca de aprendizaje automático existente (TensorFlow, PyTorch, XGBoost, etc.), donde sea que ejecute código ML actualmente (por ejemplo, en cuadernos, aplicaciones independientes o la nube). Los componentes actuales de MLflow son:
- Seguimiento de MLflow: una API para registrar parámetros, código y resultados en experimentos de aprendizaje automático y compararlos mediante una interfaz de usuario interactiva.
- Proyectos MLflow: un formato de empaquetado de código para ejecuciones reproducibles usando Conda y Docker, para que pueda compartir su código ML con otros.
- Modelos de MLflow: un formato de empaquetado de modelos y herramientas que le permiten implementar fácilmente el mismo modelo (desde cualquier biblioteca de ML) para la puntuación por lotes y en tiempo real en plataformas como Docker, Apache Spark, Azure ML y AWS SageMaker.
- Registro de modelos de MLflow: una tienda de modelos centralizada, un conjunto de API y una interfaz de usuario para administrar de forma colaborativa el ciclo de vida completo de los modelos de MLflow.
Estados de trabajos nocturnos
Instalando
Instale MLflow desde PyPI a través de pip install mlflow
MLflow requiere conda
estar en el PATH
para la función de proyectos.
Las instantáneas nocturnas de MLflow master también están disponibles aquí.
Instale un subconjunto de dependencia inferior de MLflow desde PyPI a través de pip install mlflow-skinny
Se pueden agregar dependencias adicionales según el escenario deseado. Por ejemplo, pip install mlflow-skinny pandas numpy
permite la compatibilidad con mlflow.pyfunc.log_model.
Documentación
La documentación oficial de MLflow se puede encontrar en https://mlflow.org/docs/latest/index.html.
Mapa vial
La hoja de ruta actual de MLflow está disponible en https://github.com/mlflow/mlflow/milestone/3. Estamos buscando contribuciones a todos los elementos de nuestra hoja de ruta con el help wanted
etiqueta. Consulte la sección Contribuir para obtener más información.
Comunidad
Para obtener ayuda o preguntas sobre el uso de MLflow (p. ej., “¿cómo hago X?”), consulte los documentos o Stack Overflow.
Para informar un error, presentar un problema de documentación o enviar una solicitud de función, abra un problema de GitHub.
Para anuncios de lanzamiento y otras discusiones, suscríbase a nuestra lista de correo ([email protected]) o únase a nosotros en Slack.
Ejecución de una aplicación de muestra con la API de seguimiento
Los programas en examples
utilice la API de seguimiento de MLflow. Por ejemplo, ejecute:
python examples/quickstart/mlflow_tracking.py
Este programa utilizará la API de seguimiento de MLflow, que registra datos de seguimiento en ./mlruns
. Esto luego se puede ver con la interfaz de usuario de seguimiento.
Inicio de la interfaz de usuario de seguimiento
La interfaz de usuario de seguimiento de MLflow mostrará las ejecuciones iniciadas ./mlruns
en http://localhost:5000. Comience con:
mlflow ui
Nota: Correr mlflow ui
No se recomienda desde dentro de un clon de MLflow; al hacerlo, se ejecutará la interfaz de usuario del desarrollador desde la fuente. Recomendamos ejecutar la interfaz de usuario desde un directorio de trabajo diferente, especificando una tienda de back-end a través del --backend-store-uri
opción. Como alternativa, consulte las instrucciones para ejecutar la IU de desarrollo en la guía del colaborador.
Ejecutar un proyecto desde una URI
los mlflow run
El comando le permite ejecutar un proyecto empaquetado con un archivo MLproject desde una ruta local o un URI de Git:
mlflow run examples/sklearn_elasticnet_wine -P alpha=0.4 mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=0.4
Ver examples/sklearn_elasticnet_wine
para un proyecto de muestra con un archivo MLproject.
Modelos de ahorro y servicio
Para ilustrar los modelos de gestión, el mlflow.sklearn
El paquete puede registrar modelos de scikit-learn como artefactos de MLflow y luego volver a cargarlos para servir. Hay una aplicación de entrenamiento de ejemplo en
examples/sklearn_logistic_regression/train.py
que puedes ejecutar de la siguiente manera:
$ python examples/sklearn_logistic_regression/train.py Score: 0.666 Model saved in run <run-id> $ mlflow models serve --model-uri runs:/<run-id>/model $ curl -d '{"dataframe_split": {"columns":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'Content-Type: application/json' localhost:5000/invocations
Nota: Si usa MLflow skinny (pip install mlflow-skinny
) para el servicio de modelos, dependencias requeridas adicionales (a saber, flask
) deberá instalarse para que el servidor MLflow funcione.
Imagen oficial de Docker de MLflow
La imagen oficial de MLflow Docker está disponible en GitHub Container Registry en https://ghcr.io/mlflow/mlflow.
export CR_PAT=YOUR_TOKEN
echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
# Pull the latest version
docker pull ghcr.io/mlflow/mlflow
# Pull 2.0.1
docker pull ghcr.io/mlflow/mlflow:v2.0.1
contribuyendo
Damos la bienvenida con gusto a las contribuciones a MLflow. También buscamos contribuciones a los elementos de la hoja de ruta de MLflow. Consulte nuestra guía de contribuciones para obtener más información sobre cómo contribuir a MLflow.