---
title: "MLOps 与模型生命周期管理"
canonical: https://wavect.io/zh/services/mlops/
language: zh
description: "为数据版本、可复现训练、模型发布和漂移监控建立 MLOps。Wavect 将模型生命周期接入现有工程与运维流程。"
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

MLOps

# 模型首次部署之后，仍然能够复现、评审和回退。

一份模型文件并不能说明它用了哪些数据、为什么被批准或何时应该更新。我们建立训练模型的生命周期，让团队可以复现结果、评审替代版本，并从表现不佳的发布中恢复。

合作范围

## 从数据来源一直追踪到生产部署。

1. **还原模型路径** 梳理数据、特征、实验、模型文件和发布决定。
2. **自动化必要控制** 建立可重复任务、评估检查和版本化部署。
3. **明确响应责任** 指定监控、回退和再训练决策负责人。

直接说明

MLOps 管理训练模型的完整周期，包括数据与模型文件版本、可重复训练、发布检查、推理服务、监控和受控再训练。每次模型变化都具备可检查的依据和明确的运营责任。

适合以下需求

- 通过手工部署模型，或无法复现训练结果的团队
- 需要从新增训练数据到模型发布的受控流程的产品

其他需求路径

- 尚未确认可行性的首个预测模型开发
- 针对现有 LLM 应用评估提示词和检索行为

## 先让一条模型路径能够重复执行

我们选取代表性模型，梳理源数据、转换步骤、训练环境、模型文件和部署目标。隐藏在笔记本里的步骤和手工复制文件的操作都会成为明确依赖。如果尚不确定能否训练出有用的模型，应先开展 [机器学习](/zh/services/machine-learning/) 评估，再投资生命周期基础设施。

## 保存足以复现候选模型的信息

流程记录数据集引用、特征定义、代码版本、参数和评估输出。已经部署的模型应当能够追溯到支持其批准的证据。存储和访问策略会考虑敏感数据及许可限制。现有工程工具能够满足需求时，我们会继续使用，而不会默认引入一整套新平台。

## 依据证据推进候选模型

发布前，新模型需要与已接受的基线及重要子群体比较。根据应用情况，可采用分批流量、影子预测或限定批次。双方定义回退前提、兼容特征版本，以及谁有权批准发布。通用代码仓库和流水线安全仍由 [DevSecOps](/zh/services/devsecops/) 负责。

## 区分输入变化和业务表现下降

数据漂移代表输入发生变化，并不自动意味着业务效果变差。我们定义有用的信号、真实结果何时可得，以及每种告警需要采取的行动。再训练可以按计划或事件触发，但发布仍须遵循评估政策。无法解释或无人能够处理的告警，不应成为运行设计的一部分。

## 示例验收：阻止较弱的替代模型

一个候选模型改善了总体指标，却在重要客户群体上退步。示例发布检查阻止其上线，保留当前模型文件。团队能够复现比较并查看使用的数据集引用。另一项回退演练验证推理服务能够恢复到先前兼容的模型及特征版本。

## 留下团队可以执行的运行机制

移交包括流水线、数据和模型文件约定、仪表盘、发布条件及故障处理说明。基础设施、监控时间和响应责任明确写入范围。本服务建立模型生命周期工具；持续的 [托管云运维](/zh/services/managed-cloud-operations/) 安排另有自己的服务范围与合同。

## 开始前的常见问题

### 我们需要大型 MLOps 平台吗？

不一定。少量模型可能只需要可复现任务、模型文件存储和清晰的发布记录。只有工作流程需要时，才增加编排或模型注册功能。

### 再训练会自动执行吗？

在数据访问和评估条件允许时可以。训练候选模型与批准生产发布是两个独立动作，发布政策需要事先约定。

### 可以接手其他团队训练的模型吗？

可以，但先检查代码、数据使用权限和模型文件访问。缺失的训练历史会如实记录，不能假设部署文件能够还原所有信息。

### MLOps 和 LLMOps 是同一回事吗？

两者在部署和监控上有交集。提示词版本、检索质量和生成回答评估由 AI 评估与 LLMOps 承接；本页重点是训练模型与数据集的生命周期。

## 选择合适的下一步

- [开发并评估预测模型](/zh/services/machine-learning/)
- [评估 LLM 应用](/zh/services/ai-evaluation-llmops/)
- [保护软件交付流程](/zh/services/devsecops/)

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/zh/services/mlops/#service",
      "@type": "Service",
      "areaServed": [
        {
          "@type": "Country",
          "name": "Austria"
        },
        {
          "@type": "Place",
          "name": "Worldwide"
        }
      ],
      "category": "人工智能",
      "dateModified": "2026-10-31",
      "description": "为数据版本、可复现训练、模型发布和漂移监控建立 MLOps。Wavect 将模型生命周期接入现有工程与运维流程。",
      "name": "MLOps 与模型生命周期管理",
      "provider": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "serviceType": "MLOps",
      "url": "https://wavect.io/zh/services/mlops/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/",
          "name": "首页",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/",
          "name": "服务",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/overview/#ai",
          "name": "人工智能",
          "position": 3
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/zh/services/mlops/",
          "name": "MLOps",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://wavect.io/zh/services/mlops/#webpage",
      "@type": "WebPage",
      "dateModified": "2026-10-31",
      "description": "为数据版本、可复现训练、模型发布和漂移监控建立 MLOps。Wavect 将模型生命周期接入现有工程与运维流程。",
      "inLanguage": "zh",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "mainEntity": {
        "@id": "https://wavect.io/zh/services/mlops/#service"
      },
      "name": "MLOps 与模型生命周期管理",
      "url": "https://wavect.io/zh/services/mlops/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "不一定。少量模型可能只需要可复现任务、模型文件存储和清晰的发布记录。只有工作流程需要时，才增加编排或模型注册功能。"
      },
      "name": "我们需要大型 MLOps 平台吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "在数据访问和评估条件允许时可以。训练候选模型与批准生产发布是两个独立动作，发布政策需要事先约定。"
      },
      "name": "再训练会自动执行吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "可以，但先检查代码、数据使用权限和模型文件访问。缺失的训练历史会如实记录，不能假设部署文件能够还原所有信息。"
      },
      "name": "可以接手其他团队训练的模型吗？"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "两者在部署和监控上有交集。提示词版本、检索质量和生成回答评估由 AI 评估与 LLMOps 承接；本页重点是训练模型与数据集的生命周期。"
      },
      "name": "MLOps 和 LLMOps 是同一回事吗？"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
