MLOps 流水线实战:模型训练到部署的自动化之路
· 更新于 2026-07-26
⏱️ 阅读约 2 分钟 (549 字)
MLOps
AI
机器学习
从数据准备、模型训练到生产部署,构建端到端的 MLOps 自动化流水线,实现机器学习模型持续交付与监控。
一、MLOps 流水线概述
MLOps 将 DevOps 理念引入机器学习生命周期管理,实现模型训练、评估、部署和监控的自动化。一个完善的 MLOps 流水线可以显著缩短模型从实验到上线的时间。
二、训练流水线实现
以下是一个使用 Python 实现的训练流水线示例,包含数据加载、模型训练和评估的完整流程。
Python 训练流水线
import mlflow
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score, precision_score
def train_pipeline(data_path: str) -> float:
"""端到端训练流水线"""
mlflow.set_experiment("production-model")
with mlflow.start_run():
# 数据加载
df = pd.read_parquet(data_path)
X = df.drop("target", axis=1)
y = df["target"]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 模型训练
model = GradientBoostingClassifier(
n_estimators=300,
max_depth=6,
learning_rate=0.1,
)
model.fit(X_train, y_train)
# 模型评估
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred, average="weighted")
mlflow.log_metrics({"accuracy": acc, "precision": prec})
mlflow.sklearn.log_model(model, "model")
return acc
if __name__ == "__main__":
accuracy = train_pipeline("s3://data/features/train.parquet")
print(f"Model accuracy: {accuracy:.4f}")
python
import mlflow
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score, precision_score
def train_pipeline(data_path: str) -> float:
"""端到端训练流水线"""
mlflow.set_experiment("production-model")
with mlflow.start_run():
# 数据加载
df = pd.read_parquet(data_path)
X = df.drop("target", axis=1)
y = df["target"]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 模型训练
model = GradientBoostingClassifier(
n_estimators=300,
max_depth=6,
learning_rate=0.1,
)
model.fit(X_train, y_train)
# 模型评估
y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred)
prec = precision_score(y_test, y_pred, average="weighted")
mlflow.log_metrics({"accuracy": acc, "precision": prec})
mlflow.sklearn.log_model(model, "model")
return acc
if __name__ == "__main__":
accuracy = train_pipeline("s3://data/features/train.parquet")
print(f"Model accuracy: {accuracy:.4f}")Kubernetes 部署配置
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: production-model
spec:
predictor:
sklearn:
storageUri: s3://mlflow-artifacts/1/model
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 4Gi
yaml
apiVersion: serving.kserve.io/v1beta1
kind: InferenceService
metadata:
name: production-model
spec:
predictor:
sklearn:
storageUri: s3://mlflow-artifacts/1/model
resources:
requests:
cpu: "1"
memory: 2Gi
limits:
cpu: "2"
memory: 4Gi三、总结
MLOps 流水线的核心在于自动化与可重复性。通过将训练、评估和部署流程标准化,团队可以更快速地迭代模型,同时保证生产环境的稳定性。
本文作者:技术领航员 | 许可协议:CC BY-NC-SA 4.0
本文链接:https://sre-ai-blog.pages.dev/zh/posts/mlops-pipeline/(转载请注明出处)