mcpField
M
mlflow

mlflow

github.com/alphaonedev数据与数据库46 次安装
代码仓库

关于 mlflow

MLflow 是用于跟踪实验、打包模型和部署模型的开源机器学习平台,适合需要可复现流程的 ML 团队。它结合 Web UI、Python API 与多种工件存储后端管理模型生命周期。

主要功能

  1. 01记录实验参数、指标与工件
  2. 02标准化打包模型
  3. 03通过 REST API 或 Kubernetes 部署
  4. 04提供 Web UI 与 Python API
  5. 05支持多种工件存储后端

适用场景

  1. 01比较超参数实验结果
  2. 02记录训练指标与模型文件
  3. 03注册并部署评估后的模型
  4. 04将实验追踪集成到工作流

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill mlflow

安装后在 Claude Code 中输入/mlflow确认已加载。

详细介绍

mlflow

用途

MLflow 是一个开源平台,用于在机器学习生命周期中跟踪实验、打包 ML 模型并部署模型。它有助于规范工作流,提升可复现性并促进协作。

使用场景

在管理多个 ML 实验、比较模型或将模型部署到生产环境时,可使用 MLflow。它非常适合 MLOps 流水线中的团队,例如在 Jupyter 笔记本中进行超参数调优,或在 AWS、Azure 等云环境中扩展模型部署。

主要功能

  • 实验跟踪:记录每次运行的指标、参数和制品。
  • 模型打包:以标准格式(例如 MLmodel)保存模型,便于共享。
  • 模型部署:将模型作为 REST API 提供服务,或与 Kubernetes 等平台集成。
  • UI 和 API:提供用于可视化的 Web UI,以及用于编程访问的 Python API。
  • 制品存储:支持 S3、Azure Blob 或本地文件等后端,用于存储输出。

使用模式

首先初始化跟踪服务,或使用本地后端。典型工作流是:在脚本中导入 MLflow,在训练期间记录指标,并在评估后注册模型。务必先设置跟踪 URI(例如通过环境变量)。在生产环境中,打包模型并通过 MLflow 的服务工具进行部署。避免在未进行跟踪的情况下运行实验,以免无法复现。

常用命令/API

使用 MLflow CLI 快速执行操作,或使用 Python API 在代码中集成。

  • CLI 命令:

    • 启动跟踪服务:mlflow server --host 0.0.0.0 --port 5000
    • 运行实验:mlflow run . -e main --experiment-name my_exp
    • 在脚本中记录指标:使用 --param key=value 等标志设置参数。
    • 部署模型:mlflow models serve -m models:/MyModel/1 -p 5001
  • Python API 示例:

    • 开始跟踪:
      import mlflow
      mlflow.set_tracking_uri("http://localhost:5000")
      with mlflow.start_run():
          mlflow.log_param("alpha", 0.1)
      
    • 记录指标:
      mlflow.log_metric("accuracy", 0.95)
      mlflow.log_artifact("model.pkl")
      
    • 注册模型:
      mlflow.sklearn.log_model(sk_model, "model")
      mlflow.register_model("runs:/<run_id>/model", "MyModel")
      

配置格式包括用于项目规范的 YAML(例如,在 mlflow projects 中:entry_points: main: parameters: alpha: {type: float, default: 0.1})。使用安全服务时,请设置用于身份验证的环境变量,例如 export MLFLOW_TRACKING_USERNAME=$YOUR_USERNAME 和 export MLFLOW_TRACKING_PASSWORD=$YOUR_PASSWORD。

集成说明

使用 Scikit-learn、TensorFlow 或 PyTorch 各自的日志记录函数(例如 mlflow.sklearn.autolog()),即可将 MLflow 与这些框架集成。对于云存储,请设置 MLFLOW_S3_ENDPOINT_URL 以兼容 S3。与 Airflow 等工具结合使用时,可通过 MLflow API 从 DAG 触发运行。在调用 API 前,务必通过 os.environ['MLFLOW_TRACKING_URI'] = 'http://your-server:5000' 指定跟踪 URI。在远程环境中进行身份验证时,可使用 $MLFLOW_TRACKING_TOKEN 等环境变量设置 API 密钥。

错误处理

通过检查跟踪 URI 无法访问或模型格式无效等问题,处理常见错误。例如,如果服务已停止,可在 Python 中捕获 MlflowException:

try:
    mlflow.set_tracking_uri("http://localhost:5000")
except mlflow.exceptions.MlflowException as e:
    print(f"Error: {e}. Check server status and retry.")

对于 CLI,可使用 --verbose 详细模式调试失败的运行。记录数据前请先验证输入(例如,确保指标为数字)。如果制品上传失败,请检查存储权限,或使用 --backend-store-uri sqlite:///mlflow.db 等替代后端。

具体使用示例

  1. 跟踪 Scikit-learn 模型:在脚本中训练并记录模型:

    import mlflow.sklearn
    from sklearn.ensemble import RandomForestClassifier
    model = RandomForestClassifier()
    model.fit(X_train, y_train)
    with mlflow.start_run():
        mlflow.sklearn.log_model(model, "rf_model")
    

    然后,通过 mlflow ui 查看运行记录并比较指标。

  2. 部署训练好的模型:训练完成后,打包并提供服务:
    运行 mlflow models build-docker -m runs:/<run_id>/model -n my_image。然后,使用 docker run -p 5000:8080 my_image 部署,并通过 curl -d 'json data' http://localhost:5000/invocations 查询端点。

图关系

  • 关联集群:aimlops(例如,与 Kubeflow 或 DVC 等其他 MLOps 工具连接)。
  • 标签:mlflow(直接匹配)、mlops(工作流集成)、machine-learning(核心功能)。
  • 依赖项:通常与 Python 机器学习库(例如 scikit-learn)和存储系统(例如 S3)搭配使用。

评论

支持 Markdown