

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 部署自定义模型进行按需型推理
<a name="deploy-custom-model-on-demand"></a>

 在使用模型自定义任务创建自定义模型或导入 SageMaker 经过人工智能训练的自定义Amazon Nova模型后，您可以为该模型设置按需推理。使用按需推理时，您只需按实际用量付费，且无需设置预调配计算资源。

要为自定义模型设置按需推理，您需要使用自定义模型部署来部署模型。部署自定义模型后，在提交提示并使用模型推理生成响应时，您需要使用该部署的 Amazon 资源名称（ARN）作为 `modelId` 参数。

 有关按需推理定价的信息，请参阅 [Amazon Bedrock 定价](https://aws.amazon.com/bedrock/pricing)。您可以在以下区域中部署用于按需推理的自定义模型（有关 Amazon Bedrock 支持的区域的更多信息，请参阅 [Amazon Bedrock 端点和配额](https://docs.aws.amazon.com/general/latest/gr/bedrock.html)）：
+ 美国东部（弗吉尼亚州北部）
+ 美国西部（俄勒冈州）

## 部署自定义模型用于按需推理的先决条件
<a name="custom-model-inference-prerequisites"></a>

在部署自定义模型进行按需推理之前，请确保满足以下要求：
+ 您必须使用美国东部（弗吉尼亚州北部）或美国西部（俄勒冈州）区域。
+ 自定义模型的时间必须不早于 2025 年 7 月 16 日。有关支持的模型，请参阅[支持的基础模型](#custom-model-inference-supported-models)。
+ 您的账户必须有权访问您正在部署的模型。有关模型自定义访问权限和安全性的更多信息，请参阅[模型自定义访问权限和安全性](custom-model-job-access-security.md)。
+ 如果模型使用 AWS KMS 密钥加密，则必须具有使用该密钥的权限。有关更多信息，请参阅 [自定义模型加密](encryption-custom-job.md)。

## 支持的基础模型
<a name="custom-model-inference-supported-models"></a>

您可以为以下基础模型设置按需推理：
+ Amazon Nova Lite — 支持区域：美国东部（弗吉尼亚北部）
+ Amazon Nova 2 Lite — 支持区域：美国东部（弗吉尼亚北部）
+ Amazon Nova Micro — 支持区域：美国东部（弗吉尼亚北部）
+ Amazon Nova Pro — 支持区域：美国东部（弗吉尼亚北部）
+ Meta Llama 3.3 70B Instruct — 支持区域：美国西部（俄勒冈州）

## 部署自定义模型
<a name="deploy-custom-model"></a>

您可以使用 Amazon Bedrock 控制台部署自定义模型 AWS Command Line Interface，或 AWS SDKs。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](#use-custom-model-on-demand)。

------
#### [ Console ]

您可以从**自定义模型**页面中部署自定义模型，如下所示。您也可以从**按需自定义模型**页面中部署具有相同字段的模型。要找到此页面，请在导航窗格的**推理**下选择**按需自定义模型**。

**部署自定义模型**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后，在 [https://console.aws.amazon.com/](https://console.aws.amazon.com/bedrock)bedrock 上打开 Amazon Bedrock 控制台。

1. 在左侧导航窗格的**调整**下，选择**自定义模型**。

1. 在**模型**选项卡中，选择想要部署的模型对应的单选按钮。

1. 选择**设置推理**，然后选择**按需部署**。

1. 在**部署详细信息**页面上，提供以下信息：
   + **部署名称**（必填）：输入部署的唯一名称。
   + **描述**（可选）：为部署描述输入描述。
   + **标签**（可选）：为成本分配和资源管理添加标签。

1. 选择**创建**。当部署的状态为 `Active` 时，表示自定义模型已做好按需推理的准备。有关使用自定义模型的更多信息，请参阅[使用部署进行按需型推理](#use-custom-model-on-demand)。

------
#### [ CLI ]

要使用部署自定义模型以进行按需推理 AWS Command Line Interface，请使用带有自定义模型的 Amazon 资源名称 (ARN) 的`create-custom-model-deployment`命令。此命令使用 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html) API 操作。响应包含部署的 ARN。如果部署处于活动状态，您在发出推理请求时需将此 ARN 用作 `modelId`。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](#use-custom-model-on-demand)。

```
aws bedrock create-custom-model-deployment \
--model-deployment-name "Unique name" \
--model-arn "Custom Model ARN" \
--description "Deployment description" \
--tags '[
    {
        "key": "Environment",
        "value": "Production"
    },
    {
        "key": "Team",
        "value": "ML-Engineering"
    },
    {
        "key": "Project",
        "value": "CustomerSupport"
    }
]' \
--client-request-token "unique-deployment-token" \
--region region
```

------
#### [ API ]

要部署自定义模型以进行按需推理，请使用带有自定义模型的 Amazon 资源名称 (ARN) 的 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html)API 操作。响应包含部署的 ARN。如果部署处于活动状态，您在发出推理请求时需将此 ARN 用作 `modelId`。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](#use-custom-model-on-demand)。

以下代码演示了如何使用 SDK for Python (Boto3) 部署自定义模型。

```
def create_custom_model_deployment(bedrock_client):
    """Create a custom model deployment
    Args:
        bedrock_client: A boto3 Amazon Bedrock client for making API calls

    Returns:
        str: The ARN of the new custom model deployment

    Raises:
        Exception: If there is an error creating the deployment
    """

    try:
        response = bedrock_client.create_custom_model_deployment(
            modelDeploymentName="Unique deployment name",
            modelArn="Custom Model ARN",
            description="Deployment description",
            tags=[
                {'key': 'Environment', 'value': 'Production'},
                {'key': 'Team', 'value': 'ML-Engineering'},
                {'key': 'Project', 'value': 'CustomerSupport'}
            ],
            clientRequestToken=f"deployment-{uuid.uuid4()}"
        )

        deployment_arn = response['customModelDeploymentArn']
        print(f"Deployment created: {deployment_arn}")
        return deployment_arn

    except Exception as e:
        print(f"Error creating deployment: {str(e)}")
        raise
```

------

## 使用部署进行按需型推理
<a name="use-custom-model-on-demand"></a>

部署自定义模型后，在提交提示并使用模型推理生成响应时，您需要使用该部署的 Amazon 资源名称（ARN）作为 `modelId` 参数。

有关提出推理请求的信息，请参阅以下主题：
+ [使用模型推理提交提示并生成响应](inference.md)
+ [运行模型推理的先决条件](inference-prereq.md)
+ [使用 API 提交提示并生成响应](inference-api.md)

## 删除自定义模型部署
<a name="delete-custom-model-deployment"></a>

在模型用于按需型推理之后，可以删除部署。删除部署后，就无法将其用于按需型推理，部署删除不会删除底层的自定义模型。

您可以使用 Amazon Bedrock 控制台删除自定义模型部署 AWS Command Line Interface、或 AWS SDKs。

**重要**  
自定义模型部署删除后不可逆。请确保不再需要部署后再进行删除。如果需要再次使用自定义模型进行按需型推理，则必须创建新的部署。

------
#### [ Console ]

**删除自定义模型部署**

1. 在导航窗格中，在**推理**下选择**按需自定义模型**。

1. 选择想要删除的自定义模型部署。

1. 选择**删除**。

1. 在确认对话框中，键入部署名称来确认删除。

1. 选择**删除**确认删除。

------
#### [ CLI ]

要使用删除自定义模型部署 AWS Command Line Interface，请使用带有部署标识符的`delete-custom-model-deployment`命令。此命令使用 [DeleteCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html) API 操作。

```
aws bedrock delete-custom-model-deployment \
--custom-model-deployment-identifier "deployment-arn-or-name" \
--region region
```

------
#### [ API ]

要以编程方式删除自定义模型部署，请使用带有部署的 Amazon 资源名称 (ARN) 或名称的 [DeleteCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_DeleteCustomModelDeployment.html)API 操作。以下代码演示了如何使用 SDK for Python (Boto3) 删除自定义模型部署。

```
def delete_custom_model_deployment(bedrock_client):
    """Delete a custom model deployment

    Args:
        bedrock_client: A boto3 Amazon Bedrock client for making API calls

    Returns:
        dict: The response from the delete operation

    Raises:
        Exception: If there is an error deleting the deployment
    """

    try:
        response = bedrock_client.delete_custom_model_deployment(
            customModelDeploymentIdentifier="Deployment identifier"
        )

        print("Deleting deployment...")
        return response

    except Exception as e:
        print(f"Error deleting deployment: {str(e)}")
        raise
```

------