AI News HubLIVE
站内改写2 分鐘閱讀

Amazon SageMaker AI 異步推理現在支持內聯請求負載

Amazon SageMaker AI 異步推理新增內聯負載支持,客户可直接在 InvokeEndpointAsync API 的請求體中發送推理負載,無需先上傳到 S3。對於不超過128KB的負載,此舉消除了網絡往返,簡化了客户端代碼,並減少了操作複雜度。

來源AWS Machine Learning Blog作者: Dan Ferguson

今天,我們宣佈 Amazon SageMaker AI 異步推理支持內聯負載功能。客户現在可以直接在 InvokeEndpointAsync API 的請求體中發送推理負載,無需在每次調用前將輸入數據上傳到 Amazon S3。對於不超過 128,000 字節的負載,這一改變消除了整個網絡往返時間,簡化了客户端代碼,並減少了異步推理工作負載的操作複雜性。

背景:以前的異步推理工作流程 Amazon SageMaker AI 異步推理允許您將推理請求排隊並異步處理。它適用於大負載、可變流量或容忍秒到分鐘延遲的工作負載。它還支持自動縮放到零,使其對突發或批量工作負載具有成本效益。在此之前,每次調用需要兩個步驟:首先將輸入負載上傳到 S3 存儲桶,然後調用端點並傳遞 S3 對象 URI 作為 InputLocation。端點異步處理請求並將輸出寫入配置的 S3 輸出位置,客户端輪詢或通過 SNS 通知接收結果。對於大負載(如圖像、音頻、多 MB 文檔),這種模式效果很好。但對於需要比實時推理更長的處理時間的小輸入負載(幾 KB),強制性的 S3 依賴增加了不必要的複雜性。

新功能:通過 Body 參數發送內聯負載 隨着今天的發佈,InvokeEndpointAsync 接受新的 Body 參數。當提供時,負載在 API 請求中內聯發送,無需 S3 上傳。關鍵細節包括:新參數 Body,原始字節,上限 128,000 字節;Body 和 InputLocation 互斥,如果同時設置兩者,API 拒絕請求;輸出行為不變,輸出仍寫入 S3 OutputLocation;端點兼容性方面,設計用於現有異步端點,無需模型或容器更改;錯誤處理方面,大小和互斥違規會同步返回 ValidationError。該功能已在 31 個商業 AWS 區域可用。

客户體驗對比 變化在代碼中最為明顯。以下兩個示例執行相同的異步調用,第一個使用之前的 S3 上傳步驟,第二個使用新的內聯 Body 參數。之前需要 S3 客户端、輸入存儲桶、IAM 權限、UUID 命名方案和清理策略。現在只需一個調用,無需 S3 客户端、UUID、輸入存儲桶或額外權限。

客户收益 內聯負載消除了每次請求的網絡跳轉和依賴,帶來五個具體好處:降低延遲(移除一次網絡往返和一次 S3 PUT);簡化架構(避免輸入桶配置、生命週期策略、跨賬户訪問模式以及調用者的 IAM s3:PutObject 權限);減少錯誤路徑(請求是單個 API 調用,要麼入隊要麼失敗);降低成本(每次內聯調用消除 S3 PUT 費用);即時驗證反饋(大小和互斥錯誤同步返回)。

何時使用每種方法 內聯負載通常是小負載的簡單選擇,但 InputLocation 仍有其用途。對於負載 <=128KB 且無需在 S3 中保留輸入數據的情況,推薦使用 Body。對於負載 >128KB(圖像、音頻、大型文檔)或需要保留輸入數據用於審計或重放的情況,仍應使用 InputLocation。對於混合負載,可在大小上分支,小負載用 Body,大負載用 InputLocation。

開始使用 要使用內聯負載,您需要現有的 SageMaker AI 異步推理端點、最新的 AWS SDK for Python(Boto3)以及 IAM 權限 sagemaker:InvokeEndpointAsync。您還需要為異步端點配置 S3 輸出桶。步驟包括:更新 AWS SDK(pip install --upgrade boto3),替換調用代碼為直接使用 Body 參數,測試調用並驗證響應中的 OutputLocation 字段。端點配置、模型容器或輸出 S3 設置無需更改。完成後請清理資源以避免持續費用。

結論 SageMaker AI 異步推理的內聯負載支持消除了異步推理工作流中的一個常見摩擦點:每次請求的強制 S3 上傳。對於大多數適合 128,000 字節的推理負載,您現在可以發出單個 API 調用,讓 SageMaker AI 處理其餘部分。該功能設計為向後兼容,現有的 InputLocation 工作流保持不變。今天就更新您的 AWS SDK 並開始使用 InvokeEndpointAsync API 的 Body 參數。