拓冰建站拓冰建站
首页 / 资讯中心 / 正文

20分钟搭好生产级机器学习平台:MLflow 上 Kubernetes 部署完整实操

20分钟搭好生产级机器学习平台MLflow 上 Kubernetes 部署完整实操【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow模型在训练机上跑得飞起一上生产就失联这次用 MLflow 这套开源 AI 工程平台把实验跟踪服务和模型推理服务一起搬进 Kubernetes 集群官方 Helm Chart 负责服务端标准模型格式负责打包端全程 20 分钟以内。为什么训练环境跑得通的模型上生产总翻车我见过的大多数部署事故锅都不在模型本身而在训练机到生产这段路上。最常见的三种现场实验服务器是某台训练机跟踪数据全在它本地磁盘里机器一回收历史 run 全没了模型和运行环境是分离的线上少个依赖就报错也没人说得清当前跑的是哪版代码部署配置散落在若干 yaml 里集群到底服务哪个模型版本问一圈没人答得上来。本文的目标就一件事跟踪、模型版本、推理服务全部收进同一个集群元数据run ID、参数、指标和模型本身走同一条路出问题先查数据不用互相猜。MLflow 内置了哪些部署工具开工前先摸清楚先看工具箱心里有数再动手能力内置工具在哪里实验跟踪mlflow.start_run/log_param/log_metric统一记录参数、指标、产物mlflow/tracking/跟踪服务上 K8s官方 Helm ChartPVC 持久化、TLS、Ingress、Prometheus 监控均可配charts/README.md模型容器化mlflow models build-docker打镜像mlflow models serve起 REST 推理mlflow/deployments/Python 侧同样齐活mlflow.models和mlflow.deployments几乎覆盖所有部署能力脚本化推向云端也是同一套写法。关键在MLflow Model这个标准格式模型连同依赖、推理 schema 一起打包所以同一份模型换到本地、K8s 或云端目标部署时不用改一行代码。如何用 Helm Chart 把 MLflow 跟踪服务装进集群前置条件Kubernetes 1.23、Helm 3.8。clone 仓库后直接用内置 Chart 安装开发环境用 SQLite 加一块 PVC 就够了git clone https://gitcode.com/GitHub_Trending/ml/mlflow cd mlflow helm install mlflow ./charts --namespace mlflow --create-namespace \ --set storage.enabledtrue \ --set mlflow.backendStoreUrisqlite:////mlflow/mlflow.db \ --set mlflow.artifactsDestination/mlflow/artifacts关键在storage.enabled和artifactsDestination这一对参数前者让元数据库落盘到 PVC后者让产物文件也持久化Pod 重启数据不丢。 验证只要一条命令kubectl port-forward -n mlflow svc/mlflow-mlflow 5000:5000浏览器打开 http://localhost:5000就能看到实验跟踪界面生产则把 SQLite 换成 PostgreSQL连接串走 Secret产物放 S3 对象存储Chart 里有一份现成生产示例example-mlflow-charts.yaml。如何让训练脚本把参数和指标自动上报到集群跟踪服务进集群后训练端只需把上报地址指过去。集群内部服务地址是http://mlflow-mlflow.mlflow:5000集群外则用 Ingress 域名或 port-forward 地址。最小训练脚本长这样import os, mlflow, mlflow.sklearn mlflow.set_tracking_uri(http://mlflow-mlflow.mlflow:5000) with mlflow.start_run(run_namewine-quality-v1) as run: mlflow.log_param(alpha, 0.5) mlflow.sklearn.log_model(model, model) mlflow.set_tag(pod_name, os.environ.get(POD_NAME, local))关键在最后一行把 Pod 名或你工作流的任务 ID写成 tag 塞进 run。之后排查问题就能从部署环境反查这台机器上跑过哪几次训练双向可追溯。run 结束后模型自动出现在注册表里各版本的参数和指标并排可看如何把训练好的模型打包成镜像并起本地推理服务模型入库后容器化只剩两条命令mlflow models build-docker -m runs:/RUN_ID/model -n mlflow-wine:v1 mlflow models serve -m runs:/RUN_ID/model -p 5001关键在build-docker会把模型、依赖、自定义代码一起封进镜像——部署环境和训练环境同构在我机器上是好的这种话从此没有市场。本地serve先验证推理接口可用正式推向集群或云端目标用mlflow deploymentsCLI 或 Python API 即可SageMaker、Databricks 等目标以插件形式支持详见官方部署文档。上线前的生产清单三个必须改的设置⚠️ 前面的开发姿势能跑通但上生产前有几处配置建议逐一核对Ingress 返回 403MLflow 的主机校验默认只放行 localhost 和内网地址用 Ingress 挂公网域名时必须配置server.value_options.allowed_hosts否则请求会被直接拒绝凭据不要写进 values数据库连接串、S3 密钥先建成 Kubernetes Secret再通过backendStoreUriFrom引用避免明文密码进仓库存储分级SQLite PVC 只适合开发生产请用 PostgreSQL 对象存储顺手开启garbageCollection定期清理软删 30 天以上的 run 及其产物防止存储无限膨胀。还有个容易踩的边角helm uninstall不会删 PVC卸载后记得手动kubectl delete pvc -n mlflow --all收尾。这些做完实验元数据、模型版本、推理服务就都长在了同一个集群上——下次有人说这个模型不灵你打开跟踪服务先看数据而不是先怀疑哪台机器。【免费下载链接】mlflowThe open source AI engineering platform for agents, LLMs, and ML models. MLflow enables teams of all sizes to debug, evaluate, monitor, and optimize production-quality AI applications while controlling costs and managing access to models and data.项目地址: https://gitcode.com/GitHub_Trending/ml/mlflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门