跳至内容

如何排查在 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(作业名称),然后查看 Status(状态)是否为 Complete(完成)。

使用 AWS API

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

配置重试

当您在驱逐后首次调用模型时,恢复过程就会开始。恢复时间取决于按需实例集的可用性和模型的大小。如果您的 InvokeModel 或 InvokeModelWithResponseStream 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 管理控制台的支持中心创建支持票证。

相关信息

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