MLflow是一个开源平台,用于机器学习的整个生命周期管理
项目描述
MLflow是一个平台,用于简化机器学习开发,包括跟踪实验、将代码打包成可重复运行,以及共享和部署模型。MLflow提供了一套轻量级的API,可用于任何现有的机器学习应用程序或库(TensorFlow、PyTorch、XGBoost等),无论您目前在何处运行ML代码(例如在笔记本、独立应用程序或云中)。MLflow的当前组件包括
MLflow跟踪:一个API,用于记录机器学习实验中的参数、代码和结果,并使用交互式UI进行比较。
MLflow项目:一个用于可重复运行的代码打包格式,使用Conda和Docker,因此您可以与他人共享您的ML代码。
MLflow模型:一个模型打包格式和工具,让您可以轻松地将相同模型(来自任何ML库)部署到Docker、Apache Spark、Azure ML和AWS SageMaker等平台上的批处理和实时评分。
MLflow 模型注册表:一个集中式模型存储、一组 API 和 UI,用于协作管理 MLflow 模型的完整生命周期。
包
PyPI |
|
conda-forge |
|
CRAN |
|
Maven Central |
作业状态
安装
通过 pip install mlflow 从 PyPI 安装 MLflow
MLflow 需要确保 conda 在 PATH 中以便使用项目功能。
MLflow master 的夜间快照也在此处可用 这里。
通过 pip install mlflow-skinny 从 PyPI 安装 MLflow 的较低依赖性子集。可以根据需要添加额外的依赖项。例如,pip install mlflow-skinny pandas numpy 允许支持 mlflow.pyfunc.log_model。
文档
MLflow 的官方文档可在 https://mlflow.org/docs/latest/index.html 找到。
路线图
当前的 MLflow 路线图可在 https://github.com/mlflow/mlflow/milestone/3 查看。我们正在寻找所有带有 help wanted 标签的路线图项目的贡献。有关更多信息,请参阅 贡献 部分。
社区
有关 MLflow 的使用帮助或问题(例如:“我如何做 X?”)请参阅 文档 或 Stack Overflow。
要报告错误、提交文档问题或提交功能请求,请打开 GitHub 问题。
有关发布公告和其他讨论,请订阅我们的邮件列表 (mlflow-users@googlegroups.com) 或加入我们的 Slack。
使用跟踪 API 运行示例应用程序
examples 中的程序使用 MLflow 跟踪 API。例如,运行
python examples/quickstart/mlflow_tracking.py
此程序将使用 MLflow 跟踪 API,该 API 在 ./mlruns 中记录跟踪数据。然后可以使用跟踪 UI 查看。
启动跟踪 UI
MLflow 跟踪 UI 将在 http://localhost:5000 显示记录在 ./mlruns 中的运行。启动它使用
mlflow ui
注意:从 MLflow 克隆内部运行 mlflow ui 不建议 - 这样做将运行源代码的 dev UI。我们建议从不同的工作目录运行 UI,并使用 --backend-store-uri 选项指定后端存储。另请参阅 贡献指南 中的运行 dev UI 的说明。
从 URI 运行项目
mlflow run 命令允许您从本地路径或 Git URI 运行带有 MLproject 文件的打包项目。
mlflow run examples/sklearn_elasticnet_wine -P alpha=0.4 mlflow run https://github.com/mlflow/mlflow-example.git -P alpha=0.4
有关具有 MLproject 文件的示例项目的示例,请参阅 examples/sklearn_elasticnet_wine。
保存和提供模型
为了说明管理模型,mlflow.sklearn 包可以将 scikit-learn 模型记录为 MLflow 艺术品,然后再加载它们以供服务。在 examples/sklearn_logistic_regression/train.py 中有一个示例训练应用程序,您可以按照以下方式运行它
$ 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
注意:如果使用 MLflow 瘦身包 (pip install mlflow-skinny) 进行模型服务,则 MLflow 服务器需要安装额外的必需依赖项(即 flask)才能正常工作。
官方 MLflow Docker 镜像
官方MLflow Docker镜像可在GitHub容器注册表中找到,地址为: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.2.1
docker pull ghcr.io/mlflow/mlflow:v2.2.1
贡献
我们热烈欢迎对MLflow的贡献。我们还寻求对MLflow路线图上的项目的贡献。请参阅我们的贡献指南,了解如何为MLflow做出贡献。
核心成员
MLflow目前由以下核心成员维护,同时还有数百名极具才华的社区成员做出了重大贡献。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。