Spot 实例与可抢占式 GPU:削减 70% 的 AI 成本

Spotify 使用 AWS Spot 将机器学习成本从 820 万美元降至 240 万美元。以 2 分钟预警获得 70-91% 的 GPU 折扣。完整的中断处理手册。

Spot 实例与可抢占式 GPU:削减 70% 的 AI 成本

Spot 实例与可抢占式 GPU:削减 70% 的 AI 成本

更新于 2025 年 12 月 8 日

2025 年 12 月更新: 随着供应紧张状况缓解,Spot 与按需 GPU 价格已显著趋近。AWS 于 2025 年 6 月将按需 H100 价格下调 44%(降至约 3.90 美元/小时),缩小了 Spot 的价格优势。Hyperbolic 等预算型供应商提供 1.49 美元/小时的 H100 和 2.15 美元/小时的 H200,通常与传统 Spot 定价具有竞争力。GPU 租赁市场正从 2023 年的 33.4 亿美元增长至 2032 年的 339 亿美元。虽然 Spot 实例对于可中断工作负载仍能节省成本,但计算方式已经改变——按需模式现在适用于更多使用场景,新兴预算型云供应商也打破了传统的 Spot 经济模式。

Spotify 通过围绕 AWS Spot 实例构建整个推荐引擎训练流水线,将机器学习基础设施成本从每年 820 万美元降至 240 万美元,证明了可中断式 GPU 能够支撑生产级 AI 工作负载。¹ 代价是:每当 AWS 需要回收容量时,他们的 p4d.24xlarge 实例会在 2 分钟预警后消失,迫使团队每 5 分钟保存一次检查点,并为关键任务维护三重冗余。掌握 Spot 实例编排的组织可以实现比按需定价低 70-91% 的成本削减,但那些盲目部署的用户会因意外终止而损失数周的训练进度。²

AWS Spot、Google Cloud 可抢占式虚拟机和 Azure Spot 虚拟机以大幅折扣提供相同的硬件,因为云供应商出售的是可能随时消失的剩余容量。³ 配备 8 块 H100 GPU 的 p5.48xlarge 实例按需价格为每小时 98.32 美元,而 Spot 平均价格为 19.66 美元——80% 的折扣从根本上改变了 AI 经济学。⁴ 这种模式之所以可行,是因为云供应商为维护、故障和需求高峰保留了 15-30% 的备用容量,通过出售闲置资源实现变现,同时保留随时回收的权利。

可中断 GPU 容量的经济学

云供应商通过持续竞价的方式定价 Spot 实例,价格根据供需情况波动。GPU 实例的 AWS Spot 价格比按需价格低 70% 到 91%,ml.p4d.24xlarge 实例价格在每小时 3.90 美元至 29.49 美元之间,而按需价格为 32.77 美元。⁵ Google 可抢占式 GPU 提供固定的 60-80% 折扣,但无论需求如何,最长 24 小时后必定终止。⁶ Azure Spot 提供类似的 60-90% 折扣,并支持配置最高价格以防止账单失控。

在较少使用的区域和较旧的 GPU 代次中可以获得最深的折扣。由于需求集中,US-West-2 的 Spot 价格比 US-East-2 高 20%。V100 实例可获得 91% 的折扣,而较新的 H100 折扣很少超过 75%。夜间和周末时段由于企业工作负载减少,可额外节省 10-15%。智能编排利用这些模式,跨区域和时区迁移工作负载以最大限度降低成本。

中断率因实例类型、区域和时间而显著不同。对 1000 万个 Spot 实例小时的分析显示:⁷ - A100 实例:每小时 2.3% 的中断率 - V100 实例:每小时 0.8% 的中断率 - H100 实例:每小时 4.1% 的中断率 - 周末中断率:比工作日低 40% - US-East-1:中断率是 US-West-2 的 3 倍

适合 Spot 实例的工作负载模式

某些 AI 工作负载天然适合 Spot 实例模型:

超参数调优:参数空间的并行探索能够容忍单个任务失败。每个实验独立运行,因此中断只影响单个配置。Optuna 和 Ray Tune 自动处理 Spot 实例故障,在新实例上重新启动被终止的任务。⁸ 据报告,组织完全使用 Spot 实例进行超参数搜索可节省 75% 的成本。

批量推理:处理数百万张图像或文档的工作分布在多个实例上。工作队列跟踪已完成和待处理的项目。中断只是将未完成的工作返回队列。自动伸缩组自动启动替代实例。Netflix 每天使用 Spot 实例处理 1 亿张缩略图,每年节省 320 万美元。⁹

数据预处理:训练数据的 ETL 流水线受益于 Spot 容量。Apache Spark 等框架自动保存检查点。中断的任务在新实例上从检查点恢复。大多数预处理的无状态特性使 Spot 实例成为理想选择。Uber 的特征工程流水线 90% 运行在 Spot 实例上。¹⁰

开发和测试:非生产环境能够优雅地容忍中断。开发人员在实验过程中预期会有偶发的中断。成本节省使得可以使用更大的开发集群。CI/CD 流水线自动重试失败的任务。GitHub Actions 的 Spot 运行器价格低 70%。¹¹

带检查点的分布式训练:通过适当的检查点策略,大型模型训练变得可行。每 10-30 分钟将模型状态保存到持久存储。使用梯度累积在实例波动期间保持有效的批量大小。实现弹性训练以适应可用实例。OpenAI 使用 60% 的 Spot 实例训练早期 GPT 模型。¹²

中断处理策略

成功使用 Spot 实例需要复杂的中断管理:

检查点框架:实现定期自动检查点。PyTorch Lightning 提供内置的 Spot 实例支持,支持配置检查点频率。¹³ 将优化器状态、学习率调度和随机种子与模型权重一起保存。将检查点存储在对象存储中以确保持久性。在新实例上无缝恢复训练。

实例多样化:将工作负载分布在多种实例类型、可用区和区域中。AWS Spot Fleet 自动管理多样化的容量池。¹⁴ 配置 10-15 种不同的实例类型以最大化可用性。接受略微次优的实例以获得更好的可用性。保持 20% 的容量缓冲以实现平稳过渡。

优雅关闭处理程序:AWS 通过实例元数据服务提供 2 分钟的终止通知。Google 的可抢占式实例给出 30 秒警告。实现信号处理程序,在收到终止通知时立即触发检查点保存。关闭前刷新日志和指标。清理临时资源以防止产生孤立成本。

混合架构:将 Spot 实例与按需容量结合用于关键组件。在按需实例上运行参数服务器,而工作节点使用 Spot。在稳定实例上维持最小可行容量。使用 Spot 进行额外吞吐量的突发扩展。根据价格和可用性信号调整 Spot 容量。

基于队列的架构:使用消息队列将工作调度与执行解耦。Amazon SQS 或 Apache Kafka 跟踪待处理的工作。工作节点在可用时拉取任务。完成的工作更新持久存储。失败的任务返回队列重试。

生产系统的实现模式

生产级 Spot 实例部署遵循经过验证的模式:

多区域编排

# Kubernetes Spot Instance Configuration
apiVersion: v1
kind: NodePool
spec:
  spotInstances:
    enabled: true
    maxPrice: 0.50  # Maximum hourly price
    regions:
      - us-east-1
      - us-west-2
      - eu-west-1
    instanceTypes:
      - g5.xlarge
      - g5.2xlarge
      - g4dn.xlarge
    diversificationStrategy: lowestPrice
    onDemandBaseCapacity: 2
    spotInstancePools: 10

检查点管理

class SpotTraining:
    def __init__(self):
        self.checkpoint_frequency = 600  # 10 minutes
        self.s3_bucket = "checkpoints"

    def train(self):
        if self.detect_termination_notice():
            self.emergency_checkpoint()
            self.graceful_shutdown()

        if time.time() - self.last_checkpoint > self.checkpoint_frequency:
            self.save_checkpoint()

成本监控仪表板:跟踪 Spot 相对于按需基准的节省。按实例类型和区域监控中断率。当 Spot 价格超过阈值时发出警报。计算每个训练 epoch 的有效成本。根据使用模式预测月度节省。

Introl 帮助组织在我们的全球覆盖区域内实施 Spot 实例策略,在超过 10 万个 GPU 部署的成本优化方面拥有丰富经验。¹⁵ 我们的自动化框架无缝处理中断,同时保持训练进度和推理可用性。

真实的 Spot 实例架构案例

Pinterest - 推荐模型训练: - 工作负载:在 20 亿个图钉上训练推荐模型 - 架构:200 块 V100 GPU,80% 使用 Spot 实例 - 检查点:每 15 分钟保存到 S3 - 中断率:日均 1.2% - 成本节省:每年 480 万美元(降低 72%) - 关键技术:5 分钟内完成区域故障转移

Snap - 计算机视觉流水线: - 工作负载:每天处理 5 亿张图像 - 架构:跨 6 个区域的 1000 块 T4 GPU - Spot 比例:批处理 90% - 恢复时间:平均 30 秒 - 成本节省:每年 620 万美元(降低 78%) - 关键技术:工作窃取队列架构

DoorDash - 需求预测: - 工作负载:实时配送需求预测 - 架构:混合架构,30% 按需基准容量 - Spot 使用:训练 70%,推理 0% - 中断处理:自动故障转移到按需实例 - 成本节省:每年 210 万美元(降低 65%) - 关键技术:基于 Spot 价格的预测性扩展

何时避免使用 Spot 实例

某些场景不适合使用 Spot 实例:

延迟敏感型推理:面向客户的 API 无法容忍突然的容量损失。模型服务需要一致的可用性。中断会导致不可接受的用户体验下降。生产推理应使用预留容量或按需实例。

长时间运行的单一任务:在 Google 可抢占式实例上,超过 24 小时且没有检查点的训练运行必定会被中断。无法从检查点恢复的任务会浪费整个运行。具有复杂状态恢复的工作负载应避免使用 Spot。

受监管的工作负载:医疗保健和金融服务可能需要保证容量以符合合规要求。审计要求可能禁止基础设施的不确定性。数据驻留规则可能阻止多区域故障转移策略。

时间紧迫的截止日期:产品发布或时间敏感的研究不能冒中断的风险。会议截止日期或客户承诺需要保证完成。当时间表比成本更重要时,使用按需实例。

高级优化技术

Spot 价格预测:机器学习模型根据历史模式预测未来的 Spot 价格。时间序列分析识别周期性的可用窗口。主动出价策略在价格飙升前锁定容量。学术研究表明,通过价格预测可额外节省 15%。¹⁶

自适应检查点:根据中断概率调整检查点频率。当价格接近中断阈值时增加频率。在稳定期间降低频率以减少开销。动态策略在保持恢复速度的同时节省 20% 的存储成本。

跨云套利:同时在 AWS、Google 和 Azure 上竞价以获得最低价格。统一编排层抽象供应商差异。将工作负载迁移到最便宜的可用容量。多云策略比单云实现 10-15% 的更优定价。

Spot 原生架构:从一开始就假设会发生中断来设计系统。尽可能实现无状态组件。使用外部状态存储保存所有持久数据。在每个处理阶段构建可恢复性。

成本比较计算器

计算您的潜在节省:

``` 当前按需成本

[内容因翻译而截断]

申请报价_

告诉我们您的项目需求,我们将在72小时内回复。

> 传输完成

请求已收到_

感谢您的咨询。我们的团队将审核您的请求并在72小时内回复。

排队处理中