用途 MLflow 用于管理机器学习生命周期,覆盖实验跟踪、模型注册与版本阶段管理、模型部署和实验复现,并且不绑定特定 ML 框架。资料给出的典型使用场景包括:记录实验的参数、指标和产物;用版本和阶段迁移管理模型注册表;把模型部署到本地、云端或服务环境;通过项目配置复现实验;比较模型版本与性能指标;支持团队协作工作流。
主要能力
- 实验与运行管理:用 Experiment 作为相关运行的逻辑容器,用 Run 记录一次 ML 代码执行;可设置实验名、运行名,并获取自动生成的 Run ID。
- 记录参数、指标与产物:log_param/log_params 记录单个或多个参数;log_metric/log_metrics 支持按 step 记录训练过程中的指标;log_artifact/log_artifacts 记录文件或目录;log_dict 以 JSON 形式记录字典。
- 模型记录:提供 mlflow.pytorch、mlflow.sklearn、mlflow.keras、mlflow.transformers 等模块记录对应框架的模型。
- 自动记录:mlflow.autolog() 可为受支持框架自动记录指标、参数和模型,也支持按框架单独启用,例如 sklearn、pytorch、keras、xgboost、transformers 的 autolog。
- 模型注册表:记录模型时可指定 registered_model_name 直接注册,也可之后通过 mlflow.register_model 注册;支持在 None → Staging → Production → Archived 之间迁移阶段,加载 Production、Staging 或指定版本模型,查询版本列表与各阶段最新版本,并为版本添加描述和标签。
- 运行搜索:通过 MlflowClient.search_runs 按 metrics、params、tags 条件过滤,按指标排序并限制结果数量。
- 部署与服务:mlflow models serve 可本地启动服务并用 curl 调用 /invocations;资料还给出 mlflow sagemaker deploy 和 mlflow azureml deploy 的云部署命令。
- 服务端配置:mlflow server 可配置 backend-store-uri(如 PostgreSQL)、default-artifact-root(如 S3)、host 与 port;客户端可通过 mlflow.set_tracking_uri 或环境变量 MLFLOW_TRACKING_URI 指定跟踪服务地址。
使用方式 安装:pip install mlflow,或 pip install mlflow[extras] 安装含 SQLAlchemy、boto3 等的扩展;启动界面:mlflow ui,默认访问 http://localhost:5000。代码中通常用 with mlflow.start_run(): 包裹训练过程,在内部调用 log_param、log_metric、log_artifact 和对应框架的 log_model,或先启用 autolog 让训练自动记录。团队场景可启动独立的 tracking server,并让客户端指向该地址。
适用场景 需要系统化记录与比较 ML 实验、管理模型版本与上线阶段、把模型部署为本地或云端服务、复现实验以及多人协作维护 ML 项目的团队与个人。
限制 资料未说明具体的性能上限、支持的完整框架清单、各部署目标的详细前置条件,也未提供收费、价格或平台可用性信息,这些方面暂未提供。资料标注许可为 Apache 2.0,用户规模为 20,000+ 组织,GitHub Stars 为 23k+。