S4 Weights
Compressão lossless de checkpoints em GPU
Um codec de compressão lossless em GPU para checkpoints de treinamento PyTorch (weights + optimizer state). Ele divide cada tensor em byte-planes e encaminha o plano de expoente pelo ANS e a mantissa pelo GDeflate (nvCOMP) na GPU, mantendo bit-exact (lossless) para bf16, fp16 e fp32. Checkpoints comprimidos persistem no seu próprio bucket S3. Entregue como GPU AMI g6 / g6e.
S4 Weights é um codec transparente e lossless para os checkpoints que uma execução de treinamento grava — os pesos do modelo e o estado do otimizador. A restauração é byte-for-byte idêntica, verificada contra padrões de bits adversariais (NaN, ±Inf, denormal, -0.0) em todos os dtype compatíveis. Para execuções que fazem checkpoint com frequência, ele também comprime o delta byte-XOR entre checkpoints consecutivos. O próprio build da AMI falha se um round-trip compress→decompress não for bit-exact na GPU de build, então uma remontagem de plano quebrada nunca chega a uma imagem de cliente. Seus checkpoints nunca saem da sua própria VPC e bucket S3.
O problema
Execuções de treinamento em larga escala do PyTorch gravam checkpoints — os pesos do modelo e o estado do otimizador — frequentemente, de modo que o espaço ocupado no Amazon S3 e os bytes transferidos continuam crescendo. Checkpoints maiores também significam paralisações mais longas para salvar/carregar que pausam o treinamento a cada vez, acumulando custos de armazenamento e tempo de ociosidade da GPU. Esses checkpoints são números brutos em bf16/fp16/fp32, nos quais qualquer perda ou quantização é inaceitável, de forma que a compressão precisa ser lossless para ser confiável.
Como funciona
- 1
Divida em planos de bytes na GPU
Cada tensor é dividido na GPU em planos de bytes de sinal, expoente e mantissa, e cada plano é direcionado ao codec adequado — o plano do expoente por codificação de entropia ANS, a mantissa via GDeflate e o plano do sinal empacotado em bits (construído sobre o NVIDIA nvCOMP).
- 2
Comprima o delta entre checkpoints
Para execuções que realizam checkpoints com frequência, o S4 Weights também armazena e comprime o delta XOR de bytes entre checkpoints consecutivos, o qual é muito menor quando a maioria dos pesos quase não se altera entre os salvamentos.
- 3
Restaure com precisão de bits, persista no seu próprio S3
A restauração é sempre idêntica byte a byte, verificada contra padrões de bits adversos (NaN, +/-Inf, denormal, -0.0) em todos os dtypes suportados. Os checkpoints comprimidos persistem no bucket do S3 configurado por você e nunca saem da sua conta.
Destaques
Lossless (byte-for-byte) para bf16 / fp16 / fp32, verificado contra NaN / ±Inf / denormal / -0.0 adversariais.
Divisão em byte-planes: expoente → ANS, mantissa → GDeflate na GPU (nvCOMP); também comprime a cadeia de deltas entre checkpoints.
Checkpoints comprimidos chegam ao seu próprio bucket S3 dentro da sua própria VPC; GPU AMI g6 / g6e.
O que está incluído
- Codec de checkpoint lossless para GPU — compressão exata em bits de checkpoints de treinamento do PyTorch (pesos do modelo e estado do otimizador) para bf16/fp16/fp32
- Caminho de dados de planos de bytes (plano do expoente -> ANS, plano da mantissa -> GDeflate, plano de sinal empacotado em bits, executado na GPU e construído sobre o NVIDIA nvCOMP)
- Cadeia de deltas XOR de bytes entre checkpoints consecutivos — economia extra em salvamentos frequentes, e nunca expande um blob além de um pequeno cabeçalho fixo
- API drop-in para PyTorch — s4weights.save / s4weights.load transparentes mais um armazenamento de checkpoints base->delta (save_checkpoint / load_checkpoint)
- Verificação de padrões de bits adversos — NaN / +/-Inf / denormal / -0.0 verificado em todos os dtypes suportados, e o próprio build da AMI falha a menos que um round-trip de compressão->descompressão na GPU seja exato em bits
- AMI de GPU g6/g6e baseada em Ubuntu 22.04 com modelo CloudFormation de ponta a ponta (deploy/cfn-train-runner.yaml); o runner é um serviço systemd não root que fornece um endpoint de integridade em TCP 8080
- Persistência em seu próprio bucket de registro do S3 (seus dados nunca deixam sua conta), além de uma verificação de direito de uso do RegisterUsage com comportamento fail-closed na inicialização
Casos de uso
Treinamentos de grande porte do PyTorch que salvam checkpoints com frequência e buscam reduzir custos de armazenamento do S3 e bytes transferidos
Workloads onde o estado do otimizador domina e você deseja pausas mais curtas para salvar/carregar
Pipelines de treinamento que não toleram nenhuma perda ou quantização e precisam de restauração bit a bit garantida
Equipes cujos dados comprimem bem, como checkpoints all-bf16 ou de otimizador de baixa precisão
FAQ
A compressão é realmente sem perdas?
Sim. A restauração é sempre idêntica byte a byte, verificada para pesos bf16/fp16/fp32 e estado do otimizador fp32 contra padrões de bits adversos (NaN, +/-Inf, desnormalizados, -0.0). A própria build da AMI falha a menos que o round-trip de compressão->descompressão na GPU seja idêntico bit a bit, de forma que um codec com reconstrução de plano corrompida nunca chegue à imagem do cliente.
Quanto ele comprime?
Depende dos dados. Checkpoints all-bf16 / de otimizador de baixa precisão comprimem bem (e melhor em escala), enquanto checkpoints com muito fp32 salvos com grandes intervalos comprimem pouco. Somos honestos sobre onde isso ajuda e não alegamos uma taxa fixa. A compressão é sempre sem perdas e nunca expande um blob além de um pequeno cabeçalho fixo.
Onde meus checkpoints são armazenados?
Os checkpoints comprimidos são persistidos no bucket de registro do Amazon S3 que você configurar e nunca deixam sua conta. Você inicia a AMI dentro da sua própria VPC, e seu código de treinamento do PyTorch grava os checkpoints com s4weights.save / s4weights.load (ou o save_checkpoint / load_checkpoint da cadeia de deltas), comprimindo cada tensor na GPU e persistindo os checkpoints comprimidos idênticos bit a bit no seu registro do S3.
Em que ele é executado e como é cobrado?
Ele é executado em instâncias de GPU g6 ou g6e, configuradas de ponta a ponta pelo modelo CloudFormation incluso (deploy/cfn-train-runner.yaml). A cobrança é por hora de instância com uma opção anual. A AWS mede as horas de instância em execução automaticamente, e o runner chama o RegisterUsage uma vez na inicialização como uma verificação de direito de uso do tipo fail-closed (uma instância sem direito de uso se recusa a iniciar).
É fácil de integrar ao meu código de treinamento do PyTorch?
É drop-in. Você grava checkpoints usando os transparentes s4weights.save / s4weights.load, ou usa save_checkpoint / load_checkpoint para o armazenamento de checkpoints do tipo base->delta. Cada tensor é comprimido na GPU e, em salvamentos frequentes, o delta byte-XOR entre checkpoints consecutivos também é armazenado e comprimido.
Modelo de precificação
Taxa horária de software + GPU EC2 (g6 / g6e). Cobrança por tipo de instância, opção anual disponível.
Outros produtos S4
S4 — Squished S3
Gateway transparente de compressão S3 com GPU
S4 Logs
Arquive CloudWatch Logs em S3 com zstd
S4 Metrics
Controle a cardinalidade de métricas do CloudWatch