mlflow

MLflow 实验跟踪与模型管理

补充说明

MLflow 提供实验跟踪、参数与指标记录、模型打包、模型注册和项目复现。AI 团队常用它对比训练实验、管理模型版本和衔接部署。

常用示例

启动服务:

mlflow server \
  --backend-store-uri postgresql://mlflow:***@postgres/mlflow \
  --default-artifact-root s3://mlflow-artifacts \
  --host 0.0.0.0 --port 5000

设置跟踪地址:

export MLFLOW_TRACKING_URI=http://mlflow:5000

记录实验:

import mlflow

mlflow.set_experiment("qwen-lora")
with mlflow.start_run():
    mlflow.log_param("lora_rank", 8)
    mlflow.log_metric("loss", 1.23, step=1)
    mlflow.log_artifact("config.yaml")
    mlflow.pytorch.log_model(model, "model")

查看实验:

mlflow experiments list
mlflow runs list --experiment-id 1

注册模型:

python - <<'PY'
import mlflow
mlflow.register_model("runs:/<RUN_ID>/model", "qwen-lora")
PY

易错点与排错

读完自测

合上页面,先回答,再展开对照。

  1. 多用户场景下用本地文件作 backend store 会有什么问题?
  2. MLFLOW_TRACKING_URI 未设置会怎样?
  3. artifact 目录配置要注意什么?
答案
  1. 多用户并发时容易出现数据库锁冲突。不建议用本地文件作为多人共享的 backend store。
  2. 实验会写到本地 mlruns,而不是预期的跟踪服务器。应先 export 正确的 MLFLOW_TRACKING_URI。
  3. artifact 目录需要共享存储,否则其他节点看不到模型文件。也不要把大文件记录到参数或指标里。