[关闭]
@wanghuijiao 2021-07-22T15:39:56.000000Z 字数 4599 阅读 1023

实验管理工具调研

快速调研


0. 前言

按照项目开发周期有如下需求

1. 功能支持

1.1 功能支持比较

功能 特性 MLflow Weights & Biases
本地跟踪 支持离线运行
模型训练 模型参数跟踪
并行运行实验
模型比较与搜素
性能曲线可视化 --
模型复现 记录模型版本 --
版本复现 --
部署封装 模型打包与封装 --
协同管理 项目协同管理 --
查看系统指标 记录训练过程CPU和GPU使用率,用于调整硬件资源,提高效率 ×

1.2 需求与功能支持拆解

从项目开发阶段角度考虑,可以将以上问题分为四类:模型训练,模型复现,部署封装,协同管理。以下将从工具的功能支持角度回答如何解决上述问题。

模型训练

模型复现

部署封装

协同管理

2. 如何使用 MLflow

2.1 MLflow组织结构简介

以下将简要介绍如何用MLflow实现“功能支持比较”表格中的功能特性,为前言部分中模型训练中面临的实际问题提供参考。

2.2 MLflow安装

2.3 模型训练跟踪

  1. import os
  2. from random import random, randint
  3. from mlflow import log_metric, log_param, log_artifacts
  4. if __name__ == "__main__":
  5. # Log a parameter (key-value pair)
  6. log_param("param1", randint(0, 100))
  7. # Log a metric; metrics can be updated throughout the run
  8. log_metric("foo", random())
  9. log_metric("foo", random() + 1)
  10. log_metric("foo", random() + 2)
  11. # Log an artifact (output file)
  12. if not os.path.exists("outputs"):
  13. os.makedirs("outputs")
  14. with open("outputs/test.txt", "w") as f:
  15. f.write("hello world!")
  16. log_artifacts("outputs")
  1. with mlflow.start_run():
  2. mlflow.log_param("x", 1)
  3. mlflow.log_metric("y", 2)
  4. ...

2.4 模型复现

2.5 部署封装

2.6 协同管理

3. Weights & Biases

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注