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

如何通过SageMaker Pipeline部署Hugging Face模型并集成代码?

将Hugging Face模型部署集成到SageMaker Pipeline

你提供的单步部署代码如下:

from sagemaker.huggingface import HuggingFaceModel
import sagemaker

role = sagemaker.get_execution_role()

# Hub Model configuration
hub = {
    'HF_MODEL_ID':'siebert/sentiment-roberta-large-english',
    'HF_TASK':'text-classification'
}

# create Hugging Face Model Class
huggingface_model = HuggingFaceModel(
    transformers_version='4.17.0',
    pytorch_version='1.10.2',
    py_version='py38',
    env=hub,
    role=role, 
)

# deploy model to SageMaker Inference
predictor = huggingface_model.deploy(
    initial_instance_count=1,
    instance_type='ml.g4dn.xlarge'
)

要将这段逻辑集成到SageMaker Pipeline,需要把单步操作拆解为Pipeline的可编排步骤,以下是具体实现方法:

1. 核心依赖与组件

需要导入SageMaker Pipeline的核心模块,包括用于编排步骤的Pipeline、封装模型创建的ModelStep,以及部署模型的DeployModelStep。

2. 完整Pipeline集成代码

import sagemaker
from sagemaker.huggingface import HuggingFaceModel
from sagemaker.workflow.pipeline import Pipeline
from sagemaker.workflow.model_step import ModelStep
from sagemaker.workflow.steps import DeployModelStep

# 获取执行角色
role = sagemaker.get_execution_role()

# Hugging Face Hub模型配置
hub_config = {
    'HF_MODEL_ID': 'siebert/sentiment-roberta-large-english',
    'HF_TASK': 'text-classification'
}

# 1. 定义Hugging Face模型
hf_model = HuggingFaceModel(
    transformers_version='4.17.0',
    pytorch_version='1.10.2',
    py_version='py38',
    env=hub_config,
    role=role,
)

# 2. 创建模型步骤(封装模型定义)
model_step = ModelStep(
    name="Create-HuggingFace-Model",
    step_args=hf_model.create(instance_type="ml.m5.large")  # 指定用于模型创建的实例类型
)

# 3. 创建部署步骤
deploy_step = DeployModelStep(
    name="Deploy-HuggingFace-Model",
    model=model_step.properties.ModelName,
    initial_instance_count=1,
    instance_type="ml.g4dn.xlarge",
)

# 4. 构建Pipeline
pipeline = Pipeline(
    name="HuggingFace-Sentiment-Pipeline",
    steps=[model_step, deploy_step],
)

# 5. 提交并运行Pipeline
pipeline.upsert(role_arn=role)
execution = pipeline.start()

# 查看运行状态
execution.describe()

3. 关键说明

  • ModelStep:负责在Pipeline中实例化HuggingFace模型,需指定用于模型创建的实例类型(通常用低成本的ml.m5系列即可)。
  • DeployModelStep:定义模型部署的实例配置,参数和单步部署对应,但通过Pipeline属性引用模型名称。
  • Pipeline运行:通过upsert创建或更新Pipeline,start触发执行,可通过execution.describe()跟踪运行状态。

可选:添加模型注册步骤

如果需要将模型注册到SageMaker模型注册表,可新增RegisterModelStep:

from sagemaker.workflow.step_collections import RegisterModel

# 定义模型注册步骤
register_step = RegisterModel(
    name="Register-HuggingFace-Model",
    model=model_step.properties.ModelName,
    content_types=["application/json"],
    response_types=["application/json"],
    inference_instances=["ml.g4dn.xlarge"],
    transform_instances=["ml.m5.large"],
    model_package_group_name="huggingface-sentiment-group",
)

# 更新Pipeline步骤顺序
pipeline = Pipeline(
    name="HuggingFace-Sentiment-Pipeline",
    steps=[model_step, register_step, deploy_step],
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:35:22