跳至内容

当我在 Amazon Bedrock 中使用导入的模型时,如何解决 ModelNotReadyException 错误?

1 分钟阅读
0

我想在 Amazon Bedrock 中使用导入的模型,但我收到了 ModelNotReadyException 错误。

简短描述

Amazon Bedrock 使用内部驱逐策略有效管理资源。该策略删除了 Amazon Bedrock 在一段时间内(通常是一个小时)未使用的模型。如果您尝试使用尚未激活的模型,则可能会出现 ModelNotReadyException 错误。

如果您尝试在 Amazon Bedrock 中使用该策略删除的导入模型以优化硬件利用率,则可能会收到如下所示的 ModelNotReadyException 错误消息:

“errorMessage”: “Model is not ready for inference.Wait and try your request again.”

**注意:**没有等同于导入模型的预置吞吐量

最佳做法是安排任务以保持模型的恒定负载。此外,您可以批量处理类似的请求,以最大限度地减少模型调用之间的空闲时间。

解决方法

验证您是否已正确导入模型

使用 Amazon Bedrock 控制台或 AWS API 验证您是否已导入模型

使用 Amazon Bedrock 控制台

完成以下步骤:

  1. 打开 Amazon Bedrock 控制台
  2. 在导航窗格中,展开 Foundation models(基础模型),然后选择 Imported models(导入的模型)。
  3. 选择 Jobs(作业)选项卡。
  4. 选择您的 Job name(任务名称),然后查看 Complete(完成)的 Status(状态)。

使用 AWS API

要验证您是否已导入模型,请调用 GetModelImportJob API。要确认您已成功导入和部署模型,请在输出的 Status(状态)字段中检查您的状态是否为 Complete(完成)。

配置重试

当您在驱逐后首次调用模型时,恢复过程就会开始。恢复时间取决于按需实例集的可用性和模型的大小。如果您的 InvokeModelInvokeModelWithResponseStream API 请求在模型恢复时返回 ModelNotReadyException,则默认情况下,该请求会以指数回退自动重试。

要配置最大重试次数,请参阅处理 ModelNotReadyException

实施检测信号策略

实施检测信号策略,定期向模型发送 ping 请求。ping 请求告诉 Amazon Bedrock 该模型仍在使用中。最佳做法是在关键操作之前发出预热请求,以防止在 Amazon Bedrock 驱逐模型后出现冷启动。

要实施检测信号策略,请完成以下步骤:

  1. 创建 AWS Lambda 函数,在导入的模型上调用 InvokeModel API。
  2. 在 Amazon EventBridge 中创建规则计划,在上次调用模型后的 30 到 50 分钟内激活。
  3. 部署和测试 Lambda 函数
  4. 将 Lambda 函数日志发送到 Amazon CloudWatch Logs
  5. Amazon CloudWatch 中分析您的模型的使用指标,以确定理想的检测信号频率。

联系支持部门

如果您仍然遇到问题,请在 AWS 管理控制台的支持中心创建支持票证

相关信息

计算运行自定义模型的成本