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

SageMaker Pipeline处理步骤安装额外包遇ValueError报错

问题解决:SageMaker Pipeline ProcessingStep 报错修复

错误原因

你当前的代码错误在于将sklearn_processor.run()的返回值传给了ProcessingStep的processor参数。实际上processor.run()返回的是处理任务的预构建参数对象(对应step_args参数),而非处理器实例本身。ProcessingStep要求只能传入processor(处理器实例)或step_args(预构建运行参数)其中之一,两者不能同时提供,这就是报错的根源。

修正方案

方案一:使用step_args参数传递运行配置

sklearn_processor = FrameworkProcessor(
    estimator_cls=SKLearn,
    framework_version='0.23-1',
    instance_type="ml.t3.medium",
    instance_count=1,
    base_job_name="sklearn-abalone-process",
    sagemaker_session=sagemaker_session,
    role=role
)

outputs = [
    ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
    ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
    ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
]

# 先获取处理任务的运行参数
process_args = sklearn_processor.run(
    outputs=outputs,
    code="pre-process.py",
    dependencies=["/home/sagemaker-user/dependencies/requirements.txt"]
)

# 将参数传入step_args而非processor
step_process = ProcessingStep(
    name="Preprocess_Data",
    step_args=process_args
)

方案二:直接传递处理器实例+配置参数(推荐)

这种写法更贴合SageMaker Pipeline的声明式设计,代码结构更清晰:

sklearn_processor = FrameworkProcessor(
    estimator_cls=SKLearn,
    framework_version='0.23-1',
    instance_type="ml.t3.medium",
    instance_count=1,
    base_job_name="sklearn-abalone-process",
    sagemaker_session=sagemaker_session,
    role=role
)

outputs = [
    ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
    ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation"),
    ProcessingOutput(output_name="test", source="/opt/ml/processing/test")
]

step_process = ProcessingStep(
    name="Preprocess_Data",
    processor=sklearn_processor,
    code="pre-process.py",
    outputs=outputs,
    dependencies=["/home/sagemaker-user/dependencies/requirements.txt"]
)

补充说明

两种方案都能解决报错问题,方案二更适合Pipeline的开发模式。另外,你指定的requirements.txt中的依赖包会在处理任务启动时自动安装,满足后续代码的包需求。

内容的提问来源于stack exchange,提问作者Avinash Srivastav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 04:42:38