You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure ML Python SDK v2创建含AutoML组件的ML管道报错解决

错误原因

automl.regression()方法直接调用返回的是独立的RegressionJob作业实例,不是可在DSL管道中调用的组件对象,你提前在管道外初始化它再放到管道函数里加括号传参,自然会报不可调用的类型错误。这个功能在Azure Machine Learning Python SDK v2中已经正式支持,不需要自己封装自定义组件。

正确实现步骤

你不需要在管道外提前定义AutoML训练组件,直接在@dsl.pipeline装饰的管道函数内部初始化AutoML作业,绑定上游步骤的输出作为训练/验证输入即可。另外你原有代码存在配置错误:accuracy是分类任务的评估指标,不能用在回归任务上。

修正后的可运行代码示例:

from azure.ai.ml import dsl, Input
from azure.ai.ml import automl

# 前置依赖:已初始化MLClient实例ml_client、定义好数据预处理组件data_prep_component、获取计算目标compute_target、准备好输入数据集data

@dsl.pipeline(
    compute=args.compute_name,
    description="AutoML训练管道",
)
def automl_pipeline(
    pipeline_job_data_input,
    pipeline_job_test_size,
):
    # 数据预处理步骤
    data_prep_job = data_prep_component(
        data=pipeline_job_data_input,
        test_size=pipeline_job_test_size,
    )

    # 管道内直接初始化AutoML回归作业,绑定上游输出
    train_job = automl.regression(
        compute=compute_target,
        experiment_name=args.experiment_name,
        training_data=data_prep_job.outputs.train_data,
        validation_data=data_prep_job.outputs.test_data,
        target_column_name=args.target,
        primary_metric="r2_score", # 回归任务使用对应指标,不要用分类的accuracy
        enable_model_explainability=True,
        # 可按需追加训练超时、允许模型列表、交叉验证配置等AutoML参数
    )

    return {
        "pipeline_job_train_data": data_prep_job.outputs.train_data,
        "pipeline_job_test_data": data_prep_job.outputs.test_data,
        "pipeline_job_model": train_job.outputs.best_model,
    }

# 实例化管道
pipeline = automl_pipeline(
    pipeline_job_data_input=Input(type="uri_folder", path=data.path),
    pipeline_job_test_size=0.2,
)

# 提交管道作业
pipeline_job = ml_client.jobs.create_or_update(
    pipeline,
    experiment_name="test_pipeline",
)
# 可选:实时查看作业运行日志
ml_client.jobs.stream(pipeline_job.name)
补充说明
  • 分类任务替换为automl.classification()、时序预测任务替换为automl.forecasting()即可,注意匹配对应任务支持的primary_metric
  • AutoML步骤输出的best_model是最优训练模型,可直接传给下游的模型评估、批量推理、模型注册步骤,不需要额外格式转换
  • 该用法是SDK v2原生支持的管道能力,AutoML步骤和自定义命令组件、并行组件的使用逻辑完全一致,不需要额外封装。

内容的提问来源于stack exchange,提问作者Jun Choi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:24:19