L5.2 流水线与发布
三维坐标
layer: L5(MLOps/LLMOps)|level: Senior|pillar: 训推框架上一篇我们建立了模型注册与版本治理的「物料库」。本篇要回答的核心问题是:当一个新模型权重 / 新 Prompt 被提交,它如何被自动校验、被安全地放到线上、并在出问题时被秒级回滚? 这就是把传统软件工程的 CI/CD 与发布策略,移植到「代码 + 数据 + 模型」三维制品上的工程实践。
学习目标
- 前置知识:读过 L5.1(模型注册与版本治理:知道 Model Registry 是发布制品的「物料库」、版本/血缘如何登记);了解 L4 的推理部署形态(容器化推理服务、K8s 上的副本与流量入口);会用
git与基础 CI(知道「push 触发流水线」是什么意思)即可。无需精通 K8s 或 Terraform。 - 学完产出:① 能画出「代码 + 数据 + 模型」三维制品的 CI/CD 流水线,并说清为什么 AI 的「校验门禁」是概率性评测而非确定性单测;② 能对比金丝雀 / 影子 / 蓝绿三种发布策略在「是否影响真实用户、资源成本、爆炸半径」上的差异,并为给定场景选型;③ 能解释 IaC 与 GitOps 如何让「回滚」从口号变成
git revert这样的可审计动作;④ 能设计一套带统计显 著性的质量门禁,避免被几十条评测集的噪声骗过;⑤ 亲手用 GitHub Actions 跑通一条「push 即校验 + 门禁阻断」的最小流水线,并验证「故意改坏模型 → CI 红灯 → 发布被跳过」。 - 阅读姿势:盯住一条主线——「AI 发布的全部复杂度,都来自把单一的『代码』变量,扩展成『代码 + 数据 + 模型』三维耦合的制品」。无论是三维 CI 门禁、渐进式灰度,还是 GitOps 声明式治理,本质都在回答同一个问题:当任意一维都可能悄悄改变线上行为时,如何让发布「可门禁、可灰度、可秒级回滚、可审计」。
背景与现状
传统软件发布只有一个变量:代码。而 AI 系统的发布制品是 三维耦合 的——代码(推理服务 / Pipeline 逻辑)、数据(训练集 / 评测集 / Prompt 模板)、模型(权重 / 适配器 / 量化产物) 任意一维变化都可能改变线上行为。这就是为什么「把 git push 接到生产」在 AI 场景下远比 Web 后端复杂。
从产业演进看,AI 发布工程经历了三个阶段:
- 手工时代:算法同学训完模型,手动
scp权重到服务器、手动重启——不可复现、不可回滚、无门禁。一次「悄悄换模型」引发线上质量塌方是常态。 - MLOps 标准化:引入 模型注册中心(Model Registry) + CI 流水线,把「训练 → 评测 → 注册 → 发布」串成自动化管线,发布前强制跑 质量门禁(Quality Gate)。
- LLMOps 当下:Prompt 成为一等公民,Prompt 即代码——Prompt 模板进版本库、走 Code Review、跑评测集回归;发布策略从「全量替换」转向 金丝雀 / 影子 / 蓝绿 的渐进式灰度,因为大模型的「质量回退」往往无法靠单元测试发现,必须用 真实流量 验证。
业界信号:
argoproj/argo-cd、fluxcd/flux2成为 K8s 上事实标准的 GitOps 引擎;Terraform/Pulumi把 GPU 集群、推理服务的基础设施写成可审计的代码。MLOps 团队的核心 KPI 已从「能不能发」变成「发布失败时多久能回滚(MTTR)」——而这恰恰由流水线与发布策略的成熟度决定。
原理与架构
理解 AI 发布,要分两层看:纵向的 CI/CD 流水线(制品如何从提交流向生产)与 横向的发布策略(新版本如何安全地接管流量)。
2.1 模型与 Prompt 的三维 CI/CD 流水线
与普通后端 CI 不同,AI 流水线的「构建产物」不只是镜像,而是 模型版本 + Prompt 版本 + 服务镜像 的三元组,且必须通过 评测门禁 才能进入发布阶段。
关键在于「校验门禁」这一环