核心要点

  • 可复现:代码+数据+超参+环境四要素全部钉死版本,才能复现同一结果,否则实验无法对照。

  • 数据版本化:DVC、lakeFS、Delta Lake,用内容哈希追踪大数据集,Git 存指针、对象存储存数据。

  • 模型注册:Model Registry(MLflow/W&B)管理模型版本、阶段(staging/prod)、血缘与审批。

  • 可审计可回滚:出问题时定位是哪版数据/模型导致,并一键回滚到已知良好版本。

标准回答

为什么重要

ML 的产出不只由代码决定,还由数据、超参、环境共同决定。只版本化代码无法复现结果——同一脚本喂不同数据集会得到完全不同的模型。版本管理解决三件事:可复现(精确重跑历史实验)、可审计(追溯模型由哪批数据训练,满足合规)、可回滚(线上出问题快速退回已知良好版本)。

数据版本化

大数据集不适合直接进 Git。DVC 用内容哈希把数据指针存进 Git、实体存对象存储;lakeFS / Delta Lake 给数据湖提供类 Git 的分支、提交、回滚能力,支持「时间旅行」回看任意历史快照。

模型与实验管理

Model Registry(如 MLflow、Weights & Biases)登记模型版本,标注 staging/production 阶段,记录指标、超参与数据血缘,支持审批晋升与回滚。实验追踪工具把每次跑的参数、指标、产物自动归档,便于横向对比。

参见 MLOps 版本管理实战流水线设计

常见误区

⚠️ 常见踩坑

别把大数据集直接塞进 Git(仓库膨胀、克隆缓慢)——应用 DVC/lakeFS 存指针。也别只存模型权重却不记数据与超参血缘:没有「这版模型用了哪批数据、什么参数」就既无法复现也无法审计。

追问

追问 1DVC 是怎么工作的?

DVC 对数据文件计算内容哈希,在 Git 里只提交 .dvc 指针文件(含哈希与远端位置),真实数据推到对象存储(S3/GCS)。git checkout 切到某版本时,dvc pull 按指针拉回对应数据,从而让数据与代码版本对齐、可复现。

追问 2模型注册表(Model Registry)解决什么问题?

集中管理模型生命周期:登记版本、标注阶段(staging/production/archived)、记录指标与数据血缘、控制晋升审批与回滚。让「线上跑的是哪一版、谁批准、用什么数据训的」可查可控,是模型治理与合规的核心组件。

追问 3怎样保证一次训练完全可复现?

钉死四要素:代码(Git commit)、数据(DVC/lakeFS 版本)、超参与随机种子、环境(容器镜像+依赖锁定)。再固定库版本与确定性算子(如关闭非确定 CUDA kernel)。把这些元数据随实验一并记录,才能精确重跑。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • Weights & Biases

    AI 开发者平台,用于模型训练、微调、实验管理和生产部署,支持从实验到生产的全流程管理。

  • MLflow

    开源 AI 工程平台,26K+ stars。面向 Agent、LLM 和 ML 模型的端到端生命周期管理平台,支持实验追踪、模型注册、部署和监控