2、环境准备:安装Python、DVC、MLflow,配置Git仓库,初始化项目结构

说实话,模型版本管理这件事,很多人一开始都栽在环境配置上。

我见过不少团队,工具装了一堆,结果版本没管好,环境先乱成一锅粥。所以这一章,咱们把地基打牢。

2.1 安装Python:选对版本,省一半心

Python版本这事,我踩过坑。以前图新鲜装了Python 3.12,结果好几个库不兼容,折腾了一下午。

我个人建议:用Python 3.9或3.10。稳,而且DVC和MLflow都支持得很好。

推荐版本:Python 3.9.13 或 3.10.11

安装步骤很简单:

  1. python.org 下载对应版本
  2. 安装时记得勾选「Add Python to PATH」
  3. 打开终端,验证一下:
python --version
# 输出:Python 3.9.13

小技巧:我习惯用 pyenv 管理多个Python版本。万一项目需要不同版本,切换起来很方便。

2.2 安装DVC:数据版本控制的核心

DVC 是什么?说白了,它就是给数据文件做的Git。你想想看,代码能用Git管,模型文件、数据集为什么不行?

安装命令就一行:

pip install dvc

验证安装:

dvc --version
# 输出:3.x.x

注意:我曾经遇到过DVC和Git版本不匹配的问题。建议Git版本在2.25以上。否则DVC的某些功能会报错。

2.3 安装MLflow:实验追踪与模型注册

MLflow 这东西,我一开始觉得「不就是个日志工具吗?」后来真香了。它能记录每次实验的参数、指标、模型文件,还能对比不同版本的效果。

安装:

pip install mlflow

验证:

mlflow --version
# 输出:2.x.x

我的习惯:MLflow 默认用SQLite存数据,小项目够用。团队协作的话,建议换成PostgreSQL或MySQL。

2.4 配置Git仓库:版本管理的起点

Git 是这一切的基础。没有Git,DVC和MLflow就像没有地基的房子。

初始化仓库:

git init model_version_demo
cd model_version_demo

配置用户信息(第一次用Git的话):

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

重要:记得创建 .gitignore 文件。把数据集、模型文件、临时文件都忽略掉。DVC会单独管理它们。

一个典型的 .gitignore 内容:

# 数据文件
data/
*.csv
*.pkl

# 模型文件
models/
*.h5
*.pt

# 临时文件
__pycache__/
*.pyc
.DS_Store

2.5 初始化项目结构:让一切井井有条

项目结构这事,我见过太多「一团乱麻」的案例。模型文件、代码、数据混在一起,找起来头疼。

我推荐的结构:

model_version_demo/
├── data/               # 原始数据
├── models/             # 训练好的模型
├── notebooks/          # 实验笔记
├── src/                # 源代码
│   ├── train.py
│   ├── evaluate.py
│   └── utils.py
├── configs/            # 配置文件
│   └── params.yaml
├── .gitignore
├── README.md
└── requirements.txt

创建目录:

mkdir data models notebooks src configs

初始化DVC:

dvc init

这会生成一个 .dvc/ 目录,DVC用它来跟踪数据文件的变化。

避坑指南:我曾经在 dvc init 之后忘了提交到Git。结果同事拉代码时,DVC配置全丢了。记住:dvc init 后立刻 git add .dvc/ 并提交。

2.6 核心逻辑:一张图看懂

下面这张图,是我自己总结的。环境准备阶段,各个工具之间的关系一目了然。

环境准备核心逻辑图 Git 仓库 代码版本控制 DVC 数据 & 模型版本控制 MLflow 实验追踪 & 模型注册 Python 环境 运行基础 Git 管理代码,DVC 管理数据,MLflow 管理实验,Python 是运行基础

2.7 验证环境:确保一切就绪

最后一步,跑个简单的测试。确保所有工具都能正常工作。

# 检查 Python
python -c "import sys; print(sys.version)"

# 检查 DVC
dvc --version

# 检查 MLflow
mlflow --version

# 检查 Git
git --version

如果都输出了版本号,恭喜你,环境准备好了。

我的经验:把上面这些命令写到一个 check_env.sh 脚本里。每次换机器或新同事加入,跑一遍就行。省事。

嗯,到这里,环境准备就告一段落了。工具都装好了,项目结构也搭起来了。接下来,就可以正式开始玩模型版本管理了。


专注资料整理