部署自定义模型进行按需型推理 - Amazon Bedrock

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

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

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

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

有关按需推理定价的信息,请参阅 Amazon Bedrock 定价。您可以在以下区域中部署用于按需推理的自定义模型(有关 Amazon Bedrock 支持的区域的更多信息,请参阅 Amazon Bedrock 端点和配额):

  • 美国东部(弗吉尼亚州北部)

  • 美国西部(俄勒冈州)

部署自定义模型用于按需推理的先决条件

在部署自定义模型进行按需推理之前,请确保满足以下要求:

  • 您必须使用美国东部(弗吉尼亚州北部)或美国西部(俄勒冈州)区域。

  • 自定义模型的时间必须不早于 2025 年 7 月 16 日。有关支持的模型,请参阅支持的基础模型

  • 您的账户必须有权访问您正在部署的模型。有关模型自定义访问权限和安全性的更多信息,请参阅模型自定义访问权限和安全性

  • 如果模型使用 AWS KMS 密钥加密,则必须具有使用该密钥的权限。有关更多信息,请参阅 自定义模型加密

支持的基础模型

您可以为以下基础模型设置按需推理:

  • Amazon Nova Lite

  • Amazon Nova Micro

  • Amazon Nova Pro

  • Meta Llama 3.3 70B Instruct

部署自定义模型

您可以使用 Amazon Bedrock 控制台部署自定义模型 AWS Command Line Interface,或 AWS SDKs。有关使用部署进行推理的信息,请参阅使用部署进行按需型推理

Console

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

部署自定义模型
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,在 https://console.aws.amazon.com/bedrock 上打开 Amazon Bedrock 控制台。

  2. 在左侧导航窗格的调整下,选择自定义模型

  3. 模型选项卡中,选择想要部署的模型对应的单选按钮。

  4. 选择设置推理,然后选择按需部署

  5. 部署详细信息页面上,提供以下信息:

    • 部署名称(必填):输入部署的唯一名称。

    • 描述(可选):为部署描述输入描述。

    • 标签(可选):为成本分配和资源管理添加标签。

  6. 选择创建。当部署的状态为 Active 时,表示自定义模型已做好按需推理的准备。有关使用自定义模型的更多信息,请参阅使用部署进行按需型推理

CLI

要使用部署自定义模型以进行按需推理 AWS Command Line Interface,请使用带有自定义模型的 Amazon 资源名称 (ARN) 的create-custom-model-deployment命令。此命令使用 CreateCustomModelDeployment API 操作。响应包含部署的 ARN。如果部署处于活动状态,您在发出推理请求时需将此 ARN 用作 modelId。有关使用部署进行推理的信息,请参阅使用部署进行按需型推理

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) 的 CreateCustomModelDeploymentAPI 操作。响应包含部署的 ARN。如果部署处于活动状态,您在发出推理请求时需将此 ARN 用作 modelId。有关使用部署进行推理的信息,请参阅使用部署进行按需型推理

以下代码演示了如何使用 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

使用部署进行按需型推理

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

有关提出推理请求的信息,请参阅以下主题:

删除自定义模型部署

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

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

重要

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

Console
删除自定义模型部署
  1. 在导航窗格中,在推理下选择按需自定义模型

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

  3. 选择删除

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

  5. 选择删除确认删除。

CLI

要使用删除自定义模型部署 AWS Command Line Interface,请使用带有部署标识符的delete-custom-model-deployment命令。此命令使用 DeleteCustomModelDeployment API 操作。

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

要以编程方式删除自定义模型部署,请使用带有部署的 Amazon 资源名称 (ARN) 或名称的 DeleteCustomModelDeploymentAPI 操作。以下代码演示了如何使用 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