⚡

MLOps实施Skill implementing-mlops

MLOps(机器学习操作化)技能提供从实验到生产的机器学习模型部署和监控的完整生命周期管理。涵盖实验跟踪、模型注册、特征存储、服务部署、管道编排和监控等关键方面,适用于构建生产级ML基础设施、选择MLOps平台、实施持续训练管道和建立模型治理。关键词:MLOps,机器学习操作,模型部署,自动化管道,实验跟踪,特征存储,模型服务,监控,漂移检测,CI/CD。

机器学习 1 次安装 41 次浏览 更新于 3/23/2026
名称 实施-mlops
描述 提供从实验到生产的机器学习模型操作化战略指导。涵盖实验跟踪(MLflow、Weights & Biases)、模型注册和版本控制、特征存储(Feast、Tecton)、模型服务模式(Seldon、KServe、BentoML)、ML管道编排(Kubeflow、Airflow)和模型监控(漂移检测、可观测性)。适用于设计ML基础设施、选择MLOps平台、实施持续训练管道或建立模型治理时使用。

MLOps 模式

将机器学习模型从实验阶段操作化到生产部署和监控。

目的

为ML工程师和平台团队提供构建生产级ML基础设施的战略指导。涵盖完整生命周期:实验跟踪、模型注册、特征存储、部署模式、管道编排和监控。

何时使用此技能

在以下情况下使用此技能:

  • 为生产ML系统设计MLOps基础设施
  • 选择实验跟踪平台(MLflow、Weights & Biases、Neptune)
  • 实施用于在线/离线特征服务的特征存储
  • 选择模型服务解决方案(Seldon Core、KServe、BentoML、TorchServe)
  • 构建用于训练、评估和部署的ML管道
  • 设置模型监控和漂移检测
  • 建立模型治理和合规框架
  • 优化ML推理成本和性能
  • 从笔记本迁移到生产ML系统
  • 实施持续训练和自动重训练

核心概念

1. 实验跟踪

系统跟踪实验以确保可重复性和协作。

关键组件:

  • 参数:为每次训练运行记录的超参数
  • 指标:随时间跟踪的性能度量(准确率、损失、F1)
  • 工件:模型权重、图表、数据集、配置文件
  • 元数据:标签、描述、Git提交SHA、环境详情

平台比较:

MLflow(开源标准):

  • 框架无关(PyTorch、TensorFlow、scikit-learn、XGBoost)
  • 自托管或云无关部署
  • 集成模型注册
  • 基本UI,适用于大多数用例
  • 免费,需要基础设施管理

Weights & Biases(SaaS,专注于协作):

  • 高级可视化和仪表板
  • 集成超参数优化(Sweeps)
  • 优秀的团队协作功能
  • SaaS定价随使用量扩展
  • 最佳UI

Neptune.ai(企业级):

  • 企业功能(RBAC、审计日志、合规)
  • 集成生产监控
  • 成本高于W&B
  • 适用于受监管行业

选择标准:

  • 开源要求 → MLflow
  • 团队协作关键 → Weights & Biases
  • 企业合规(RBAC、审计) → Neptune.ai
  • 超参数优化主要 → Weights & Biases(Sweeps)

详细比较和决策框架,请见references/experiment-tracking.md。

2. 模型注册和版本控制

集中模型工件,提供版本控制和阶段管理。

模型注册组件:

  • 模型工件(权重、序列化模型)
  • 训练指标(准确率、F1、AUC)
  • 训练期间使用的超参数
  • 训练数据集版本
  • 特征模式(输入/输出签名)
  • 模型卡片(文档、用例、限制)

阶段管理:

  • 无:新注册的模型
  • 暂存:在预生产环境中测试
  • 生产:服务实时流量
  • 归档:已弃用,为合规保留

版本控制策略:

模型语义版本控制:

  • 主版本(v2.0.0):输入/输出模式的破坏性更改
  • 次版本(v1.1.0):新功能,向后兼容
  • 补丁版本(v1.0.1):错误修复,在新数据上重新训练模型

基于Git的版本控制:

  • 模型代码在Git中(训练脚本、配置)
  • 模型权重在DVC(数据版本控制)或Git-LFS中
  • 通过提交SHA + 数据版本哈希实现可重复性

模型谱系跟踪和注册模式,请见references/model-registry.md。

3. 特征存储

集中特征工程以确保训练和推理之间的一致性。

解决的问题: 训练/服务偏差

  • 训练:使用未来知识计算特征(数据泄漏)
  • 推理:仅使用过去数据计算特征
  • 结果:模型在训练中表现良好但在生产中失败

特征存储解决方案:

在线特征存储:

  • 目的:为实时推理低延迟检索特征
  • 存储:Redis、DynamoDB、Cassandra(键值存储)
  • 延迟:特征查找小于10ms
  • 用例:实时预测(欺诈检测、推荐)

离线特征存储:

  • 目的:用于训练和批量推理的历史特征数据
  • 存储:Parquet文件(S3/GCS)、数据仓库(Snowflake、BigQuery)
  • 延迟:秒到分钟(批量检索)
  • 用例:模型训练、回测、批量预测

时间点正确性:

  • 确保训练期间无未来数据泄漏
  • 时间T的特征值仅使用时间T之前的数据
  • 关键避免过于乐观的训练指标

平台比较:

Feast(开源,云无关):

  • 最受欢迎的开源特征存储
  • 支持Redis、DynamoDB、Datastore(在线)和Parquet、BigQuery、Snowflake(离线)
  • 云无关,无供应商锁定
  • 活跃社区,增长采用

Tecton(托管,生产级):

  • 兼容Feast API
  • 完全托管服务
  • 集成监控和治理
  • 成本较高,企业聚焦

SageMaker Feature Store(AWS):

  • 与AWS生态系统集成
  • 托管在线/离线存储
  • AWS锁定

Databricks Feature Store(Databricks):

  • Unity Catalog集成
  • 用于离线存储的Delta Lake
  • Databricks生态系统锁定

选择标准:

  • 开源,云无关 → Feast
  • 托管解决方案,生产级 → Tecton
  • AWS生态系统 → SageMaker Feature Store
  • Databricks用户 → Databricks Feature Store

特征工程模式和实现,请见references/feature-stores.md。

4. 模型服务模式

部署模型以进行同步、异步、批量或流式推理。

服务模式:

REST API 部署:

  • 模式:用于同步预测的HTTP端点
  • 延迟:小于100ms可接受
  • 用例:请求-响应应用
  • 工具:Flask、FastAPI、BentoML、Seldon Core

gRPC 部署:

  • 模式:用于低延迟推理的高性能RPC
  • 延迟:小于10ms目标
  • 用例:微服务、延迟关键应用
  • 工具:TensorFlow Serving、TorchServe、Seldon Core

批量推理:

  • 模式:离线处理大型数据集
  • 延迟:分钟到小时可接受
  • 用例:每日/每小时为数百万记录进行预测
  • 工具:Spark、Dask、Ray

流式推理:

  • 模式:对流数据进行实时预测
  • 延迟:毫秒
  • 用例:欺诈检测、异常检测、实时推荐
  • 工具:Kafka + Flink/Spark Streaming

平台比较:

Seldon Core(Kubernetes原生,高级):

  • 高级部署策略(金丝雀、A/B测试、多臂老虎机)
  • 多框架支持
  • 集成的可解释性(Alibi)
  • 高复杂性,陡峭学习曲线

KServe(CNCF标准):

  • 标准化InferenceService API
  • 无服务器缩放(使用Knative缩放至零)
  • Kubernetes原生
  • 增长采用,CNCF支持

BentoML(Python优先,简单性):

  • 最容易上手
  • 优秀的开发者体验
  • 本地测试 → 云部署
  • 复杂性低于Seldon/KServe

TorchServe(PyTorch官方):

  • PyTorch特定服务
  • 生产级,为PyTorch模型优化
  • 多框架使用灵活性较低

TensorFlow Serving(TensorFlow官方):

  • TensorFlow特定服务
  • 生产级,为TensorFlow模型优化
  • 多框架使用灵活性较低

选择标准:

  • Kubernetes,高级部署 → Seldon Core 或 KServe
  • Python优先,简单性 → BentoML
  • PyTorch特定 → TorchServe
  • TensorFlow特定 → TensorFlow Serving
  • 托管解决方案 → SageMaker/Vertex AI/Azure ML

模型优化和服务基础设施,请见references/model-serving.md。

5. 部署策略

安全部署模型,提供回滚能力。

蓝绿部署:

  • 两个相同环境(蓝:当前,绿:新)
  • 部署到绿环境,测试,立即切换100%流量
  • 即时回滚(切换回蓝环境)
  • 权衡:需要2倍基础设施,全有或全无切换

金丝雀部署:

  • 逐步向流量子集推出
  • 路由5% → 10% → 25% → 50% → 100%随时间推移
  • 在每个阶段监控指标,如果降级则回滚
  • 权衡:复杂路由逻辑,更长的部署时间

影子部署:

  • 新模型接收流量但预测未使用
  • 离线比较新模型与旧模型
  • 零生产风险
  • 权衡:需要2倍计算,延迟反馈

A/B 测试:

  • 在模型版本之间分割流量
  • 测量业务指标(转换率、收入)
  • 统计显著性测试
  • 用例:优化业务结果,而不仅仅是ML指标

多臂老虎机(MAB):

  • Epsilon贪婪:探索(尝试新模型) vs 利用(使用最佳模型)
  • Thompson采样:贝叶斯探索方法
  • 用例:持续优化,比A/B更快收敛

选择标准:

  • 低风险模型 → 蓝绿(即时切换)
  • 中等风险模型 → 金丝雀(逐步推出)
  • 高风险模型 → 影子(在生产中测试,无影响)
  • 业务优化 → A/B测试或MAB

部署架构和示例,请见references/deployment-strategies.md。

6. ML 管道编排

自动化训练、评估和部署工作流。

训练管道阶段:

  1. 数据验证(Great Expectations,模式检查)
  2. 特征工程(转换原始数据)
  3. 数据分割(训练/验证/测试)
  4. 模型训练(超参数调优)
  5. 模型评估(准确率、公平性、可解释性)
  6. 模型注册(如果指标通过阈值则推送到注册表)
  7. 部署(提升到暂存/生产)

持续训练模式:

  • 监控生产数据以检测漂移
  • 检测数据分布变化(KS测试、PSI)
  • 当检测到漂移时触发自动重训练
  • 在部署前验证新模型
  • 通过金丝雀或影子策略部署

平台比较:

Kubeflow Pipelines(ML原生,Kubernetes):

  • ML特定管道编排
  • Kubernetes原生(随K8s缩放)
  • 基于组件(可重用管道步骤)
  • 与Katib集成(超参数调优)

Apache Airflow(成熟,通用):

  • 最成熟的编排平台
  • 大型生态系统,广泛集成
  • 基于Python的DAGs
  • 非ML特定但广泛用于ML工作流

Metaflow(Netflix,数据科学友好):

  • 以人为中心的设计,数据科学家容易上手
  • 优秀的本地开发体验
  • 内置版本控制
  • 比Kubeflow/Airflow简单

Prefect(现代,Python原生):

  • 动态工作流,非静态DAGs
  • 比Airflow更好的错误处理
  • 现代UI和开发者体验
  • 增长社区

Dagster(基于资产,测试聚焦):

  • 基于资产的思维(不仅仅是任务依赖)
  • 强大的测试和数据质量功能
  • 现代方法,适用于数据团队
  • 社区比Airflow小

选择标准:

  • ML特定,Kubernetes → Kubeflow Pipelines
  • 成熟,经过战斗测试 → Apache Airflow
  • 数据科学家,易用性 → Metaflow
  • 软件工程师,测试 → Dagster
  • 现代,比Airflow简单 → Prefect

管道架构和示例,请见references/ml-pipelines.md。

7. 模型监控和可观测性

监控生产模型的漂移、性能和质量。

数据漂移检测:

  • 定义:输入特征分布随时间变化
  • 影响:模型在旧分布上训练,预测降级
  • 检测方法:
    • Kolmogorov-Smirnov(KS)测试:比较分布
    • 人口稳定性指数(PSI):测量分布偏移
    • Chi-Square测试:用于分类特征
  • 操作:当检测到漂移时触发自动重训练

模型漂移检测:

  • 定义:模型预测质量随时间降级
  • 影响:准确率、精度、召回率下降
  • 检测方法:
    • 真实准确率(延迟标签)
    • 预测分布变化
    • 校准漂移(预测概率 vs 实际结果)
  • 操作:提醒团队,触发重训练

性能监控:

  • 指标:
    • 延迟:P50、P95、P99推理时间
    • 吞吐量:每秒预测数
    • 错误率:失败预测 / 总预测数
    • 资源利用率:CPU、内存、GPU使用情况
  • 警报阈值:
    • P95延迟 > 100ms → 警报
    • 错误率 > 1% → 警报
    • 准确率下降 > 5% → 触发重训练

业务指标监控:

  • 下游影响:转换率、收入、用户满意度
  • 模型预测 → 业务结果相关性
  • 用例:为业务价值优化模型,而不仅仅是ML指标

工具:

  • Evidently AI:数据漂移、模型漂移、数据质量报告
  • Prometheus + Grafana:性能指标,自定义仪表板
  • Arize AI:ML可观测性平台
  • Fiddler:模型监控和可解释性

监控架构和实现,请见references/model-monitoring.md。

8. 模型优化技术

减少模型大小和推理延迟。

量化:

  • 将模型权重从float32转换为int8
  • 模型大小减少:4倍更小
  • 推理速度:2-3倍更快
  • 准确率影响:最小(通常小于1%降级)
  • 工具:PyTorch量化、TensorFlow Lite、ONNX Runtime

模型蒸馏:

  • 训练小学生模型以模仿大教师模型
  • 从教师(BERT-large)转移知识到学生(DistilBERT)
  • 大小减少:2-10倍更小
  • 速度改进:2-10倍更快
  • 用例:在边缘设备上部署小模型,减少推理成本

ONNX 转换:

  • 将模型转换为开放神经网络交换(ONNX)格式
  • 跨框架兼容性(PyTorch → ONNX → TensorFlow)
  • 使用ONNX Runtime进行优化推理
  • 速度改进:比原生框架快1.5-3倍

模型剪枝:

  • 从神经网络中移除较不重要的权重
  • 稀疏性:30-90%的权重设置为零
  • 大小减少:2-10倍更小
  • 准确率影响:结构化剪枝最小

优化技术和示例,请见references/model-serving.md。

9. LLMOps 模式

使用专门模式操作化大型语言模型。

LLM 微调管道:

  • LoRA(低秩适应):参数高效微调
  • QLoRA:量化LoRA(4位量化)
  • 管道:基础模型 → 微调数据集 → LoRA适配器 → 合并模型
  • 工具:Hugging Face PEFT、Axolotl

提示版本控制:

  • 提示版本控制(Git、提示管理平台)
  • A/B测试提示以优化质量和成本
  • 随时间监控提示有效性

RAG 系统监控:

  • 检索质量:检索文档的相关性
  • 生成质量:答案准确率、幻觉检测
  • 端到端延迟:检索 + 生成时间
  • 工具:LangSmith、Arize Phoenix

LLM 推理优化:

  • vLLM:高吞吐量LLM服务
  • TensorRT-LLM:NVIDIA优化LLM推理
  • 文本生成推理(TGI):Hugging Face服务
  • 批处理:用于吞吐量的动态批处理

嵌入模型管理:

  • 版本化嵌入与模型一起
  • 监控嵌入漂移(分布变化)
  • 当底层模型变化时更新嵌入

LLMOps模式和实现,请见references/llmops-patterns.md。

10. 模型治理和合规

建立模型风险管理法规遵从的治理。

模型卡片:

  • 文档:模型目的、训练数据、性能指标
  • 限制:已知偏见、失败模式、超出范围用例
  • 伦理考虑:公平性、隐私、社会影响
  • 模板:模型卡片工具包(Google)

偏见和公平性检测:

  • 测量跨人口统计群体的不同影响
  • 工具:Fairlearn、AI Fairness 360(IBM)
  • 指标:人口统计平等、均等几率、校准
  • 缓解:重新加权、对抗性去偏见、阈值优化

法规遵从:

  • 欧盟AI法案:高风险AI系统需要文档、监控
  • 模型风险管理(SR 11-7):银行业要求
  • GDPR:自动化决策的解释权
  • HIPAA:医疗数据隐私

审计跟踪:

  • 记录所有模型版本、训练运行、部署
  • 跟踪谁批准了模型转换(暂存 → 生产)
  • 为合规审计保留历史预测
  • 工具:MLflow、Neptune.ai(审计日志)

治理框架和合规,请见references/governance.md。

决策框架

框架 1:实验跟踪平台选择

决策树:

从主要要求开始:

  • 开源,自托管要求 → MLflow
  • 团队协作,高级可视化(预算可用) → Weights & Biases
  • 团队协作,高级可视化(无预算) → MLflow
  • 企业合规(审计日志、RBAC) → Neptune.ai
  • 超参数优化主要用例 → Weights & Biases(Sweeps)

详细标准:

标准 MLflow Weights & Biases Neptune.ai
成本 免费 $200/用户/月 $300/用户/月
协作 基本 优秀 好
可视化 基本 优秀 好
超参数调优 外部(Optuna) 集成(Sweeps) 基本
模型注册 包含 附加组件 包含
自托管 是 否(仅付费) 有限
企业功能 否 有限 优秀

按组织推荐:

  • 初创公司(<50人):MLflow(免费,足够)或W&B(如有预算)
  • 成长公司(50-500人):Weights & Biases(团队协作)
  • 企业(>500人):Neptune.ai(合规)或MLflow(成本)

详细决策框架,请见references/decision-frameworks.md。

框架 2:特征存储选择

决策矩阵:

主要要求:

  • 开源,云无关 → Feast
  • 托管解决方案,生产级,多云 → Tecton
  • AWS生态系统 → SageMaker Feature Store
  • GCP生态系统 → Vertex AI Feature Store
  • Azure生态系统 → Azure ML Feature Store
  • Databricks用户 → Databricks Feature Store
  • 自托管带UI → Hopsworks

标准比较:

因素 Feast Tecton Hopsworks SageMaker FS
成本 免费 $$$$ 免费(自托管) $$$
在线服务 Redis、DynamoDB 托管 RonDB 托管
离线存储 Parquet、BigQuery、Snowflake 托管 Hive、S3 S3
时间点正确性 是 是 是 是
监控 外部 集成 基本 外部
云锁定 否 否 否 AWS

推荐:

  • 开源,自管理 → Feast
  • 托管,生产级 → Tecton
  • AWS生态系统 → SageMaker Feature Store
  • Databricks用户 → Databricks Feature Store

详细决策框架,请见references/decision-frameworks.md。

框架 3:模型服务平台选择

决策树:

基础设施:

  • 基于Kubernetes → 需要高级部署模式?
    • 是 → Seldon Core(最多功能)或 KServe(CNCF标准)
    • 否 → BentoML(更简单,Python优先)
  • 云原生(托管) → 云提供商?
    • AWS → SageMaker Endpoints
    • GCP → Vertex AI Endpoints
    • Azure → Azure ML Endpoints
  • 框架特定 → 框架?
    • PyTorch → TorchServe
    • TensorFlow → TensorFlow Serving
  • 无服务器 / 最小基础设施 → BentoML 或 Cloud Functions

详细标准:

功能 Seldon Core KServe BentoML TorchServe
Kubernetes原生 是 是 可选 否
多框架 是 是 是 仅PyTorch
部署策略 优秀 好 基本 基本
可解释性 集成 集成 外部 否
复杂性 高 中等 低 低
学习曲线 陡峭 中等 平缓 平缓

推荐:

  • Kubernetes,高级部署 → Seldon Core 或 KServe
  • Python优先,简单性 → BentoML
  • PyTorch特定 → TorchServe
  • TensorFlow特定 → TensorFlow Serving
  • 托管解决方案 → SageMaker/Vertex AI/Azure ML

详细决策框架,请见references/decision-frameworks.md。

框架 4:ML 管道编排选择

决策矩阵:

主要用例:

  • ML特定管道,Kubernetes原生 → Kubeflow Pipelines
  • 通用编排,成熟生态系统 → Apache Airflow
  • 数据科学工作流,易用性 → Metaflow
  • 现代方法,基于资产思维 → Dagster
  • 动态工作流,Python原生 → Prefect

标准比较:

因素 Kubeflow Airflow Metaflow Dagster Prefect
ML特定 优秀 好 优秀 好 好
Kubernetes 原生 兼容 可选 兼容 兼容
学习曲线 陡峭 陡峭 平缓 中等 中等
成熟度 高 非常高 中等 中等 中等
社区 大 非常大 增长 增长 增长

推荐:

  • ML特定,Kubernetes → Kubeflow Pipelines
  • 成熟,经过战斗测试 → Apache Airflow
  • 数据科学家 → Metaflow
  • 软件工程师 → Dagster
  • 现代,比Airflow简单 → Prefect

详细决策框架,请见references/decision-frameworks.md。

实现模式

模式 1:端到端ML管道

自动化从数据到部署的完整ML工作流。

管道阶段:

  1. 数据验证(Great Expectations)
  2. 特征工程(转换原始数据)
  3. 数据分割(训练/验证/测试)
  4. 模型训练(带超参数调优)
  5. 模型评估(准确率、公平性、可解释性)
  6. 模型注册(推送到MLflow注册表)
  7. 部署(提升到暂存/生产)

架构:

数据湖 → 数据验证 → 特征工程 → 训练 → 评估
    ↓
模型注册表(暂存) → 测试 → 生产部署

实现详情和代码示例,请见references/ml-pipelines.md。

模式 2:持续训练

基于漂移检测自动重训练模型。

工作流:

  1. 监控生产数据以检测分布变化
  2. 检测数据漂移(KS测试、PSI)
  3. 触发自动重训练管道
  4. 验证新模型(准确率、公平性)
  5. 通过金丝雀策略部署(5% → 100%)
  6. 监控新模型性能
  7. 如果指标降级则回滚

触发条件:

  • 计划:每日/每周重训练
  • 数据漂移:KS测试p值 < 0.05
  • 模型漂移:准确率下降 > 5%
  • 数据量:新训练数据超过阈值(10K样本)

实现详情,请见references/ml-pipelines.md。

模式 3:特征存储集成

确保训练和推理之间特征一致性。

架构:

离线存储(训练):
  Parquet/BigQuery → 时间点连接 → 训练数据集

在线存储(推理):
  Redis/DynamoDB → 低延迟查找 → 实时预测

时间点正确性:

  • 训练:获取特定时间戳的特征(无未来数据)
  • 推理:获取最新特征(仅过去数据)
  • 保证:训练和推理中相同的特征逻辑

实现详情和代码示例,请见references/feature-stores.md。

模式 4:影子部署测试

在生产中测试新模型而无风险。

工作流:

  1. 在影子模式下部署新模型(v2)
  2. v2接收生产流量的副本
  3. v1预测用于响应(无用户影响)
  4. 离线比较v1和v2预测
  5. 分析差异,测量v2准确率
  6. 如果性能可接受,则将v2提升到生产

用例:

  • 高风险模型(金融、医疗、安全关键)
  • 在切换前需要广泛测试
  • 比较模型在真实生产数据上的行为

部署架构,请见references/deployment-strategies.md。

工具推荐

生产就绪工具(高采用率)

MLflow - 实验跟踪和模型注册

  • GitHub Stars: 20,000+
  • 信任评分: 95/100
  • 用例:实验跟踪、模型注册、模型服务
  • 优势:开源、框架无关、自托管选项
  • 入门:pip install mlflow && mlflow server

Feast - 特征存储

  • GitHub Stars: 5,000+
  • 信任评分: 85/100
  • 用例:在线/离线特征服务、时间点正确性
  • 优势:云无关、最受欢迎的开源特征存储
  • 入门:pip install feast && feast init

Seldon Core - 模型服务(高级)

  • GitHub Stars: 4,000+
  • 信任评分: 85/100
  • 用例:Kubernetes原生服务、高级部署模式
  • 优势:金丝雀、A/B测试、MAB、可解释性
  • 限制:高复杂性、陡峭学习曲线

KServe - 模型服务(CNCF标准)

  • GitHub Stars: 3,500+
  • 信任评分: 85/100
  • 用例:标准化服务API、无服务器缩放
  • 优势:CNCF项目、Knative集成、增长采用
  • 限制:需要Kubernetes

BentoML - 模型服务(简单性)

  • GitHub Stars: 6,000+
  • 信任评分: 80/100
  • 用例:易打包、Python优先部署
  • 优势:最低学习曲线、优秀开发者体验
  • 限制:比Seldon/KServe更少高级功能

Kubeflow Pipelines - ML编排

  • GitHub Stars: 14,000+(Kubeflow项目)
  • 信任评分: 90/100
  • 用例:ML特定管道、Kubernetes原生工作流
  • 优势:ML原生、组件可重用性、Katib集成
  • 限制:需要Kubernetes、陡峭学习曲线

Weights & Biases - 实验跟踪(SaaS)

  • 信任评分: 90/100
  • 用例:团队协作、高级可视化、超参数调优
  • 优势:最佳UI、集成Sweeps、强大社区
  • 限制:SaaS定价、无自托管免费层

详细工具比较,请见references/tool-recommendations.md。

按组织的工具堆栈推荐

初创公司(成本优化,简单):

  • 实验跟踪:MLflow(免费,自托管)
  • 特征存储:最初无 → 需要时使用Feast
  • 模型服务:BentoML(容易)或云函数
  • 编排:Prefect 或 cron 作业
  • 监控:基本日志 + Prometheus

成长公司(平衡):

  • 实验跟踪:Weights & Biases 或 MLflow
  • 特征存储:Feast(开源,生产就绪)
  • 模型服务:BentoML 或 KServe(基于Kubernetes)
  • 编排:Kubeflow Pipelines 或 Airflow
  • 监控:Evidently + Prometheus + Grafana

企业(完整堆栈):

  • 实验跟踪:MLflow(自托管)或 Neptune.ai(合规)
  • 特征存储:Tecton(托管)或 Feast(自托管)
  • 模型服务:Seldon Core(高级)或 KServe
  • 编排:Kubeflow Pipelines 或 Airflow
  • 监控:Evidently + Prometheus + Grafana + PagerDuty

云原生(托管服务):

  • AWS: SageMaker(端到端平台)
  • GCP: Vertex AI(端到端平台)
  • Azure: Azure ML(端到端平台)

场景特定推荐,请见references/scenarios.md。

常见场景

场景 1:初创公司MLOps堆栈

背景: 20人初创公司,5名数据科学家,3个模型(欺诈检测、推荐、流失),预算有限。

推荐:

  • 实验跟踪:MLflow(免费,自托管)
  • 模型服务:BentoML(简单,快速迭代)
  • 编排:Prefect(比Airflow简单)
  • 监控:Prometheus + 基本漂移检测
  • 特征存储:最初跳过,使用数据库表

原理:

  • 最小化成本(全部开源,自托管)
  • 快速迭代(BentoML易部署)
  • 不过度工程化(3个模型不用Kubeflow)
  • 当扩展到10+个模型时添加特征存储(Feast)

详细场景,请见references/scenarios.md。

场景 2:企业ML平台

背景: 500人公司,50名数据科学家,100+个模型,法规遵从,多云。

推荐:

  • 实验跟踪:Neptune.ai(合规,审计日志)或 MLflow(成本)
  • 特征存储:Feast(自托管,云无关)
  • 模型服务:Seldon Core(高级部署模式)
  • 编排:Kubeflow Pipelines(ML原生,Kubernetes)
  • 监控:Evidently + Prometheus + Grafana + PagerDuty

原理:

  • 需要合规(Neptune审计日志、RBAC)
  • 多云(Feast云无关)
  • 高级部署(Seldon金丝雀、A/B测试)
  • 缩放(Kubernetes用于100+个模型)

详细场景,请见references/scenarios.md。

场景 3:LLM微调管道

背景: 为特定领域用例微调LLM,部署到生产服务。

推荐:

  • 实验跟踪:MLflow(跟踪微调运行)
  • 管道编排:Kubeflow Pipelines(GPU调度)
  • 模型服务:vLLM(高吞吐量LLM服务)
  • 提示版本控制:Git + LangSmith
  • 监控:Arize Phoenix(RAG监控)

原理:

  • 跟踪微调实验(LoRA适配器、超参数)
  • GPU编排(Kubeflow在Kubernetes上)
  • 高效LLM服务(vLLM优化吞吐量)
  • 监控RAG系统(检索 + 生成质量)

详细场景,请见references/scenarios.md。

与其他技能集成

直接依赖:

  • ai-data-engineering:特征工程、ML算法、数据准备
  • kubernetes-operations:K8s集群管理、ML工作负载的GPU调度
  • observability:监控、警报、ML系统的分布式跟踪

互补技能:

  • data-architecture:数据管道、数据湖供应ML模型
  • data-transformation:dbt用于特征转换管道
  • streaming-data:Kafka、Flink用于实时ML推理
  • designing-distributed-systems:ML工作负载的可伸缩模式
  • api-design-principles:ML模型API、REST/gRPC服务模式

下游技能:

  • building-ai-chat:使用ML模型的LLM驱动应用
  • visualizing-data:ML指标和监控的仪表板

最佳实践

  1. 版本化一切:

    • 代码:Git提交SHA用于可重复性
    • 数据:DVC或数据版本哈希
    • 模型:语义版本控制(v1.2.3)
    • 特征:特征存储版本控制
  2. 自动化测试:

    • 单元测试:模型加载、接受输入、产生输出
    • 集成测试:端到端管道执行
    • 模型验证:准确率阈值、公平性检查
  3. 持续监控:

    • 数据漂移:分布随时间变化
    • 模型漂移:准确率降级
    • 性能:延迟、吞吐量、错误率
  4. 从简单开始:

    • 从MLflow + 基本服务(BentoML)开始
    • 根据需要添加复杂性(特征存储、Kubeflow)
    • 避免过度工程化(2个模型不构建Kubeflow)
  5. 时间点正确性:

    • 使用特征存储以避免训练/服务偏差
    • 确保训练中无未来数据泄漏
    • 训练和推理中一致的特征逻辑
  6. 部署策略:

    • 使用金丝雀用于中等风险模型(逐步推出)
    • 使用影子用于高风险模型(零生产影响)
    • 始终有回滚计划(即时切换到先前版本)
  7. 治理:

    • 模型卡片:记录模型目的、限制、偏见
    • 审计跟踪:跟踪所有模型版本、部署、批准
    • 合规:欧盟AI法案、模型风险管理(SR 11-7)
  8. 成本优化:

    • 量化:减少模型大小4倍,推理速度2-3倍
    • Spot实例:在可抢占VM上训练(成本减少60-90%)
    • 自动缩放:基于负载缩放推理端点

反模式

❌ 生产中使用笔记本:

  • 永远不将Jupyter笔记本部署到生产
  • 仅使用笔记本进行实验
  • 生产:使用脚本、Docker容器、CI/CD管道

❌ 手动模型部署:

  • 使用CI/CD管道自动化部署
  • 使用模型注册表阶段转换(暂存 → 生产)
  • 消除人为错误,确保可重复性

❌ 无监控:

  • 生产模型无监控将静默降级
  • 实施漂移检测(数据漂移、模型漂移)
  • 设置准确率下降、延迟峰值警报

❌ 训练/服务偏差:

  • 训练与推理中不同的特征逻辑
  • 使用特征存储确保一致性
  • 在生产部署前测试特征奇偶性

❌ 忽视数据质量:

  • 垃圾进,垃圾出(GIGO)
  • 验证数据模式、范围、分布
  • 使用Great Expectations进行数据验证

❌ 过度工程化:

  • 2个模型不构建Kubeflow
  • 从简单开始(MLflow + BentoML)
  • 仅在必要时添加复杂性(10+个模型)

❌ 无回滚计划:

  • 始终有能力回滚到先前模型版本
  • 蓝绿、金丝雀、影子部署支持即时回滚
  • 在生产部署前测试回滚程序

进一步阅读

参考文件:

示例项目:

脚本: