在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还提供了更多功能,如模型注册、模型版本控制等,可以进一步了解和使用。
