0

0

如何在本地启动 MLflow Tracking Server 并正确设置实验

聖光之護

聖光之護

发布时间:2026-01-22 10:49:36

|

267人浏览过

|

来源于php中文网

原创

如何在本地启动 MLflow Tracking Server 并正确设置实验

本文详解为何调用 `mlflow.set_experiment()` 报连接拒绝错误,核心原因在于未启动本地 mlflow 后端服务;只需一条命令启动服务器,即可正常使用实验管理、模型记录与指标追踪功能。

你遇到的错误:

MlflowException: API request to https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365/api/2.0/mlflow/experiments/get-by-name failed with exception ...
Caused by NewConnectionError(... [WinError 10061] Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée)

本质上不是权限或认证问题,而是 MLflow 客户端试图连接一个根本不存在的服务端口 —— 你在代码中执行了:

mlflow.set_tracking_uri("https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365")
mlflow.set_experiment("MLflow Quickstart")

但此时本地并未运行 MLflow Tracking Server,端口 8080 处没有任何服务监听,因此操作系统直接拒绝连接(Windows 错误码 10061 即明确表示“目标机器主动拒接”)。

✅ 正确做法:在运行 Python 脚本前,先启动 MLflow 后端服务

? 启动本地 MLflow Tracking Server

打开终端(Windows PowerShell / macOS/Linux Terminal),执行以下命令:

mlflow server \
  --host 127.0.0.1 \
  --port 8080 \
  --backend-store-uri sqlite:///mlflow.db \
  --default-artifact-root ./mlruns

? 参数说明:

Krea AI
Krea AI

多功能的一站式AI图像生成和编辑平台

下载
  • --host 和 --port:指定服务监听地址(与代码中 set_tracking_uri 保持一致);
  • --backend-store-uri:使用 SQLite 数据库存储实验、运行元数据(首次运行会自动创建 mlflow.db);
  • --default-artifact-root:指定模型、日志等二进制文件的本地存储路径(默认为当前目录下的 ./mlruns)。
✅ 提示:若提示 mlflow: command not found,请先安装: pip install mlflow

✅ 验证服务已就绪

启动后,终端将输出类似日志:

Running the mlflow tracking server on https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365

此时打开浏览器访问 https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365,即可看到 MLflow UI 界面 —— 这是关键验证步骤。

? 完整可运行示例(含实验创建 + 训练记录)

启动服务后,再运行你的 Python 脚本(推荐添加异常处理和上下文管理):

import mlflow
from mlflow.models import infer_signature
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

# ✅ 确保 URI 与启动 server 时一致
mlflow.set_tracking_uri("https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365")
mlflow.set_experiment("MLflow Quickstart")  # 自动创建实验(若不存在)

# 开始一次训练运行
with mlflow.start_run():
    # 加载数据
    X, y = datasets.make_classification(n_samples=1000, n_features=10, random_state=42)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

    # 训练模型
    model = LogisticRegression()
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)

    # 记录参数与指标
    mlflow.log_param("model_type", "LogisticRegression")
    mlflow.log_metric("accuracy", accuracy_score(y_test, y_pred))
    mlflow.log_metric("precision", precision_score(y_test, y_pred))
    mlflow.log_metric("recall", recall_score(y_test, y_pred))
    mlflow.log_metric("f1", f1_score(y_test, y_pred))

    # 记录模型(可选)
    signature = infer_signature(X_train, model.predict(X_train))
    mlflow.sklearn.log_model(model, "model", signature=signature)

print("✅ Run completed. Check https://www.php.cn/link/1ce5e897cda6aeb211dffe8d514f4365 for results.")

运行后,刷新 MLflow UI 页面,即可看到新实验、运行记录、指标图表与模型卡片。

⚠️ 注意事项

  • 服务需持续运行:MLflow Server 是长期进程,不要关闭终端;建议使用 nohup(Linux/macOS)或后台任务(Windows)守护。
  • 端口冲突? 若 8080 已被占用,可换用 --port 5000,并同步更新 set_tracking_uri。
  • 跨环境注意路径:--default-artifact-root 使用相对路径时,确保 Python 脚本与 Server 启动目录一致,或改用绝对路径(如 file:///full/path/to/mlruns)。
  • 无需 Databricks:本地 SQLite + 文件系统完全满足学习与中小项目需求;Databricks 是云托管方案,非必需。

✅ 总结

问题现象 根本原因 解决动作
Connection refused (WinError 10061) 未启动 MLflow Tracking Server 执行 mlflow server --host 127.0.0.1 --port 8080 ...
set_experiment() 失败 客户端无法连接后端 API 先启服务 → 再跑代码 → 最后查 UI

只要服务就绪,mlflow.set_experiment() 将自动创建实验(若不存在),后续所有 log_param/log_metric/log_model 均可正常持久化。现在,你已具备完整的本地 MLflow 追踪能力 —— 从零部署,开箱即用。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

769

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

661

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

764

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

659

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1345

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

549

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

579

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

730

2023.08.11

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

1

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.6万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号