name: 实施-mlops description: 提供从实验到生产的机器学习模型操作化战略指导。涵盖实验跟踪(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 管道编排
自动化训练、评估和部署工作流。
训练管道阶段:
- 数据验证(Great Expectations,模式检查)
- 特征工程(转换原始数据)
- 数据分割(训练/验证/测试)
- 模型训练(超参数调优)
- 模型评估(准确率、公平性、可解释性)
- 模型注册(如果指标通过阈值则推送到注册表)
- 部署(提升到暂存/生产)
持续训练模式:
- 监控生产数据以检测漂移
- 检测数据分布变化(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工作流。
管道阶段:
- 数据验证(Great Expectations)
- 特征工程(转换原始数据)
- 数据分割(训练/验证/测试)
- 模型训练(带超参数调优)
- 模型评估(准确率、公平性、可解释性)
- 模型注册(推送到MLflow注册表)
- 部署(提升到暂存/生产)
架构:
数据湖 → 数据验证 → 特征工程 → 训练 → 评估
↓
模型注册表(暂存) → 测试 → 生产部署
实现详情和代码示例,请见references/ml-pipelines.md。
模式 2:持续训练
基于漂移检测自动重训练模型。
工作流:
- 监控生产数据以检测分布变化
- 检测数据漂移(KS测试、PSI)
- 触发自动重训练管道
- 验证新模型(准确率、公平性)
- 通过金丝雀策略部署(5% → 100%)
- 监控新模型性能
- 如果指标降级则回滚
触发条件:
- 计划:每日/每周重训练
- 数据漂移:KS测试p值 < 0.05
- 模型漂移:准确率下降 > 5%
- 数据量:新训练数据超过阈值(10K样本)
实现详情,请见references/ml-pipelines.md。
模式 3:特征存储集成
确保训练和推理之间特征一致性。
架构:
离线存储(训练):
Parquet/BigQuery → 时间点连接 → 训练数据集
在线存储(推理):
Redis/DynamoDB → 低延迟查找 → 实时预测
时间点正确性:
- 训练:获取特定时间戳的特征(无未来数据)
- 推理:获取最新特征(仅过去数据)
- 保证:训练和推理中相同的特征逻辑
实现详情和代码示例,请见references/feature-stores.md。
模式 4:影子部署测试
在生产中测试新模型而无风险。
工作流:
- 在影子模式下部署新模型(v2)
- v2接收生产流量的副本
- v1预测用于响应(无用户影响)
- 离线比较v1和v2预测
- 分析差异,测量v2准确率
- 如果性能可接受,则将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指标和监控的仪表板
最佳实践
-
版本化一切:
- 代码:Git提交SHA用于可重复性
- 数据:DVC或数据版本哈希
- 模型:语义版本控制(v1.2.3)
- 特征:特征存储版本控制
-
自动化测试:
- 单元测试:模型加载、接受输入、产生输出
- 集成测试:端到端管道执行
- 模型验证:准确率阈值、公平性检查
-
持续监控:
- 数据漂移:分布随时间变化
- 模型漂移:准确率降级
- 性能:延迟、吞吐量、错误率
-
从简单开始:
- 从MLflow + 基本服务(BentoML)开始
- 根据需要添加复杂性(特征存储、Kubeflow)
- 避免过度工程化(2个模型不构建Kubeflow)
-
时间点正确性:
- 使用特征存储以避免训练/服务偏差
- 确保训练中无未来数据泄漏
- 训练和推理中一致的特征逻辑
-
部署策略:
- 使用金丝雀用于中等风险模型(逐步推出)
- 使用影子用于高风险模型(零生产影响)
- 始终有回滚计划(即时切换到先前版本)
-
治理:
- 模型卡片:记录模型目的、限制、偏见
- 审计跟踪:跟踪所有模型版本、部署、批准
- 合规:欧盟AI法案、模型风险管理(SR 11-7)
-
成本优化:
- 量化:减少模型大小4倍,推理速度2-3倍
- Spot实例:在可抢占VM上训练(成本减少60-90%)
- 自动缩放:基于负载缩放推理端点
反模式
❌ 生产中使用笔记本:
- 永远不将Jupyter笔记本部署到生产
- 仅使用笔记本进行实验
- 生产:使用脚本、Docker容器、CI/CD管道
❌ 手动模型部署:
- 使用CI/CD管道自动化部署
- 使用模型注册表阶段转换(暂存 → 生产)
- 消除人为错误,确保可重复性
❌ 无监控:
- 生产模型无监控将静默降级
- 实施漂移检测(数据漂移、模型漂移)
- 设置准确率下降、延迟峰值警报
❌ 训练/服务偏差:
- 训练与推理中不同的特征逻辑
- 使用特征存储确保一致性
- 在生产部署前测试特征奇偶性
❌ 忽视数据质量:
- 垃圾进,垃圾出(GIGO)
- 验证数据模式、范围、分布
- 使用Great Expectations进行数据验证
❌ 过度工程化:
- 2个模型不构建Kubeflow
- 从简单开始(MLflow + BentoML)
- 仅在必要时添加复杂性(10+个模型)
❌ 无回滚计划:
- 始终有能力回滚到先前模型版本
- 蓝绿、金丝雀、影子部署支持即时回滚
- 在生产部署前测试回滚程序
进一步阅读
参考文件:
- 实验跟踪 - MLflow、W&B、Neptune深度研究
- 模型注册 - 版本控制、谱系、阶段转换
- 特征存储 - Feast、Tecton、在线/离线模式
- 模型服务 - Seldon、KServe、BentoML、优化
- 部署策略 - 蓝绿、金丝雀、影子、A/B
- ML管道 - Kubeflow、Airflow、训练管道
- 模型监控 - 漂移检测、可观测性
- LLMOps模式 - LLM微调、RAG、提示
- 决策框架 - 工具选择框架
- 工具推荐 - 详细比较
- 场景 - 初创公司、企业、LLMOps用例
- 治理 - 模型卡片、合规、公平性
示例项目:
- examples/mlflow-experiment/ - 完整MLflow设置
- examples/feast-feature-store/ - Feast在线/离线
- examples/seldon-deployment/ - 金丝雀、A/B测试
- examples/kubeflow-pipeline/ - 端到端管道
- examples/monitoring-dashboard/ - Evidently + Prometheus
脚本:
- scripts/setup_mlflow_server.sh - MLflow with PostgreSQL + S3
- scripts/feast_feature_definition_generator.py - 生成Feast特征
- scripts/model_validation_suite.py - 自动化模型测试
- scripts/drift_detection_monitor.py - 计划漂移检测
- scripts/kubernetes_model_deploy.py - 部署到Seldon/KServe