L5.1 实验与模型管理
三维坐标
layer: L5(MLOps/LLMOps)|level: Senior|pillar: 训推框架本文进入 L5「让模型可工业化交付」的第一站。前面 L3/L4 解决了「怎么把模型练出来、服务好」,但一个真实团队每天会跑出几十上百次实验——超参不同、数据不同、代码版本不同。如果这些实验「跑完即焚」,就没有可复现性、没有最优模型的可追溯证据。本文要解决的核心矛盾是:把混乱的「炼丹」变成有记录、可对比、可晋升的工程流程。
学习目标
- 前置知识:跑通过 L3 训练(知道一次「训练 run」会产出权重、指标曲线、超参配置)与 L4 推理(知道线上服务最终要加载「某一个确定版本」的模型);会写基础 Python;用过
git做版本管理即可。无需任何 MLOps 平台经验。 - 学完产出:① 能画出「一次训练 run 从产生到上线」的生命周期,并说清 Experiment → Run → Params/Metrics/Artifacts 与 Registered Model → Version → Stage 两条数据线为何正交;② 能用 MLflow Tracking 三件套(
log_param/log_metric/log_model)把一组实验结构化落库,并用search_runs按指标自动选出最优 run;③ 能用register_model+transition_model_version_stage把最优模型注册进 Registry 并沿None → Staging → Production → Archived晋升,理解archive_existing_versions为何是「晋升即切线上」的双刃剑;④ 能对比 grid / random / bayes 三种 W&B Sweeps 搜索策略的成本与命中期望,给出「贵实验用贝叶斯、便宜实验网格也无妨」的决策依据;⑤ 亲手跑一个纯 CPU 的 sklearn 实验,在 MLflow UI 里看到可并排对比的实验表与一个处于Production阶段的模型版本。 - 阅读姿势:盯住一条主线——「实验管理是 MLOps 的记账系统,它的全部价值是把『炼丹』的随机性变成可复现、可对比、可追溯、可治理的工程确定性」。无论是 Tracking 的结构化记录,还是 Registry 的阶段晋升,本质都在回答同一组问题:这个模型是怎么来的、哪个最好、线上是哪个、怎么安全换。
背景与现状
实验管理(Experiment Tracking) 与 模型管理(Model Management) 是 MLOps 的「记账系统」。它回答四个工业化的核心问题:这个模型是用哪份代码、哪份数据、哪组超参训出来的(可复现)?同一目标下哪次实验最好(可对比)?线上正在服务的到底是哪个版本(可追溯)?以及如何安全地把新版本推上线、出问题能秒回滚(可治理)。
把这套能力缺失的后果说白了就是:算法同学把准确率写在微信群里,权重文件叫 model_final_v2_真的final.pt,三个月后没人能复现那次 SOTA。MLflow 与 Weights & Biases(W&B) 正是为消灭这种混乱而生。
从产业视角看演进可概括为三句话:
- 早期(脚本时代):实验结果记在 Excel / TensorBoard,只有指标曲线、没有血缘,复现靠运气。
- 中期(Tracking 时代):MLflow Tracking、W&B 把「参数 + 指标 + 产物 + 代码版本」结构化落库,实验可检索、可对比。
- 当下(Registry / 治理时代):MLflow Model Registry、阶段晋升(Stage Promotion)把模型当成有生命周期的「制品」管理——
None → Staging → Production → Archived,与 CI/CD、审批、回滚打通,进入 LLMOps 治理 阶段。
业界信号:mlflow/mlflow 已成为开源 MLOps 事实标准之一,被 Databricks 深度集成;W&B 则在大模型训练团队中几乎是「超参搜索 + 可视化」的默认选择。Tracking + Registry 已是模型团队的「数据库 + Git」级基础设施,而非可选项。
原理与架构
理解实验与模型管理,最有效的方式是沿着 「一次训练 run 从产生到上线」的生命周期,看它如何被结构化记录、注册、晋升。