Salesforce 借助 SageMaker 新调度配置实现推理多可用区高可用
AWS 发布 SageMaker 推理组件的 SchedulingConfig 参数,Salesforce 据此将 Ag…
AWS 近日在官方机器学习博客中介绍了 Salesforce 如何利用 Amazon SageMaker 推理组件(Inference Components,IC)的新调度配置(SchedulingConfig)能力,将 Agentforce 平台的模型部署到多个可用区(Multi-AZ),在显著降低 GPU 成本的同时满足企业级 2-AZ 高可用合规要求。
背景:推理组件的成本优势与可用性挑战
Salesforce 的 Agentforce 是其面向 AI Agent 的基础设施底座。为压降低模型推理的 GPU 成本,团队选择将多个模型共置(co-host)在共享 GPU 实例上。SageMaker 推理组件为此可带来最高约 8 倍的基础设施成本缩减。
但共置模式引入了一个新问题:SageMaker 的默认调度算法对每次部署操作独立优化,并不保证同一模型副本在多个可用区之间均衡分布。当副本恰好集中在某一可用区或某一实例时,就会形成单点故障:
- 实例级故障:单台实例宕机即导致该模型全部副本下线。
- 可用区级故障:单个 AZ 不可用即让模型完全不可访问。
- 合规风险:Salesforce 内部要求所有生产模型至少覆盖 2 个 AZ,默认调度策略以成本为先,无法满足该门槛。
解决方案:SchedulingConfig 两项关键子参数
AWS 在 CreateInferenceComponent API 中新增了 SchedulingConfig 参数,把副本在实例与可用区之间的放置策略开放给用户。其中两项子参数直接决定高可用行为:
- AvailabilityZoneBalance:控制跨可用区分布,使副本在 AZ 间尽量均衡,并可配置允许的不平衡度(MaxImbalance)。
- PlacementStrategy(AZ 内部策略):SPREAD 将副本分散到尽可能多的实例以提升故障隔离;BINPACK 则将副本集中到少量实例以提高利用率。
部署示例:4 实例 2-AZ 场景
Salesforce 的典型场景为:SageMaker 终端节点包含 4 台实例,均匀分布在 2 个可用区(每个 AZ 各 2 台)。需要部署 4 个模型副本,且要求在两个 AZ 上均衡分布。
创建推理组件时指定 SPREAD 策略与 AZ 均衡配置后,SageMaker 会将 4 个副本分配到 4 台实例上,每个 AZ 各 2 个。当 MaxImbalance 设为 1 时,允许任意两个 AZ 之间最多相差 1 个副本。
对于只需 2 个副本的轻量模型,可将 MaxImbalance 设为 0,强制执行严格的 1-AZ-1-副本平衡。
需要特别注意:HA 关键模型的 CopyCount 绝不能设为 1。单副本只能落在一个 AZ,会立即破坏 2-AZ 合规。
伸缩过程中的可用区均衡
通过 ScalingConfig 的相应配置,SageMaker 在扩缩容时会维持可用区均衡:扩容时新增副本按 AZ 均衡放置,缩容时按对称方式从各 AZ 移除副本。
对于多次扩缩后产生的副本分布不均,可在终端节点的 ScaleInPolicy 中设置 CONSOLIDATION 策略,由后台定期回收空闲实例并重新整合副本分布,同时尊重 AZ 平衡约束。
新调度算法的三大支柱
AWS 在新算法中做了三项关键改进,分别对应 Salesforce 的可用性诉求:
- 最终分布均衡:算法以「最终副本分布」是否平衡为目标,而不是只优化单次放置。
- 可用区感知:终端节点和推理组件的更新操作都会持续维护多可用区副本分布,使模型更新期间也能保持 HA。
- AZ 内优化:在每个可用区内部,调度策略可在故障隔离与利用率之间灵活取舍。
整体来看,Salesforce 的案例展示了在共享 GPU 上运行大模型推理时,如何通过精细的调度控制兼顾成本、合规与可用性。
