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

如何在SageMaker Pipeline中单独运行训练步骤并传入S3路径

SageMaker Pipeline跳过处理步骤,直接用S3路径作为训练输入

完全可以直接传入S3存储位置替代前序处理步骤的输出,实现只运行训练步骤的需求。下面是具体的实现方式:

方式一:直接硬编码S3路径

把原来引用step_process输出属性的部分,替换成你实际的S3 URI字符串即可,示例代码如下:

from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.inputs import TrainingInput
from sagemaker.workflow.steps import TrainingStep
from sagemaker.xgboost.estimator import XGBoost

pipeline_session = PipelineSession()

xgb_estimator = XGBoost(..., sagemaker_session=pipeline_session)

# 直接指定S3路径
step_args = xgb_estimator.fit(
    inputs={
        "train": TrainingInput(
            s3_data="s3://your-bucket/path/to/training-data",
            content_type="text/csv"
        ),
        "validation": TrainingInput(
            s3_data="s3://your-bucket/path/to/validation-data",
            content_type="text/csv"
        )
    }
)

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=step_args,
)

方式二:用Pipeline参数动态指定(推荐)

如果需要在运行Pipeline时灵活修改S3路径,建议使用Pipeline的Parameter来定义,这样不需要修改代码就能切换数据来源:

from sagemaker.workflow.pipeline_context import PipelineSession
from sagemaker.inputs import TrainingInput
from sagemaker.workflow.steps import TrainingStep
from sagemaker.xgboost.estimator import XGBoost
from sagemaker.workflow.parameters import ParameterString

pipeline_session = PipelineSession()

# 定义S3路径参数
train_data_s3_uri = ParameterString(name="TrainDataS3Uri", default_value="s3://your-bucket/path/to/training-data")
val_data_s3_uri = ParameterString(name="ValidationDataS3Uri", default_value="s3://your-bucket/path/to/validation-data")

xgb_estimator = XGBoost(..., sagemaker_session=pipeline_session)

step_args = xgb_estimator.fit(
    inputs={
        "train": TrainingInput(
            s3_data=train_data_s3_uri,
            content_type="text/csv"
        ),
        "validation": TrainingInput(
            s3_data=val_data_s3_uri,
            content_type="text/csv"
        )
    }
)

step_train = TrainingStep(
    name="TrainAbaloneModel",
    step_args=step_args,
)

关键说明

  • TrainingInput的s3_data参数接受任何合法的S3 URI,不管是静态字符串还是Pipeline参数,只要路径下的文件格式符合训练任务要求(这里是CSV),SageMaker就能正常读取。
  • 这种方式下,你可以完全移除step_process相关的代码,Pipeline只会执行step_train步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:28:06