使用pytorch_lightning的MLFlowLogger对接Azure机器学习工作室抛BAD_REQUEST异常如何解决
错误原因
该错误由MLFlow服务端的强制校验触发:同一个指标名一旦使用同步API提交过数值,后续该指标的所有数值都必须通过同步API提交,不允许混用异步API,反之同理。
之前流程正常运行,近期报错大概率是因为你升级了PyTorch Lightning或MLFlow依赖包,版本更新后MLFlowLogger的默认日志提交逻辑从全同步变为异步,导致新旧提交方式冲突。
修复方案
- 方案1:强制MLFlowLogger使用同步模式提交日志
初始化MLFlowLogger时显式添加log_experiment="sync"参数即可,无需修改其他训练逻辑,兼容性最高,示例代码:
from pytorch_lightning.loggers import MLFlowLogger mlflow_logger = MLFlowLogger( experiment_name="你的实验名称", tracking_uri="你的MLFlow跟踪服务地址", # 新增以下配置强制同步提交 log_experiment="sync" )
- 方案2:清理冲突记录
如果不想切换到同步模式,可以删除本次已经通过同步API提交过指标的MLFlow运行记录,或者直接新建一个实验,避免历史记录的校验冲突,之后保持统一使用异步模式提交即可。 - 方案3:回退依赖版本
如果是近期升级依赖才出现的问题,可以回退到上周末之前正常运行的PyTorch Lightning和MLFlow版本,比如pytorch-lightning<=1.3.8+mlflow<=1.18.0的版本组合就不会触发这个默认逻辑变更的问题。
内容的提问来源于stack exchange,提问作者Michał B
相关产品推荐
相关产品推荐

