欢迎访问宙启技术站
智能推送

在Python中使用mlflow进行模型训练和部署的示例

发布时间:2024-01-13 11:20:17

MLflow是一个开源平台,用于管理机器学习生命周期,并支持追踪实验、管理模型版本、部署模型等功能。下面将为您提供一个使用MLflow进行模型训练和部署的示例。

1. 安装MLflow

首先,您需要安装MLflow库。可以使用pip命令进行安装:

pip install mlflow

2. 训练模型

在这个示例中,我们将使用scikit-learn库中的一个简单的线性回归模型进行训练。创建一个Python脚本,并导入所需的库:

import mlflow
import mlflow.sklearn
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# 加载数据集
X, y = ...

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建和训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 使用模型进行预测
y_pred = model.predict(X_test)

# 计算模型的均方误差
mse = mean_squared_error(y_test, y_pred)

# 使用MLflow记录模型和指标
with mlflow.start_run():
    # 记录模型和标签
    mlflow.sklearn.log_model(model, "model")
    mlflow.log_metric("mse", mse)

3. 启动MLflow服务器

在训练模型之前,您需要启动MLflow服务器以进行实验追踪和模型部署。可以使用以下命令在本地启动MLflow服务器:

mlflow server

4. 查看实验和模型

在浏览器中打开http://localhost:5000,即可查看实验和模型相关信息。您可以查看实验运行、模型版本、指标等。

5. 部署模型

要在生产环境中部署模型,您可以使用MLflow提供的REST API。以下是使用Python的示例代码:

import requests

# 加载模型
model_uri = "runs:/<RUN_ID>/model"
model = mlflow.pyfunc.load_model(model_uri)

# 部署模型
model_name = "my_model"
requests.post("http://localhost:5000/2.0/preview/mlflow/models/create", json={
    "name": model_name,
    "source": model_uri,
    "run_id": <RUN_ID>,
    "model_type": "python_function",
})

# 发送推理请求
input_data = ...
response = requests.post(f"http://localhost:5000/2.0/preview/mlflow/models/\
                        predict/{model_name}/invocations", json={"data": input_data})

# 处理推理结果
result = response.json()

以上示例展示了如何使用MLflow进行模型训练和部署。您可以根据自己的需求对示例进行修改和扩展。MLflow还提供了更多功能,如模型注册、模型版本控制等,可以进一步了解和使用。