跳转到内容

实验管理与代码工具

版本控制的研究用法(分支对应实验、tag 对应论文版本)、配置管理(Hydra/OmegaConf)、实验追踪(W&B/MLflow/TensorBoard)、环境(conda/uv + Docker)。本章给出一个最小组合。

Git 在研究代码里的用法与工程不同(研究代码的定位见研究代码的组织):

  • 分支对应实验:每个实验分支(exp/xxx)对应一个配置变体,合并回 main 的标准是"这个结论要保留";
  • tag 对应论文版本:每个论文表格对应一个 git tag(paper-v1-table2)——rebuttal 与 camera-ready 时能精确回到产生该表格的代码;
  • commit 信息写实验语义("fix eval split for table 3"),不写"update"。

配置文件进版本控制,密钥不进:configs/ 全部入库,密钥/路径用环境变量与 .env(gitignore)——配置的可追溯性是可复现性的核心(见可复现性)。

Hydra/OmegaConf(Python 生态)是配置管理的标准组合:

  • 每个实验一个 YAML 配置,派生实验只改差异字段(对比实验不漂移的前提,见实验设计);
  • 配置的组合与覆盖(命令行覆盖单个字段用于快速实验,正式实验走配置文件);
  • 运行时自动保存配置快照到结果目录——每个结果的配置可追溯。

W&B / MLflow / TensorBoard 的选择(对比见算力与实验管理):

  • W&B:团队协作、跨实验对比、超参搜索集成,托管服务(数据在外部服务);
  • MLflow:开源自托管、与工程生态集成好;
  • TensorBoard:轻量、本地、单实验可视化为主。

最低要求(无论哪个工具):配置全量记录、关键指标、git commit、失败信息——"可追溯"比"功能全"重要(记录规范见可复现性)。

conda/uv 管依赖 + Docker 锁环境:

  • conda/uv lockfile 锁定 Python 依赖版本;
  • Docker 镜像锁定系统级依赖(CUDA、驱动)——容器保证审稿人能跑起来(artifact 的标准要求,见开源、复现包与 Artifact 评估);
  • 环境文件进版本控制,与代码同生命周期。

git(分支=实验,tag=论文表格)+ Hydra(配置)+ W&B 或 MLflow(追踪)+ conda/uv + Docker(环境)。组合里的每个工具都有替代品,关键是组合覆盖了"配置、记录、环境"三个可复现性支柱——工具的完整与否不决定可复现性,纪律才决定。

  • 每个论文表格对应一个 git tag
  • 配置文件进版本控制,密钥不进
  • 容器保证审稿人能跑起来