MLflow é uma plataforma para agilizar o desenvolvimento de aprendizado de máquina, incluindo rastreamento de experimentos, empacotamento de código em execuções reproduzíveis e compartilhamento e implantação de modelos. O MLflow oferece um conjunto de APIs leves que podem ser usadas com qualquer aplicativo ou biblioteca de aprendizado de máquina existente (TensorFlow, PyTorch, XGBoost, etc.), onde quer que você execute código de ML (por exemplo, em notebooks, aplicativos independentes ou na nuvem). Os componentes atuais do MLflow são:
Rastreamento de MLflow: uma API para registrar parâmetros, código e resultados em experimentos de aprendizado de máquina e compará-los usando uma interface de usuário interativa.
Projetos MLflow: um formato de empacotamento de código para execuções reproduzíveis usando Conda e Docker, para que você possa compartilhar seu código ML com outras pessoas.
Modelos MLflow: um formato de empacotamento de modelo e ferramentas que permitem implantar facilmente o mesmo modelo (de qualquer biblioteca de ML) para pontuação em lote e em tempo real em plataformas como Docker, Apache Spark, Azure ML e AWS SageMaker.
Registro de modelo MLflow: um armazenamento de modelo centralizado, conjunto de APIs e UI, para gerenciar de forma colaborativa todo o ciclo de vida dos modelos MLflow.
Pacotes
PyPI | |
conda-forge | |
CRAN | |
Maven Central |
Status de trabalho
Instale o MLflow do PyPI via pip install mlflow
O MLflow exige que conda
esteja no PATH
para o recurso de projetos.
Instantâneos noturnos do mestre MLflow também estão disponíveis aqui.
Instale um subconjunto de dependência inferior do MLflow do PyPI via pip install mlflow-skinny
Dependências extras podem ser adicionadas de acordo com o cenário desejado. Por exemplo, pip install mlflow-skinny pandas numpy
permite suporte a mlflow.pyfunc.log_model.
A documentação oficial do MLflow pode ser encontrada em https://mlflow.org/docs/latest/index.html.
O roteiro MLflow atual está disponível em https://github.com/mlflow/mlflow/milestone/3. Estamos buscando contribuições para todos os itens do nosso roteiro com o rótulo help wanted
. Consulte a seção Contribuições para obter mais informações.
Para obter ajuda ou perguntas sobre o uso do MLflow (por exemplo, "como faço o X?"), consulte a documentação ou o Stack Overflow.
Para relatar um bug, registrar um problema de documentação ou enviar uma solicitação de recurso, abra um problema no GitHub.
Para anúncios de lançamento e outras discussões, inscreva-se em nossa lista de e-mails ([email protected]) ou junte-se a nós no Slack.
Os programas nos examples
usam a API MLflow Tracking. Por exemplo, execute:
exemplos de python/quickstart/mlflow_tracking.py
Este programa usará a API de rastreamento MLflow, que registra dados de rastreamento em ./mlruns
. Isso pode então ser visualizado com a IU de rastreamento.
A IU de rastreamento do MLflow mostrará execuções registradas em ./mlruns
em http://localhost:5000. Comece com:
mlflow interface do usuário
Nota: Não é recomendado executar mlflow ui
de dentro de um clone do MLflow - isso executará a interface de desenvolvimento a partir do código-fonte. Recomendamos executar a UI a partir de um diretório de trabalho diferente, especificando um armazenamento de back-end por meio da opção --backend-store-uri
. Como alternativa, consulte as instruções para executar a IU do desenvolvedor no guia do contribuidor.
O comando mlflow run
permite executar um projeto empacotado com um arquivo MLproject a partir de um caminho local ou um URI Git:
exemplos de execução de mlflow/sklearn_elasticnet_wine -P alfa = 0,4 mlflow executado https://github.com/mlflow/mlflow-example.git -P alfa=0.4
Veja examples/sklearn_elasticnet_wine
para um projeto de amostra com um arquivo MLproject.
Para ilustrar o gerenciamento de modelos, o pacote mlflow.sklearn
pode registrar modelos scikit-learn como artefatos MLflow e, em seguida, carregá-los novamente para veiculação. Há um exemplo de aplicativo de treinamento em examples/sklearn_logistic_regression/train.py
que você pode executar da seguinte maneira:
$ exemplos de python/sklearn_logistic_regression/train.py Pontuação: 0,666 Modelo salvo na execução <run-id> $ modelos mlflow servem --model-uri runs:/<run-id>/model $ curl -d '{"dataframe_split": {"colunas":[0],"index":[0,1],"dados":[[1],[-1]]}}' -H 'Conteúdo -Tipo: aplicativo/json' localhost:5000/invocations
Nota: Se estiver usando MLflow skinny ( pip install mlflow-skinny
) para servir modelo, dependências adicionais necessárias (ou seja, flask
) precisarão ser instaladas para que o servidor MLflow funcione.
A imagem oficial do MLflow Docker está disponível no GitHub Container Registry em https://ghcr.io/mlflow/mlflow.
exportar CR_PAT=SEU_TOKENecho $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin# Extraia a versão mais recentedocker pull ghcr.io/mlflow/mlflow# Pull 2.2.1docker pull ghcr.io/mlflow/mlflow:v2.2.1
Aceitamos contribuições para o MLflow com prazer. Também estamos buscando contribuições para itens do Roadmap do MLflow. Consulte nosso guia de contribuição para saber mais sobre como contribuir para o MLflow.
O MLflow é atualmente mantido pelos seguintes membros principais, com contribuições significativas de centenas de membros da comunidade excepcionalmente talentosos.
Ben Wilson
Corey Zumar
Daniel Lok
Gabriel Fu
Harutaka Kawamura
Serena Ruan
Weichen Xu
Yuki Watanabe
Tomu Hirata