S4 Weights
Lossless GPU checkpoint compression
何時收回成本?
回收週期取決於成本項目和替換範圍
該產品的回收週期取決於您目前的 AWS 支出、替換範圍和執行環境。請使用帳單模擬器識別符合的成本項目並取得粗略的節省估算。
面向 PyTorch training checkpoints(weights + optimizer state)的 GPU lossless compression codec。它對每個 tensor 做 byte-plane split,並在 GPU 上將 exponent plane 交給 ANS、mantissa 交給 GDeflate(nvCOMP),對 bf16、fp16 和 fp32 保持 bit-exact(lossless)。壓縮後的 checkpoints 儲存到你自己的 S3 bucket。以 g6 / g6e GPU AMI 交付。
S4 Weights 是一個透明、lossless codec,用於壓縮 training run 寫出的 checkpoints — model weights 和 optimizer state。恢復結果 byte-for-byte identical,並已針對每種受支援 dtype 上的對抗性 bit pattern(NaN、±Inf、denormal、-0.0)驗證。對於頻繁 checkpoint 的 run,它還會壓縮連續 checkpoints 之間的 byte-XOR delta。AMI build 本身會在 build GPU 上執行 compress→decompress round-trip;若不是 bit-exact 則 build 失敗,因此損壞的 plane reassembly 不會進入客戶 image。你的 checkpoints 永遠不會離開你自己的 VPC 和 S3 bucket。
面臨挑戰
大規模 PyTorch 訓練會頻繁寫入檢查點 —— 即模型權重和最佳化器狀態 —— 因此它們在 Amazon S3 中占用的儲存空間和傳輸的位元組數會持續增加。更大的檢查點還意味著每次儲存/載入時暫停訓練的停頓時間更長,從而增加了儲存成本和 GPU 空閒時間。這些檢查點是原始的 bf16/fp16/fp32 數值,不允許出現任何遺失或量化,因此壓縮必須是無損的才能被信賴使用。
運作原理
- 1
在 GPU 上拆分為位元組平面
每個張量在 GPU 上拆分為正負號、指數和尾數位元組平面,每個平面均被分配給最適合的編解碼器 —— 指數平面進行 ANS 熵編碼,尾數平面使用 GDeflate,正負號平面執行位元打包(基於 NVIDIA nvCOMP 建構)。
- 2
壓縮檢查點之間的差分
對於頻繁儲存檢查點的訓練執行,S4 Weights 還會儲存並壓縮連續檢查點之間的位元組級 XOR 差分,當大多數權重在兩次儲存之間幾乎沒有移動時,該差分會比原始檢查點小得多。
- 3
位元級完全還原,並儲存到您自己的 S3
還原在位元組級始終完全一致,已針對所有支援的 dtype 對對抗性位元模式(NaN、+/-Inf、非規格化數、-0.0)進行了驗證。壓縮後的檢查點將持久化儲存到您設定的 S3 儲存貯體中,且絕不會離開您的帳戶。
產品亮點
bf16 / fp16 / fp32 的 lossless(byte-for-byte),已針對對抗性 NaN / ±Inf / denormal / -0.0 驗證。
byte-plane 拆分:exponent → ANS,mantissa → GPU(nvCOMP)上的 GDeflate;同時壓縮 checkpoint 之間的 delta chain。
壓縮後的 checkpoints 落在你自己 VPC 內的你自己的 S3 bucket;g6 / g6e GPU AMI。
包含內容
- GPU 無損檢查點編解碼器 — 實現 PyTorch 訓練檢查點(模型權重和最佳化器狀態)的 bf16/fp16/fp32 位元級完全一致壓縮
- 位元組平面資料路徑(指數平面 -> ANS,尾數平面 -> GDeflate,符號平面位元打包,在 GPU 上執行並基於 NVIDIA nvCOMP 建置)
- 連續檢查點之間的位元組級 XOR 差分鏈 — 在頻繁儲存時進一步節省空間,且絕不會使 blob 的膨脹超出微小的固定標頭
- PyTorch 即插即用 API — 透明的 s4weights.save / s4weights.load,以及 base->delta 檢查點儲存(save_checkpoint / load_checkpoint)
- 對抗性位元模式驗證 — 在所有支援 of dtype 上校驗 NaN / +/-Inf / 非規格化數 / -0.0,且除非在建置用 GPU 上的壓縮->解壓往返過程位元完全一致,否則 AMI 建置本身會直接失敗
- 基於 Ubuntu 22.04 的 g6/g6e GPU AMI,附帶端到端 CloudFormation 範本(deploy/cfn-train-runner.yaml);runner 是一個非 root 的 systemd 服務,在 TCP 8080 上提供健康檢查端點
- 持久化到您自己的 S3 註冊表儲存貯體(您的資料絕不會離開您的帳戶),加上啟動時故障閉合的 RegisterUsage 授權檢查
適用場景
頻繁儲存檢查點且希望降低 S3 儲存成本和傳輸位元組數的大規模 PyTorch 訓練任務
最佳化器狀態佔主導地位且希望縮短儲存/載入停頓的工作負載
無法容忍任何損失或量化且需要保證位元級精確復原的訓練管線
處理易於壓縮的資料(例如全 bf16 或低精度最佳化器檢查點)的團隊
常見問題
壓縮真的是無損的嗎?
是的。復原的資料始終逐位元組完全一致,並針對 bf16/fp16/fp32 權重和 fp32 最佳化器狀態的對抗性位元模式(NaN、+/-Inf、非正規數、-0.0)進行驗證。AMI 建置本身在 GPU 壓縮->解壓 the 往返過程非位元精確時會直接失敗,因此平面重構損壞的編解碼器絕不會進入客戶映像檔中。
能壓縮多少?
這取決於資料。全 bf16 / 低精度最佳化器檢查點壓縮效果很好(且規模越大效果越好),而儲存間隔較長、以 fp32 為主的檢查點則幾乎無法壓縮。我們對於其能發揮作用的場景保持坦誠,不宣稱有固定的壓縮率。壓縮始終是無損的,且絕不會使 blob 的膨脹超出微小固定檔案標頭的大小。
我的檢查點儲存在哪裡?
壓縮後的檢查點將持久化儲存到您設定的 Amazon S3 註冊表儲存貯體中,並且絕不會離開您的帳戶。您在自己的 VPC 內啟動 AMI,您的 PyTorch 訓練程式碼使用 s4weights.save / s4weights.load(或增量鏈 save_checkpoint / load_checkpoint)寫入檢查點,該操作在 GPU 上壓縮每個張量,並將位元級精確的壓縮檢查點持久化儲存到您的 S3 註冊表中。
它執行在什麼執行個體上,如何計費?
It runs on g6 or g6e GPU instances, wired end-to-end by the bundled CloudFormation template (deploy/cfn-train-runner.yaml). Billing is per-instance-hour with an annual option. AWS meters the running instance-hours automatically, and the runner calls RegisterUsage once at boot as a fail-closed entitlement check (an unentitled instance refuses to start).
是否容易整合到我的 PyTorch 訓練程式碼中?
它是即插即用的。您可以使用透明的 s4weights.save / s4weights.load 寫入檢查點,或者針對 base->delta 檢查點儲存使用 save_checkpoint / load_checkpoint。每個張量都會在 GPU 上進行壓縮,對於頻繁儲存的場景,連續檢查點之間的位元組異或差分也會被儲存並壓縮。
為什麼更便宜
假設預訓練 70B 參數 LLM,每月 200 個 checkpoint (每個約 420 GB),由 8× H100 叢集儲存。
- S3 儲存 (84 TB)
- $1,930 / 月
- Checkpoint 停頓 (GPU 閒置 16.7 h)
- $4,670 / 月
- 月度合計
- $6,600 / 月
- S3 儲存 (59 TB)
- $1,360 / 月
- GPU 停頓 (3.3 h, 5× 加速)
- $930 / 月
- S4 Weights 執行個體 (g6.xlarge + 軟體費)
- $590 / 月
- 月度合計
- $2,880 / 月
依訓練規模選擇 S4 Weights 執行個體
| 模型規模 | 推薦執行個體 | S4 Weights 執行個體費用 | 每月合計對比原始 torch.save |
|---|---|---|---|
| ~7B / 月 50 ckpt | g6.xlarge | $590 / 月 | $1,050 / 月 (raw $1,300, −19%) |
| ~70B / 月 200 ckpt | g6.xlarge | $590 / 月 | $2,880 / 月 (raw $6,600, −56%) |
| ~400B / 月 500 ckpt | g6.4xlarge | $965 / 月 | $13,200 / 月 (raw $36,500, −64%) |
僅供參考。S3 儲存費用使用 us-east-1 公開價格 ($0.023/GB·月),8× H100 叢集假設 ~$280/h (p5/p5e 價位)。Checkpoint 停頓時間為每個 ckpt raw 5 分鐘、S4 Weights 1 分鐘。30% 壓縮率為 byte-plane + delta 的中位數估計,因模型架構和訓練階段而異 (10–50%)。
計費模式
按小時計費的軟體費用 + GPU EC2(g6 / g6e)。按 instance type 計量,提供年度選項。