本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
部署自定义模型进行按需型推理
在使用模型自定义任务创建自定义模型或导入 SageMaker 经过人工智能训练的自定义Amazon Nova模型后,您可以为该模型设置按需推理。使用按需推理时,您只需按实际用量付费,且无需设置预调配计算资源。
要为自定义模型设置按需推理,您需要使用自定义模型部署来部署模型。部署自定义模型后,在提交提示并使用模型推理生成响应时,您需要使用该部署的 Amazon 资源名称(ARN)作为 modelId 参数。
有关按需推理定价的信息,请参阅 Amazon Bedrock 定价。您可以在以下区域中部署用于按需推理的自定义模型(有关 Amazon Bedrock 支持的区域的更多信息,请参阅 Amazon Bedrock 端点和配额):
部署自定义模型用于按需推理的先决条件
在部署自定义模型进行按需推理之前,请确保满足以下要求:
-
您必须使用美国东部(弗吉尼亚州北部)或美国西部(俄勒冈州)区域。
-
自定义模型的时间必须不早于 2025 年 7 月 16 日。有关支持的模型,请参阅支持的基础模型。
-
您的账户必须有权访问您正在部署的模型。有关模型自定义访问权限和安全性的更多信息,请参阅模型自定义访问权限和安全性。
-
如果模型使用 AWS KMS 密钥加密,则必须具有使用该密钥的权限。有关更多信息,请参阅 自定义模型加密。
支持的基础模型
您可以为以下基础模型设置按需推理:
部署自定义模型
您可以使用 Amazon Bedrock 控制台部署自定义模型 AWS Command Line Interface,或 AWS SDKs。有关使用部署进行推理的信息,请参阅使用部署进行按需型推理。
- Console
-
您可以从自定义模型页面中部署自定义模型,如下所示。您也可以从按需自定义模型页面中部署具有相同字段的模型。要找到此页面,请在导航窗格的推理下选择按需自定义模型。
部署自定义模型
-
使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。 AWS 管理控制台 然后,在 https://console.aws.amazon.com/bedrock 上打开 Amazon Bedrock 控制台。
-
在左侧导航窗格的调整下,选择自定义模型。
-
在模型选项卡中,选择想要部署的模型对应的单选按钮。
-
选择设置推理,然后选择按需部署。
-
在部署详细信息页面上,提供以下信息:
-
部署名称(必填):输入部署的唯一名称。
-
描述(可选):为部署描述输入描述。
-
标签(可选):为成本分配和资源管理添加标签。
-
选择创建。当部署的状态为 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
-
删除自定义模型部署
-
在导航窗格中,在推理下选择按需自定义模型。
-
选择想要删除的自定义模型部署。
-
选择删除。
-
在确认对话框中,键入部署名称来确认删除。
-
选择删除确认删除。
- 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