Azure ML中AutoMLPipelineBuilder批量推理(预测)阶段报错求助
Azure ML 批量推理流水线报错解决方案
我在Azure ML中搭建的训练流水线运行正常,但批量推理阶段始终报错。相关代码如下:
训练阶段代码
training_pipeline_steps = AutoMLPipelineBuilder.get_many_models_train_steps( experiment=experiment, train_data=full_dataset, compute_target=compute_target, node_count=1, process_count_per_node=4, train_pipeline_parameters=hts_parameters, run_invocation_timeout=3900, )
批量推理阶段代码
from azureml.train.automl.runtime._hts.hts_parameters import HTSInferenceParameters inference_parameters = HTSInferenceParameters( hierarchy_forecast_level="Material", # 该设置针对当前数据集,需根据你的数据集调整 allocation_method="proportions_of_historical_average", ) steps = AutoMLPipelineBuilder.get_many_models_batch_inference_steps( experiment=experiment, #inference_data=registered_inference, inference_data = full_dataset, compute_target=compute_target, inference_pipeline_parameters=inference_parameters, node_count=1, process_count_per_node=4, arguments=["--forecast_quantiles", 0.1, 0.9], )
错误详情
推理阶段报错提示:The hierarchy forecast level 'Material' is not present in the inference data.
排查与修复方案
核对推理数据列名
确认推理使用的full_dataset中存在大小写完全匹配的Material列。可通过full_dataset.take(1).to_pandas_dataframe()导出数据样例,直接查看列名与结构。对齐训练与推理数据的层级结构
推理数据必须包含训练时hts_parameters定义的所有层级列,且hierarchy_forecast_level指定的Material必须是层级结构中的有效节点,不能存在拼写或层级逻辑错误。使用正确的推理数据集
建议启用注释中的registered_inference数据集,训练全量数据可能包含标签列、训练专属字段,会导致推理阶段数据结构不兼容。检查参数配置
确认HTSInferenceParameters中的hierarchy_forecast_level值,与训练阶段hts_parameters内定义的层级节点名称完全一致,避免拼写错误。查看详细运行日志
登录Azure ML工作室,打开批量推理流水线的运行记录,查看报错步骤的完整日志,排查是否存在数据格式、权限或其他隐藏问题。
内容的提问来源于stack exchange,提问作者JMTaverne
相关产品推荐
相关产品推荐

