Amazon SageMaker AI 异步推理现已支持内联请求负载
Amazon SageMaker AI 异步推理服务迎来重要更新:用户现在可以直接在 InvokeEndpointAsync API 的请求体中发送推理负载,无需再提前上传数据到 Amazon S3。对于不超过 128,000 字节的负载,这一变化消除了一个完整的网络往返,简化了客户端代码,并降低了异步推理工作负载的操作复杂性。
此前的工作流:两步走,依赖 S3
传统上,使用 SageMaker AI 异步推理需要两个步骤:
- 上传负载到 S3:将输入数据(如文本、小图片)上传至指定的 S3 存储桶。
- 调用端点:在
InvokeEndpointAsync请求中传入InputLocation参数,指向 S3 对象 URI。
端点异步处理请求,并将结果写入配置的 S3 输出位置。客户端通过轮询或 SNS 通知获取结果。这种模式适合大负载(如高清图片、音频文件、多 MB 文档),但对于仅需几 KB 输入却需要较长处理时间的场景(例如复杂 NLP 模型或批量推理),强制依赖 S3 增加了不必要的复杂性和延迟。
新功能:内联负载,一步到位
本次更新引入了 Body 参数,允许用户将负载直接放在 API 请求体中。关键细节如下:
- 最大内联大小:128,000 字节(原始负载)。
- 互斥性:
Body和InputLocation参数不能同时使用;若同时传入,API 会返回验证错误。 - 输出行为不变:推理结果仍写入 S3 输出位置,客户端获取方式不变。
- 端点兼容性:现有异步端点无需修改模型或容器配置即可支持。
- 错误处理:大小超限或参数冲突会立即返回同步的
ValidationError,方便快速排查。
适用场景与价值
内联负载特别适合以下情况:
- 小负载异步推理:例如文本分类、情感分析、小规模图像识别等,输入数据小但需要秒级到分钟级处理时间。
- 简化客户端逻辑:无需编写 S3 上传代码,减少依赖和故障点。
- 降低延迟:省去一次网络往返(S3 上传),对于延迟敏感但实时推理无法满足的场景,提升整体响应速度。
行业分析与展望
在 AI 推理场景中,实时推理与异步推理的边界正逐渐模糊。AWS 此次更新直击异步推理的“小负载痛点”,使得异步推理不再只是大文件的专属选择。结合 SageMaker 的自动扩缩到零能力,开发者可以更灵活地设计成本与延迟兼顾的推理架构。
对于 MLOps 团队而言,内联负载减少了 S3 权限配置和生命周期管理的复杂度,降低了运维负担。同时,128KB 的限制也意味着 AWS 鼓励用户根据负载大小选择最合适的传输方式——小负载走内联,大负载走 S3,两者形成互补。
此外,这一更新也反映了云服务商在推理 API 设计上的趋势:更少的步骤、更低的门槛、更精细的粒度控制。随着边缘计算和微服务架构的普及,类似的内联推理接口可能会成为标准配置。
如何开始
用户无需修改现有端点或模型。只需在调用 InvokeEndpointAsync 时,将 Body 参数设置为原始字节负载即可。AWS 官方文档提供了详细代码示例。
总的来说,这是一次“小而美”的更新,但对于需要频繁处理小负载异步推理的开发者来说,体验提升是显著的。
