GPU 云成本腰斩指南:Spot 竞价实例跑 AI 训练的实操坑

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

同样的 A100/H100,用 Spot 竞价实例能把训练成本砍掉 60%–80%。但中断、重启、数据丢失三大坑会让新手崩溃。本文给出容错训练栈与成本测算。

训练一个中等规模的模型,按需实例(On-Demand)烧钱有多快?一块 H100 每小时约 3–4 美元,跑一周就是 500–700 美元。而同样的卡,Spot 竞价实例经常只要 1/3 到 1/5 的价格——代价是:它随时可能被云厂商收回,通常只给你 30 秒到 2 分钟撤离时间。

省钱的秘诀只有一个:让训练任务对”随时会死”这件事免疫。

坑一:实例被回收,进度归零

解法:把 Checkpoint 当作一等公民。

  • 高频存 checkpoint:每 5–10 分钟落一次,而不是每 epoch。中断时最多丢几分钟。
  • 存到外部对象存储,不是本地盘。Spot 实例被回收,本地盘一起蒸发。
  • 保存完整状态:不只是模型权重,还有优化器状态、学习率调度器、随机种子、数据加载器进度。否则恢复后训练轨迹会漂移。
  • 原子写入:先写临时文件再 rename,避免存到一半被中断产生损坏的 checkpoint。

坑二:重启后状态对不上

解法:确定性训练 + 断点续训脚本。

恢复时最容易出的错是”数据顺序变了”或”step 计数错了”,导致训练结果无法复现。要点:

  • 固定全局随机种子,并在 checkpoint 里保存当前 epoch/step 的 RNG 状态
  • 数据加载器支持从指定样本索引恢复,而不是从头 shuffle
  • 启动脚本先检测最新 checkpoint,存在就自动续训

这样实例被换掉后,新实例拉起、拉取 checkpoint、无缝续训,调度层完全无感。

坑三:便宜实例抢不到

Spot 的价格随供需浮动,热门卡(H100)经常被抢光或价格飙升。

解法:多区域 + 多机型竞价策略。

  • 同时挂 3–5 个区域、2–3 种机型(A100/H100/L40S),谁的价低且有空闲就用谁
  • 设价格上限,超过阈值自动停,避免”便宜没占到反而更贵”
  • 用竞价型托管服务(如托管式 Spot 训练平台)自动处理中断重调度

成本测算实例

假设训练需 100 卡·小时:

模式单价/卡·时总成本风险
On-Demand$3.5$350无
Spot(平均)$1.1$110中断
Spot + 容错(含重跑损耗 10%)$1.21$121可控

省下 65%,而多付出的工程成本主要是写好 checkpoint 和续训逻辑——这是一次性投入,长期复用。

什么时候别用 Spot

  • 短任务(<30 分钟):中断重跑不划算,直接用按需
  • 调试阶段:频繁改代码,checkpoint 意义不大,按需更省心
  • 无法 checkpoint 的任务:某些推理实验或超长单步任务,谨慎使用

一句话总结

Spot 实例的本质是用工程确定性换取价格折扣。把 checkpoint、续训、多区域调度这三件事做扎实,AI 训练的 GPU 账单就能直接腰斩。对预算敏感的团队来说,这是 2026 年最划算的优化之一。

📤 分享到