All posts 6 min read The weights.zip team

One stack for every layer of AI serving and training

weights.zip started as lossless compression for model weights. Today it covers the whole path a model takes, from the bytes in storage to the tokens streaming back. Here is the stack as one product, and what each layer saves.

Stack Product Inference Training
An exploded 3D view of the weights.zip stack, from storage and loading at the bottom to prefill, the KV cache and decode at the top, each layer labeled with its measured result.

Running a large model costs money in more places than most dashboards show. There is the storage bill for every checkpoint and fine-tune. There is the egress and the wait each time a new GPU node pulls a model. There is GPU memory, which decides how many models and how many conversations fit on a card. And there is the time spent reading a long prompt before the first word comes back.

Most tools fix one of these. weights.zip is built to work on all of them, so a team can start where it hurts most and add layers as it grows.

What the stack covers

Think of it as following one model through its life. It is trained and saved, stored in a registry, loaded onto GPUs, held in memory, and then asked questions. Each of those steps has a weights.zip layer.

Layer What changes for you Result Measured on
Storage Model registries and fine-tune fleets take less space up to 47% less space fine-tune with its base model; 33% bf16 alone, 20% FP8
Checkpoints Smaller checkpoints, faster recovery after a failure 44% smaller restores at up to 21 GB/s per H100 (bf16)
Loading New nodes start serving sooner 21% less egress per FP8 model load
GPU memory More models held on each card, switched in well under a second 1.5x bf16 models per GPU per card; 1.26x for FP8
GPU to GPU Gradients and weights cross the network in fewer bytes 24.5 to 49% fewer bytes B200
Prefill Long prompts are read faster 1.4x faster H100, 14B model, 128k tokens
KV Exact The conversation cache in less memory, identical output 0.687x size bit-identical output
Compact KV formats Many more long-context users per GPU up to 2.7x users vs fp8 128k-token contexts
Tiered KV cache More cached context per GB of memory and SSD 1.6x capacity identical output

Every number above was measured, on the hardware and models listed beside it.

The bottom of the stack: bytes at rest and in motion

The first layers are about files. A model registry with a few base models and hundreds of fine-tunes is mostly the same kind of data stored again and again. weights.zip Store keeps a fine-tune up to 47% smaller beside its base model, a bf16 model 33% smaller and an FP8 model 20% smaller, inside your own cloud account, and every file comes back byte for byte.

Training teams feel the same pressure from checkpoints. They are large, they are written often, and when a node fails the whole job waits for one to load. Checkpoint makes the weights in a run of checkpoints 44% smaller, and restores them at up to 21 GB/s per H100 for bf16. Writes finish sooner and a restart costs less idle time.

Load handles the moment a new GPU node comes up. The model arrives with 21% less egress, and over the network the node starts serving about 20% sooner. From host memory, an H100 loads it 1.29x faster than a raw copy. When traffic spikes, that is the difference between scaling in time and dropping requests.

Between GPUs, training traffic shrinks too. Gradient exchange between nodes uses 24.5% fewer bytes for bf16 and up to 49% fewer for fp32, measured on B200 while using under 7% of one GPU. Every tensor comes back bit for bit.

The middle: GPU memory

Memory is where serving costs are decided. A card that holds one model can only answer for that model. Resident keeps models compressed in GPU memory, so each card holds 1.5x as many bf16 models (1.26x for FP8) and switches between them in well under a second. For teams serving many fine-tunes or many customers, that means fewer idle GPUs waiting for the one model they hold to be asked a question.

The top: answering long prompts

The last layers are about the request itself. A user pastes a 128k-token contract and asks a question. Two things happen.

First the model reads the whole prompt. Prefill makes that 1.4x faster than dense FlashAttention-3 on an H100, with a 14B model at full accuracy: 20 of 20 retrieval checks passed. Reading the prompt takes 29% less time, so the wait for the first word shrinks with it, and the gain grows with prompt length.

Then the model keeps what it read in the KV cache while it writes the answer. That cache is what limits how many long conversations a GPU can hold. KV Exact stores it at 0.687 of its size with output that is identical bit for bit. Measured on an H100, that gave 1.46 to 1.49x more conversations at once. Attention runs at about 0.6 to 0.8x speed per step, so the gain is capacity, not speed.

When a small loss of precision is acceptable, the compact 3-bit and 3.5 to 4-bit formats go further: up to 2.7x more users than an fp8 cache at 128k tokens. The tiered cache adds 1.6x capacity across GPU memory and SSD, with identical output.

Each layer stands on its own, so you can adopt one without the rest. Together they cover the whole path a model takes, from disk to answer.

How to read the numbers

Each result was measured separately, on its own hardware and models. They save different costs, so they do not multiply into one figure. The KV cache options are alternatives rather than a combination: KV Exact keeps output bit-identical, while the compact formats trade a little precision for more users. Prefill was compared with dense FlashAttention-3, not with a full serving stack.

We would rather show you a smaller number we measured than a larger one we did not.

Where to start

Most teams have one cost that clearly dominates. If storage bills or checkpoint time are the pain, start at the bottom of the stack. If GPUs sit idle holding one model each, start with Resident. If long prompts are slow or long conversations run out of memory, start with Prefill and KV Exact.

See every layer together on the Stack page, or request a pilot. We run the matching layer on your models and your GPUs and report the result against what you run today.

Measure it on your fleet.

We run the matching layer on your models and your GPUs and report the result against what you run today.

NVIDIA, H100, B200 and the NVIDIA logo are trademarks of NVIDIA Corporation. weights.zip is not affiliated with or endorsed by NVIDIA.