如何在本地启动 MLflow 跟踪服务器并正确设置实验

发布时间 - 2026-01-22 00:00:00    点击率:

本文详解为何调用 mlflow.set_experiment() 会报连接拒绝错误,并手把手教你启动本地 mlflow 后端服务,完成实验创建、模型训练与指标记录的完整闭环。

MLflow 的跟踪(Tracking)功能依赖一个后端服务来持久化实验、运行、参数和指标。当你执行 mlflow.set_experiment("MLflow Quickstart") 时,MLflow 会尝试向配置的 tracking URI(如 http://127.0.0.1:8080)发起 HTTP 请求,查询或创建同

名实验。但若此时本地并未运行 MLflow 服务进程,该请求将因“目标地址无监听服务”而失败——这正是你看到的 WinError 10061(连接被目标主机明确拒绝)的根本原因。

✅ 正确做法:先启动 MLflow Tracking Server,再运行你的 Python 脚本

1. 启动本地 MLflow 服务

在终端(Windows PowerShell / CMD / macOS/Linux Terminal)中执行以下命令:

mlflow server \
  --host 127.0.0.1 \
  --port 8080 \
  --backend-store-uri sqlite:///mlflow.db \
  --default-artifact-root ./mlruns
  • --host 和 --port:指定服务监听地址,需与代码中 set_tracking_uri() 保持一致;
  • --backend-store-uri:使用 SQLite 数据库存储元数据(实验/运行信息),首次运行会自动创建 mlflow.db 文件;
  • --default-artifact-root:指定模型、日志等二进制文件的默认存储路径(本地目录 ./mlruns)。
✅ 提示:确保已安装 MLflow(pip install mlflow)。启动成功后,终端将显示类似 Running the MLflow tracking server at http://127.0.0.1:8080 的提示,并自动打开 Web UI(浏览器访问 http://127.0.0.1:8080 即可查看实验仪表盘)。

2. 修改并运行你的 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 和实验
mlflow.set_tracking_uri("http://127.0.0.1:8080")
mlflow.set_experiment("MLflow Quickstart")

# 开始一次新运行
with mlflow.start_run():
    # 加载数据
    iris = datasets.load_iris()
    X_train, X_test, y_train, y_test = train_test_split(
        iris.data, iris.target, test_size=0.2, random_state=42
    )

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

    # 记录参数与指标
    mlflow.log_param("model_type", "LogisticRegression")
    mlflow.log_param("max_iter", 200)

    mlflow.log_metric("accuracy", accuracy_score(y_test, y_pred))
    mlflow.log_metric("precision", precision_score(y_test, y_pred, average="weighted"))
    mlflow.log_metric("recall", recall_score(y_test, y_pred, average="weighted"))
    mlflow.log_metric("f1", f1_score(y_test, y_pred, average="weighted"))

    # 记录模型(自动推断 signature)
    signature = infer_signature(X_train, clf.predict(X_train))
    mlflow.sklearn.log_model(clf, "model", signature=signature)

    print("✅ Run logged successfully! Check http://127.0.0.1:8080")

⚠️ 注意事项

  • 服务必须前置运行:Python 脚本不能替代 mlflow server;它只是客户端。
  • 端口冲突? 若 8080 已被占用,可改用 --port 5000 并同步更新 set_tracking_uri("http://127.0.0.1:5000")。
  • 权限问题(Windows):某些环境需以管理员身份运行终端启动服务;若仍报错,尝试关闭防火墙或杀毒软件临时拦截。
  • Databricks 替代方案:若注册 Databricks 账户持续失败,推荐使用 Databricks Community Edition(免费且无需人工审核),或坚持本地 SQLite + 文件存储方案,完全满足学习与中小项目需求。

至此,你已打通 MLflow 本地跟踪全流程:服务启动 → 实验定义 → 运行记录 → Web 可视化。后续可进一步探索模型注册(Model Registry)、项目打包(Projects)与部署(Models Serving)等高级能力。


# linux  # python  # windows  # 杀毒软件  # 防火墙  # 浏览器  # 端口  # 后端  # mac  # ai  # macos  # win  # cos 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel distinct去重查询_Laravel Eloquent去重方法  Laravel如何实现API速率限制?(Rate Limiting教程)  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  EditPlus中的正则表达式 实战(2)  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Android okhttputils现在进度显示实例代码  Laravel如何实现事件和监听器?(Event & Listener实战)  微信小程序 配置文件详细介绍  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何在阿里云香港服务器快速搭建网站?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  浅谈javascript alert和confirm的美化  教你用AI将一段旋律扩展成一首完整的曲子  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Swift中循环语句中的转移语句 break 和 continue  太平洋网站制作公司,网络用语太平洋是什么意思?  百度浏览器如何管理插件 百度浏览器插件管理方法  无锡营销型网站制作公司,无锡网选车牌流程?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  javascript日期怎么处理_如何格式化输出  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  JS实现鼠标移上去显示图片或微信二维码  如何用腾讯建站主机快速创建免费网站?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Laravel如何配置Horizon来管理队列?(安装和使用)  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel如何使用Eloquent进行子查询  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何续费美橙建站之星域名及服务?  5种Android数据存储方式汇总  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何在IIS中新建站点并解决端口绑定冲突?  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Python结构化数据采集_字段抽取解析【教程】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  b2c电商网站制作流程,b2c水平综合的电商平台?  javascript基于原型链的继承及call和apply函数用法分析  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  如何用PHP快速搭建高效网站?分步指南  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集