Amazon SageMaker AI 非同步推理現在支援內聯請求負載
Amazon SageMaker AI 非同步推理新增內聯負載支援,客戶可直接在 InvokeEndpointAsync API 的請求體中傳送推理負載,無需先上傳到 S3。對於不超過128KB的負載,此舉消除了網路往返,簡化了客戶端程式碼,並減少了操作複雜度。
今天,我們宣佈 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 引數。