跳转到内容

模型 CI/CD 与数据版本

软件工程的 CI/CD(提交 → 测试 → 发布)在模型世界有对应物:数据/代码变更 → 触发评测 → 门禁 → 注册发布。但模型 CI/CD 有两个软件没有的特性:实验成本极高(一次"构建"是数天数十万美元)与数据是资产(版本管理比代码更重要)。本章讲清楚模型 CI/CD 的完整形态与数据版本管理。

与软件 CI/CD 的对照:

软件 CI/CD模型 CI/CD
触发每次提交不是每次提交(成本高)
构建编译(分钟)训练(天、数万美元)
测试单元/集成测试评测(基准 + 业务集)
发布部署注册 + 灰度
回滚版本切换版本切换(秒级,同构)

模型的"构建"太贵,CI 的形态完全不同:

机制软件类比模型世界的做法
快速反馈单元测试(分钟)小规模冒烟训练(短跑验证代码正确性,分钟–小时)
回归测试集成测试固定小基准回归(防止改动劣化已有能力)
完整验证发布前测试中规模实验 + 全量评测(发布门禁)
发布部署注册 + 灰度(见模型注册)

冒烟训练是模型 CI 的核心发明:每次代码/配置变更,先跑 100 步小模型(分钟级),验证"能跑、loss 正常下降、吞吐正常"——把"跑了三天才发现代码 bug"变成"十分钟发现"。

代码/配置变更(PR)
↓
自动冒烟:小模型 100 步(正确性:能跑、loss 降、吞吐正常)
↓
自动回归:固定小基准(防止改动劣化)
↓
人工评审(配置 diff + 冒烟报告)
↓
合并 → 触发实验(实验管理,见[实验管理](/platform-mlops/01-lifecycle/experiment-tracking.md))
↓
实验产出 → 全量评测 → 门禁 → 注册(发布门禁)

门禁的自动化程度:冒烟与回归全自动(机器判),全量评测自动跑 + 人工判(业务决策)——全自动判业务质量是危险的(评测盲区,见评测基础设施)。

模型的一半是数据——数据变更的追溯与版本管理是模型 CI/CD 的另一半:

资产版本化方式
原始语料数据集快照(hash/版本号),来源与清洗规则记录
清洗/tokenize 后的 token 流数据集版本(见数据管道)+ tokenize 配置版本
配比/混合配方配方是配置的一部分(进实验元数据)
SFT/偏好数据数据集版本 + 质量报告

数据版本的核心原则:

一、不可变快照:训练用的数据是快照(可复现的基础)——改数据 = 新版本,不覆盖。

二、血缘完整:每个实验/模型记录数据版本——模型出问题能查到数据,数据出问题能查到模型(见模型注册的血缘)。

三、变更即实验:数据变更(新语料、改清洗)应该走与代码变更相同的流程(冒烟 → 回归 → 实验)——"数据变更随口就改"是最大的隐性风险。

传统 ML(推荐/搜索)的特征工程有对应物:

  • 特征管道(特征计算逻辑)的版本化
  • embedding 模型(检索/推荐的 encoder)的版本——embedding 模型更新 = 全库重算(一致性约束)
  • 特征/标签的离线在线一致性(训练-服务偏差的预防)
  1. 冒烟训练进 CI:每次变更 100 步小模型(正确性 + 吞吐)
  2. 固定小基准回归:防劣化
  3. 数据变更走与代码相同的流程;数据快照不可变
  4. 血缘三线:代码 commit + 数据版本 + 配置快照(见实验管理)
  5. 门禁分级:机器判(冒烟/回归)+ 人工判(业务质量)
  6. embedding 更新的全库一致性约束
  • 模型 CI/CD 与软件同构但形态不同:构建贵(训练),CI 的核心是冒烟训练(100 步小模型,把三天后的 bug 变成十分钟发现)。
  • 流水线:变更 → 冒烟 → 回归 → 评审 → 实验 → 评测门禁 → 注册发布。
  • 门禁分级:机器判正确性(冒烟/回归),人工判业务质量(全量评测 + 决策)。
  • 数据是资产:不可变快照、血缘完整、变更即实验(与代码同流程)。
  • 血缘三线(代码 + 数据 + 配置)是复现、排查、合规的共同基础。
  • embedding/特征有额外的一致性约束:更新 = 全库重算。