如何将之前的 运行 更新为 MLFlow?
How to update a previous run into MLFlow?
我想更新之前使用 MLFlow 完成的运行,即。 changing/updating 一个参数值以适应实现中的变化。典型用例:
- 使用参数 A 记录运行,并在很久以后记录参数 A 和 B。使用默认值更新先前运行的参数 B 的值会很有用。
- “专门化”一个参数。使用布尔标志作为参数实现模型。更新实现以取而代之的是字符串。现在我们需要更新之前运行的参数值,以使其与新行为保持一致。
- 更正之前运行中记录的错误参数值。
要丢弃整个实验并不总是那么容易,因为我需要保留以前的运行以用于统计目的。我也不希望只为单个新参数生成新实验,以保留单个运行数据库。
最好的方法是什么?
要添加或更正现有 运行 的参数、指标或工件,请将 run_id 而不是 experiment_id 传递给 mlflow.start_run 函数
with mlflow.start_run(run_id="your_run_id") as run:
mlflow.log_param("p1","your_corrected_value")
mlflow.log_metric("m1",42.0) # your corrected metrics
mlflow.log_artifact("data_sample.html") # your corrected artifact file
您可以在任何 MLflow 运行 完成后随时更正、添加或删除它。从 UI 或使用 mlflow.search_runs.
获取 run_id
来源:https://towardsdatascience.com/5-tips-for-mlflow-experiment-tracking-c70ae117b03f
MLflow API 不支持更新现有参数值,请参阅 this。
但是,您可以使用后门来实现重写现有参数值的目的。但谨慎使用。
我想更新之前使用 MLFlow 完成的运行,即。 changing/updating 一个参数值以适应实现中的变化。典型用例:
- 使用参数 A 记录运行,并在很久以后记录参数 A 和 B。使用默认值更新先前运行的参数 B 的值会很有用。
- “专门化”一个参数。使用布尔标志作为参数实现模型。更新实现以取而代之的是字符串。现在我们需要更新之前运行的参数值,以使其与新行为保持一致。
- 更正之前运行中记录的错误参数值。
要丢弃整个实验并不总是那么容易,因为我需要保留以前的运行以用于统计目的。我也不希望只为单个新参数生成新实验,以保留单个运行数据库。
最好的方法是什么?
要添加或更正现有 运行 的参数、指标或工件,请将 run_id 而不是 experiment_id 传递给 mlflow.start_run 函数
with mlflow.start_run(run_id="your_run_id") as run:
mlflow.log_param("p1","your_corrected_value")
mlflow.log_metric("m1",42.0) # your corrected metrics
mlflow.log_artifact("data_sample.html") # your corrected artifact file
您可以在任何 MLflow 运行 完成后随时更正、添加或删除它。从 UI 或使用 mlflow.search_runs.
获取 run_id来源:https://towardsdatascience.com/5-tips-for-mlflow-experiment-tracking-c70ae117b03f
MLflow API 不支持更新现有参数值,请参阅 this。
但是,您可以使用后门来实现重写现有参数值的目的。但谨慎使用。