

# 部署自定义模型进行按需型推理


通过模型自定义作业（微调、蒸馏或持续预训练）成功创建自定义模型后，可以为模型设置按需型推理。

要为自定义模型设置按需型推理，请使用自定义模型部署来部署模型。部署自定义模型后，请使用部署的 Amazon 资源名称 (ARN) 作为 `InvokeModel` 或 `Converse` API 操作中的 `modelId` 参数。您可以通过 Amazon Bedrock 功能（例如演示平台、代理和知识库），将已部署的模型用于按需型推理。

**Topics**
+ [

## 支持的模型
](#custom-model-inference-supported-models)
+ [

# 部署自定义模型
](deploying-custom-model.md)
+ [

# 使用部署进行按需型推理
](use-custom-model-on-demand.md)
+ [

# 删除自定义模型部署
](delete-custom-model-deployment.md)

## 支持的模型


您可以为以下模型设置按需型推理：
+ Amazon Nova Canvas
+ Amazon Nova Lite
+ Amazon Nova Micro
+ Amazon Nova Pro

# 部署自定义模型


您可以使用 Amazon Bedrock 控制台、AWS Command Line Interface 或 AWS SDK 部署自定义模型。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)。

**Topics**
+ [

## 部署自定义模型（控制台）
](#deploy-custom-model-console)
+ [

## 部署自定义模型 (AWS Command Line Interface)
](#deploy-custom-model-cli)
+ [

## 部署自定义模型 (AWS SDK)
](#deploy-custom-model-sdk)

## 部署自定义模型（控制台）


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

**部署自定义模型**

1. 使用[具有 Amazon Bedrock 权限的 IAM 角色](https://docs.aws.amazon.com//bedrock/latest/userguide/getting-started.html)登录 AWS 管理控制台，然后通过 [https://console.aws.amazon.com/nova/](https://console.aws.amazon.com/nova/) 打开 Amazon Bedrock 控制台。

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

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

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

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

1. 选择**创建**。当状态显示 `Completed` 时，表示自定义模型已做好按需推理的准备。有关使用自定义模型的更多信息，请参阅[使用部署进行按需型推理](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)。

## 部署自定义模型 (AWS Command Line Interface)


要使用 AWS Command Line Interface 部署自定义模型进行按需型推理，请使用带有自定义模型的 Amazon 资源名称 (ARN) 的 `create-custom-model-deployment` 命令。此命令使用 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html) API 操作。它返回部署的 ARN，您可以在提出推理请求时将其用作 `modelId`。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)。

```
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
```

## 部署自定义模型 (AWS SDK)


要部署自定义模型进行按需型推理，请使用带有自定义模型的 Amazon 资源名称 (ARN) 的 [CreateCustomModelDeployment](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateCustomModelDeployment.html) API 操作。响应返回部署的 ARN，您可以在提出推理请求时将其用作 `modelId`。有关使用部署进行推理的信息，请参阅[使用部署进行按需型推理](https://docs.aws.amazon.com/bedrock/latest/userguide/use-custom-model-on-demand.html)。

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

```
def create_custom_model_deployment(bedrock_client):
    """Create a custom model deployment
    Args:
        bedrock_client: A boto3 Bedrock client for making API calls
 
    Returns:
        str: The ARN of the created 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
```

# 使用部署进行按需型推理


部署自定义模型进行按需型推理后，可通过提出推理请求，使用模型来生成响应。对于 `InvokeModel` 或 `Converse` 操作，请使用部署的 Amazon 资源名称 (ARN) 作为 `modelId`。

有关提出推理请求的信息，请参阅以下主题：
+ [使用模型推理提交提示并生成响应](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html)
+ [运行模型推理的先决条件](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-prereq.html)
+ [使用 API 提交提示并生成响应](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-api.html)

# 删除自定义模型部署


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

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

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

**Topics**
+ [

## 删除自定义模型部署（控制台）
](#delete-deployment-console)
+ [

## 删除自定义模型部署 (AWS Command Line Interface)
](#delete-deployment-cli)
+ [

## 删除自定义模型部署 (AWS SDK)
](#delete-deployment-sdk)

## 删除自定义模型部署（控制台）


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

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

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

1. 选择**删除**。

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

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

在删除过程中，部署状态将更改为 `Deleting`。一旦完成后，部署将从列表中删除。

## 删除自定义模型部署 (AWS Command Line Interface)


要使用 AWS Command Line Interface 删除自定义模型部署，请使用带有部署标识符的 `delete-custom-model-deployment` 命令。

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

## 删除自定义模型部署 (AWS SDK)


要通过编程删除自定义模型部署，请使用带有部署的 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 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(f"Deployment deletion initiated")
        return response
 
    except Exception as e:
        print(f"Error deleting deployment: {str(e)}")
        raise
```