MLflow es una plataforma para optimizar el desarrollo del aprendizaje automático, incluido el seguimiento de experimentos, empaquetar código en ejecuciones reproducibles y compartir e implementar 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.), dondequiera que ejecute código ML actualmente (por ejemplo, en computadoras portátiles, aplicaciones independientes o la nube). Los componentes actuales de MLflow son:
Seguimiento de MLflow: una API para registrar parámetros, códigos 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) en puntuación por lotes y en tiempo real en plataformas como Docker, Apache Spark, Azure ML y AWS SageMaker.
Registro de modelos de MLflow: un almacén de modelos centralizado, un conjunto de API y una interfaz de usuario para gestionar de forma colaborativa el ciclo de vida completo de los modelos de MLflow.
Paquetes
PyPI | |
conda-forja | |
grua | |
Central Maven |
Estados de trabajo
Instale MLflow desde PyPI mediante pip install mlflow
MLflow requiere que conda
esté en la PATH
de 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 mediante 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.
La documentación oficial de MLflow se puede encontrar en https://mlflow.org/docs/latest/index.html.
La hoja de ruta actual de MLflow está disponible en https://github.com/mlflow/mlflow/milestone/3. Buscamos contribuciones para todos los elementos de nuestra hoja de ruta con la etiqueta help wanted
. Consulte la sección Contribuciones para obtener más información.
Para obtener ayuda o preguntas sobre el uso de MLflow (por ejemplo, "¿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.
Los programas de examples
utilizan la API de seguimiento de MLflow. Por ejemplo, ejecute:
ejemplos de Python/inicio rápido/mlflow_tracking.py
Este programa utilizará la API de seguimiento de MLflow, que registra los datos de seguimiento en ./mlruns
. Esto luego se puede ver con la interfaz de usuario de seguimiento.
La interfaz de usuario de MLflow Tracking mostrará las ejecuciones registradas en ./mlruns
en http://localhost:5000. Empiece con:
interfaz de usuario de flujo ml
Nota: No se recomienda ejecutar mlflow ui
desde 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 un almacén backend mediante la opción --backend-store-uri
. Alternativamente, consulte las instrucciones para ejecutar la interfaz de usuario de desarrollo en la guía para colaboradores.
El comando mlflow run
le permite ejecutar un proyecto empaquetado con un archivo MLproject desde una ruta local o un URI de Git:
Ejemplos de ejecución de mlflow/sklearn_elasticnet_wine -P alpha=0.4 ejecución de mlflow https://github.com/mlflow/mlflow-example.git -P alpha=0.4
Consulte examples/sklearn_elasticnet_wine
para ver un proyecto de muestra con un archivo MLproject.
Para ilustrar la gestión de modelos, el paquete mlflow.sklearn
puede registrar modelos scikit-learn como artefactos de MLflow y luego cargarlos nuevamente para su publicación. Hay una aplicación de entrenamiento de ejemplo en examples/sklearn_logistic_regression/train.py
que puede ejecutar de la siguiente manera:
$ ejemplos de Python/sklearn_logistic_regression/train.py Puntuación: 0,666 Modelo guardado en ejecución <run-id> Los modelos de $ mlflow sirven --model-uri run:/<run-id>/model $ curl -d '{"dataframe_split": {"columns":[0],"index":[0,1],"data":[[1],[-1]]}}' -H 'Contenido -Tipo: aplicación/json' localhost:5000/invocaciones
Nota: Si utiliza MLflow skinny ( pip install mlflow-skinny
) para la entrega de modelos, será necesario instalar dependencias adicionales requeridas (es decir, flask
) para que el servidor MLflow funcione.
La imagen oficial de MLflow Docker está disponible en GitHub Container Registry en https://ghcr.io/mlflow/mlflow.
exportar CR_PAT=TU_TOKENecho $CR_PAT | inicio de sesión de Docker ghcr.io -u NOMBRE DE USUARIO --password-stdin# Extraiga la última versióndocker pull ghcr.io/mlflow/mlflow# Extraiga 2.2.1docker pull ghcr.io/mlflow/mlflow:v2.2.1
Agradecemos con gusto las contribuciones a MLflow. También buscamos contribuciones para elementos de la hoja de ruta de MLflow. Consulte nuestra guía de contribución para obtener más información sobre cómo contribuir a MLflow.
Actualmente, MLflow es mantenido por los siguientes miembros principales con contribuciones significativas de cientos de miembros de la comunidad excepcionalmente talentosos.
ben wilson
Corey Zumar
Daniel Lok
Gabriel Fu
Harutaka Kawamura
Serena Ruán
Wei Chen Xu
Yuki Watanabe
Tomu Hirata