S4 Weights
Verlustfreie GPU-Checkpoint-Kompression
Ein verlustfreier GPU-Kompressionscodec für PyTorch-Training-Checkpoints (Weights + Optimizer-State). Er zerlegt jeden Tensor in Byte-Planes und routet die Exponent-Plane durch ANS und die Mantisse durch GDeflate (nvCOMP) auf der GPU, bleibt dabei bit-exact (verlustfrei) für bf16, fp16 und fp32. Komprimierte Checkpoints werden in Ihrem eigenen S3-Bucket gespeichert. Bereitgestellt als g6 / g6e GPU AMI.
S4 Weights ist ein transparenter, verlustfreier Codec für die Checkpoints, die ein Training-Run schreibt — Model Weights und Optimizer-State. Restore ist byte-for-byte identisch, verifiziert gegen adversariale Bitmuster (NaN, ±Inf, Denormal, -0.0) auf jedem unterstützten dtype. Für Runs mit häufigen Checkpoints komprimiert er auch das Byte-XOR-Delta zwischen aufeinanderfolgenden Checkpoints. Der AMI-Build selbst schlägt fehl, wenn ein Compress→Decompress-Roundtrip auf der Build-GPU nicht bit-exact ist, sodass defekte Plane-Reassembly nie ein Kunden-Image erreicht. Ihre Checkpoints verlassen nie Ihre eigene VPC und Ihren S3-Bucket.
Das Problem
Große PyTorch-Training-Runs schreiben häufig Checkpoints — die Modellgewichte und den Optimizer-Zustand —, sodass der belegte Speicherplatz in Amazon S3 und die übertragenen Bytes kontinuierlich wachsen. Größere Checkpoints bedeuten auch längere Verzögerungen beim Speichern und Laden, die das Training jedes Mal unterbrechen, was sowohl Speicherkosten als auch GPU-Leerlaufzeiten in die Höhe treibt. Diese Checkpoints sind die reinen bf16-/fp16-/fp32-Zahlen, bei denen kein Verlust oder keine Quantisierung akzeptabel ist, weshalb die Komprimierung verlustfrei sein muss, um vertrauenswürdig zu sein.
Funktionsweise
- 1
Auf der GPU in Byte-Planes aufteilen
Jeder Tensor wird auf der GPU in Vorzeichen-, Exponenten- und Mantissen-Byte-Planes aufgeteilt, und jede Plane wird an den für sie am besten geeigneten Codec weitergeleitet — die Exponenten-Plane per ANS-Entropiecodierung, die Mantissen-Plane über GDeflate und die Vorzeichen-Plane Bit-gepackt (basierend auf NVIDIA nvCOMP).
- 2
Delta zwischen Checkpoints komprimieren
Bei Runs mit häufigen Checkpoints speichert und komprimiert S4 Weights auch das Byte-XOR-Delta zwischen aufeinanderfolgenden Checkpoints, welches weitaus kleiner ist, wenn sich die meisten Gewichte zwischen den Speichervorgängen kaum verändern.
- 3
Bitgenau wiederherstellen, im eigenen S3 speichern
Die Wiederherstellung ist immer Byte-für-Byte identisch, verifiziert gegen adversarielle Bitmuster (NaN, +/-Inf, Denormal, -0.0) für jeden unterstützten dtype. Komprimierte Checkpoints werden in dem von Ihnen konfigurierten S3-Bucket gespeichert und verlassen niemals Ihr Konto.
Highlights
Verlustfrei (byte-for-byte) für bf16 / fp16 / fp32, verifiziert gegen adversariale NaN- / ±Inf- / Denormal- / -0.0-Muster.
Byte-Plane-Split: Exponent → ANS, Mantisse → GDeflate auf der GPU (nvCOMP); komprimiert auch die Delta-Chain zwischen Checkpoints.
Komprimierte Checkpoints landen in Ihrem eigenen S3-Bucket innerhalb Ihrer eigenen VPC; g6 / g6e GPU AMI.
Lieferumfang
- Verlustfreier GPU-Checkpoint-Codec — bitgenaue Komprimierung von PyTorch-Training-Checkpoints (Modellgewichte und Optimizer-Zustand) für bf16/fp16/fp32
- Byte-Plane-Datenpfad (Exponenten-Plane -> ANS, Mantissen-Plane -> GDeflate, Vorzeichen-Plane Bit-gepackt, läuft auf der GPU und basiert auf NVIDIA nvCOMP)
- Byte-XOR-Deltakette zwischen aufeinanderfolgenden Checkpoints — zusätzliche Einsparungen bei häufigem Speichern, ohne dass ein Blob über einen kleinen festen Header hinaus vergrößert wird
- Drop-in-PyTorch-API — transparentes s4weights.save / s4weights.load sowie ein Basis-zu-Delta-Checkpoint-Store (save_checkpoint / load_checkpoint)
- Überprüfung adversarieller Bitmuster — NaN / +/-Inf / Denormal / -0.0 für jeden unterstützten dtype überprüft, wobei der AMI-Build selbst fehlschlägt, falls ein GPU-Komprimierungs- und Dekomprimierungs-Roundtrip nicht bitgenau ist
- Ubuntu 22.04-basiertes g6/g6e GPU AMI mit einem End-to-End-CloudFormation-Template (deploy/cfn-train-runner.yaml); der Runner ist ein systemd-Service ohne Root-Rechte, der einen Health-Endpoint auf TCP 8080 bereitstellt
- Speicherung in Ihrem eigenen S3-Registry-Bucket (Ihre Daten verlassen niemals Ihr Konto) sowie eine Fail-Closed-RegisterUsage-Entitlement-Prüfung beim Booten
Anwendungsfälle
Große PyTorch-Trainingsläufe, die häufig Checkpoints erstellen und S3-Speicherkosten sowie übertragene Bytes reduzieren möchten
Workloads, bei denen der Optimizer-Zustand dominiert und Sie kürzere Wartezeiten beim Speichern/Laden wünschen
Trainings-Pipelines, die keinerlei Verlust oder Quantisierung tolerieren können und eine garantiert bit-exakte Wiederherstellung benötigen
Teams, deren Daten sich gut komprimieren lassen, wie z. B. all-bf16- oder Low-Precision-Optimizer-Checkpoints
FAQ
Ist die Komprimierung wirklich verlustfrei?
Ja. Die Wiederherstellung ist immer Byte für Byte identisch, verifiziert für bf16/fp16/fp32-Gewichte und den fp32-Optimizer-Zustand gegen adversariale Bitmuster (NaN, +/-Inf, Denormal, -0.0). Der AMI-Build selbst schlägt fehl, wenn ein GPU-Compress->Decompress-Roundtrip nicht bit-exakt ist, sodass ein Codec mit fehlerhafter Plane-Reassembly niemals ein Kunden-Image erreicht.
Wie stark wird komprimiert?
Es hängt von den Daten ab. All-bf16- / Low-Precision-Optimizer-Checkpoints komprimieren gut (und besser bei großer Skalierung), während fp32-lastige, in großen Abständen gespeicherte Checkpoints sich kaum komprimieren lassen. Wir sind ehrlich darüber, wo es hilft, und geben keine feste Rate an. Die Komprimierung is immer verlustfrei und vergrößert einen Blob niemals über einen kleinen, festen Header hinaus.
Wo werden meine Checkpoints gespeichert?
Komprimierte Checkpoints werden in dem von Ihnen konfigurierten Amazon S3-Registry-Bucket gespeichert und verlassen Ihr Konto niemals. Sie starten das AMI in Ihrer eigenen VPC, und Ihr PyTorch-Trainingscode schreibt Checkpoints mit s4weights.save / s4weights.load (oder der Delta-Chain save_checkpoint / load_checkpoint), wodurch jeder Tensor auf der GPU komprimiert und bit-exakte komprimierte Checkpoints in Ihrer S3-Registry gespeichert werden.
Worauf läuft es und wie wird es abgerechnet?
Es läuft auf g6- oder g6e-GPU-Instanzen, die durch das mitgelieferte CloudFormation-Template (deploy/cfn-train-runner.yaml) End-to-End verbunden werden. Die Abrechnung erfolgt pro Instanzstunde mit einer jährlichen Option. AWS erfasst die laufenden Instanzstunden automatisch, und der Runner ruft beim Booten einmalig RegisterUsage als Fail-Closed-Entitlement-Prüfung auf (eine nicht berechtigte Instanz verweigert den Start).
Ist es einfach in meinen PyTorch-Trainingscode zu integrieren?
Es ist eine Drop-in-Lösung. Sie schreiben Checkpoints mit den transparenten s4weights.save / s4weights.load oder verwenden save_checkpoint / load_checkpoint für den Base->Delta-Checkpoint-Store. Jeder Tensor wird auf der GPU komprimiert, und bei häufigen Speichervorgängen wird auch das Byte-XOR-Delta zwischen aufeinanderfolgenden Checkpoints gespeichert und komprimiert.
Preismodell
Stündliche Softwaregebühr + GPU EC2 (g6 / g6e). Abrechnung nach Instance Type, Jahresoption verfügbar.
Weitere S4-Produkte
S4 — Squished S3
Transparenter GPU S3-Komprimierungs-Gateway
S4 Logs
CloudWatch Logs nach zstd S3 archivieren
S4 Metrics
CloudWatch Metric-Cardinality steuern