我想在 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 主控台
完成以下步驟:
- 開啟 Amazon Bedrock console (Amazon Bedrock 主控台)。
- 在導覽窗格中展開 Foundation models (基礎模型),然後選擇 Imported models (匯入的模型)。
- 選擇 Jobs (作業) 索引標籤。
- 選取您的 Job name (作業名稱),然後確認 Status (狀態) 顯示為 Complete (完成)。
使用 AWS API
若要確認模型已匯入,請呼叫 GetModelImportJob API。若要確認模型已成功匯入並部署,請檢查輸出的 Status (狀態) 欄位是否為 Complete (完成)。
設定重試
模型移出後,當您首次調用模型時,系統會開始還原模型。還原所需時間取決於隨需機群的可用情況及模型大小。模型還原期間,如果 InvokeModel 或 InvokeModelWithResponseStream API 要求傳回 ModelNotReadyException,系統預設會使用指數退避自動重試要求。
若要設定重試次數上限,請參閱處理 ModelNotReadyException。
實作活動訊號策略
實作活動訊號策略,定期向模型傳送 ping 要求。ping 要求會告知 Amazon Bedrock 模型仍在使用中。最佳實務是在關鍵操作前執行預熱要求,避免 Amazon Bedrock 移出模型後發生冷啟動。
若要實作活動訊號策略,請完成以下步驟:
- 建立 AWS Lambda 函式,讓該函式針對匯入的模型呼叫 InvokeModel API。
- 在 Amazon EventBridge 中建立排程規則,將觸發時間設為上次模型調用後的 30 至 50 分鐘內。
- 部署 Lambda 函式,並測試該函式。
- 將 Lambda 函式日誌傳送至 Amazon CloudWatch Logs。
- 請在 Amazon CloudWatch 中分析模型使用量指標,以判斷最適合的活動訊號頻率。
聯絡 AWS Support
如果問題仍然存在,請在 AWS 管理主控台的支援中心中建立支援工單。
相關資訊
計算執行自訂模型的成本