切换流水线后VertexAI AutoML Tables评估任务执行失败求助
在Vertex AI控制台对已训练的AutoML Tables模型执行「创建评估」任务时,流水线运行失败,错误日志如下:
vertexevaluation.error.error.UserError: Query Failed: the provided prediction_score_column in not in the BQ table. 400 Unrecognized name: prediction at [2:1] raise UserError( File "/vertexevaluation/shared/bigquery_utils.py", line 77, in query_for_result bigquery_utils.query_for_result(bq_project, query_str) File "/vertexevaluation/shared/pipeline_arg_parser.py", line 711, in set_default_for_regression_forecasting_bigquery prediction_score_column = set_default_for_regression_forecasting_bigquery( File "/vertexevaluation/shared/pipeline_arg_parser.py", line 1244, in build_evaluation_config return pipeline_arg_parser.build_evaluation_config(argv) File "/vertexevaluation/evaluation/evaluation_main.py", line 82, in _get_config_from_args eval_config = _get_config_from_args(argv) File "/vertexevaluation/evaluation/evaluation_main.py", line 239, in evaluation_run evaluation_main.evaluation_run(sys.argv) File "/main.py", line 42, in <module> Traceback (most recent call last):
该问题自将流水线组件从vertex-evaluation-automl-tabular-pipeline切换为evaluation-automl-tabular-pipeline (1.0.0)后出现。预测结果已成功保存至BigQuery表,但流水线失败导致无法在控制台查看评估结果,预期prediction_score_column列由评估任务自动生成,无需手动指定。
确认BigQuery预测表的实际列名
先查询预测表的结构,确认实际生成的预测分数列名称:SELECT * FROM `your-project-id.your-dataset-id.your-prediction-table` LIMIT 10;对于回归任务,列名通常为
predicted_<你的目标列名>;分类任务可能是predicted_<你的目标列名>_scores(多分类)或predicted_<你的目标列名>(二分类,同时附带概率列)。显式指定
prediction_score_column参数
在提交评估流水线任务时,手动添加prediction_score_column参数,将其值设置为上一步查到的实际列名。比如目标列是sales,回归任务的参数值就是predicted_sales。临时回退组件版本
如果新版本组件存在未修复的bug,可以暂时切换回原有的vertex-evaluation-automl-tabular-pipeline组件,验证评估任务是否能正常执行,同时通过GCP支持渠道反馈该问题。核对组件参数文档
查看evaluation-automl-tabular-pipeline (1.0.0)的官方参数说明,确认prediction_score_column是否已变为必填参数,以及默认值是否与AutoML Tables生成的预测列名匹配。
内容的提问来源于stack exchange,提问作者Jash Shah

