如何在MLRun中记录附带指标与图表的模型日志?
MLRun 实验追踪记录模型可关联的内容类型
用MLRun的实验追踪功能记录模型时,可绑定的内容覆盖整个训练流程的核心产出,你要记录accuracy、F1这类指标还有loss趋势图的需求完全可以满足,具体支持关联的内容分为以下几类:
- 标量评估指标:accuracy、F1值、精确率、召回率、AUC、最终训练/验证loss这类单值评估结果都能直接绑定到对应模型版本上,后续跨实验对比版本效果的时候,直接就能拉取数值排序、比对,不用自己翻零散日志找结果。
- 过程趋势类可视化内容:loss随step/epoch变化的曲线、准确率迭代趋势、学习率衰减曲线这类过程类图表都支持关联。你可以直接逐轮上报原始的时序数值,MLRun会自动生成对应的趋势折线图;也可以直接上传Matplotlib、Plotly绘制好的成品图,统一存在模型关联的存储路径下,不用自己本地单独存图管版本。
- 训练溯源元数据:训练用到的所有超参数(学习率、batch size、训练轮次、网络结构配置)、训练集的版本标识、运行环境依赖(Python包版本、CUDA版本)、训练起止时间这些溯源信息都能绑定,后续需要复现模型效果的时候直接拉取全量配置就行,不用翻历史记录拼凑参数。
- 附属产出文件:训练过程生成的混淆矩阵、特征重要性排序图、自定义评估报告、推理样例、模型说明文档这类任意格式的文件,都能作为附属件和模型绑定存储。
- 自定义标签与别名:可以给模型打自定义标签,比如
best-f1、baseline-v1、prod-candidate,后续检索模型、做版本流转的时候直接按标签筛选就行,不用挨个翻实验记录。
你提到的两个明确需求实现逻辑很简单:
- 记录accuracy、F1这类评估指标,在训练脚本里算出指标值后,调用
log_model接口时直接把指标键值对塞到metrics参数里即可,示例代码:
context.log_model( key="cls_model_v2", model_file="trained_model.pth", metrics={ "accuracy": 0.93, "f1_score": 0.90, "val_final_loss": 0.19 } )
- 记录loss变化趋势可以选两种方式:要么每轮训练结束后上报对应step的loss值,MLRun会自动生成随训练进程变化的趋势图;要么把你自己绘制好的loss曲线作为artifact上传,关联到对应模型上。逐轮上报自动生成曲线的示例代码:
for epoch in range(total_epochs): train_loss = run_train_step(...) # 传入step参数,平台会自动生成迭代趋势曲线 context.log_result("train_loss", train_loss, step=epoch) val_loss = run_val_step(...) context.log_result("val_loss", val_loss, step=epoch)
内容的提问来源于stack exchange,提问作者Nick Schenone
相关产品推荐
相关产品推荐

