What an LLM checkpoint actually weighs on disk

Qwen2.5-7B-Instruct stores 7615616512 parameters across its safetensors shards, and the community Q4_K_M build of the same model measures 4683074240 bytes as one file. Both figures are read out of the repositories rather than estimated from a bits-times-parameters shortcut. Pick a repository below and the page divides one by the other, so you can see what a weight really costs in the file you are about to download.

Checkpoint size lookup

Every value in the tool comes from a validated field pulled from the Hub. When a repository has no measured GGUF build in the dataset, the tool says so rather than guessing a number for you.

HeyTensor is a free browser-based toolkit for deep learning practitioners. Every calculation runs entirely in your browser. No data leaves your machine.

Stored parameters against the label on the model card

The census column below is what the Hub counted by reading each safetensors header. The card column is what the model card says about itself. Read across a row and you can see where the round marketing label and the file disagree.

RepositoryStored parameters, Hub censusCount quoted on the model cardStored dtype evidence
microsoft/phi-227796838402.7 billion parametersconfig.json declares float16
microsoft/Phi-3.5-mini-instruct38210795523.8B parametersconfig.json declares bfloat16
Qwen/Qwen3-4B4022468096Number of Parameters: 4.0Bindex total_size is twice the census
Qwen/Qwen3-8B8190735360Number of Parameters: 8.2Bindex total_size is twice the census
Qwen/Qwen3-14B14768307200Number of Parameters: 14.8Bindex total_size is twice the census
Qwen/Qwen3-32B32762123264Number of Parameters: 32.8Bindex total_size is twice the census
Qwen/Qwen2.5-7B-Instruct7615616512Not quoted in the sources pulled for this pageconfig.json declares bfloat16
mistralai/Mistral-7B-Instruct-v0.37248023552Not quoted in the sources pulled for this pageindex total_size is twice the census
tiiuae/falcon-7b7217189760a 7B parameters causal decoder-only modelindex total_size is twice the census
Qwen/Qwen3-30B-A3B30532122624Number of Parameters: 30.5B in total and 3.3B activatedconfig.json declares bfloat16
allenai/OLMoE-1B-7B-092469191618561B active and 7B total parametersconfig.json declares bfloat16

Card labels and the census disagree, and phi-2 shows it plainly

The phi-2 card calls the model 2.7 billion parameters. The Hub census for the same repository counts 2779683840, which does not round to the card's figure. Neither number is wrong on its own terms, and the page gives you both rather than quietly picking one. Qwen goes the other direction and publishes Number of Parameters: 8.2B on the Qwen3-8B card instead of the round label sitting in the repository name, against a census of 8190735360. When you are provisioning disk, the census is the figure that matches what lands on it.

Measured GGUF builds, byte for byte

Each row is a real file in a public repository, not a projection. The last column divides the file size by the stored parameter count of the original checkpoint, so it covers everything the GGUF carries.

RepositoryBuildFile size in bytesCross-checkBytes per parameter, as bits
Qwen/Qwen2.5-7B-InstructQ4_K_M4683074240HEAD X-Linked-Size agreescomputed in your browser
Qwen/Qwen2.5-7B-InstructQ5_K_M5444831936HEAD X-Linked-Size agreescomputed in your browser
Qwen/Qwen2.5-7B-InstructQ6_K6254199488HEAD X-Linked-Size agreescomputed in your browser
Qwen/Qwen2.5-7B-InstructQ8_08098525888HEAD X-Linked-Size agreescomputed in your browser
microsoft/Phi-3.5-mini-instructQ4_K_M2393232672HEAD X-Linked-Size agreescomputed in your browser
microsoft/Phi-3.5-mini-instructQ5_K_M2815276320HEAD X-Linked-Size agreescomputed in your browser
microsoft/Phi-3.5-mini-instructQ6_K3135853344HEAD X-Linked-Size agreescomputed in your browser
microsoft/Phi-3.5-mini-instructQ8_04061222688HEAD X-Linked-Size agreescomputed in your browser
mistralai/Mistral-7B-Instruct-v0.3Q4_K_M4372812000HEAD X-Linked-Size agreescomputed in your browser
mistralai/Mistral-7B-Instruct-v0.3Q5_K_M5136175328HEAD X-Linked-Size agreescomputed in your browser
mistralai/Mistral-7B-Instruct-v0.3Q6_K5947248864HEAD X-Linked-Size agreescomputed in your browser
mistralai/Mistral-7B-Instruct-v0.3Q8_07702565088HEAD X-Linked-Size agreescomputed in your browser

Why a four-bit build is not four bits per weight

The overhead starts in the block format itself. ggml documents its Q4_K super-block as Effectively 4.5 bits per weight, with Q5_K described as Effectively 5.5 bits per weight and Q6_K as Effectively 6.5625 bits per weight. A Q4_K block covers QK_K weights and stores QK_K/2 bytes of packed quants next to a K_SCALE_SIZE scale array and a pair of half-precision super-block scales. Q8_0 is the plainest case of the same tax, since a block covers QK8_0 weights in sizeof(ggml_half) + QK8_0 bytes, which sits above eight bits per weight rather than at eight.

Then the quantizer refuses to treat every tensor the same. llama.cpp promotes selected attn_v.weight tensors to Q6_K when the requested file type is Q4_K_M or Q5_K_M, and it handles token_embd.weight and the output weight as separate cases with their own type selection. For Falcon models, and for any tensor whose row length is not a multiple of the super-block size, the quantizer falls back to Q8_0 for that tensor. The tool even exposes flags to leave output.weight un(re)quantized or to override its ggml_type. And the codebase names these file types MOSTLY_Q4_K_M, which is the honest part of the name. Building one takes two passes: convert the original model to GGUF, then quantize that file starting from a high-precision F32 or BF16 input.

Where a mixture-of-experts checkpoint spends its bytes

Qwen3-30B-A3B lists Number of Parameters: 30.5B in total and 3.3B activated and, on the same card, Number of Activated Experts: 8. The census counts 30532122624 stored parameters, so the number your disk sees tracks the total rather than the activated slice. OLMoE-1B-7B-0924 tells the same story at a smaller scale, described on its card as a Mixture-of-Experts LLM with 1B active and 7B total parameters against a census of 6919161856. Budget storage from the total, and budget compute from the activated figure.

What the census is actually counting

A safetensors file opens with a little-endian header length followed by a JSON header recording each tensor's dtype, shape and data_offsets, which is what makes an exact per-repository tensor census possible without downloading a single weight. On the GGUF side, the Hub's authoritative size for an LFS-backed file is the X-Linked-Size response header the official huggingface_hub client reads. GGUF itself is the binary format for storing models for inference with GGML, and the quantization scheme rides in the filename as the Weight Encoding Scheme component, for example Q4_K_M.

How we measured this

Primary source for every parameter count is the Hugging Face Hub API with the safetensors expansion, which reports the tensor census the Hub computed from each shard header. The independent cross-check is the shard index file in the same repository: for Qwen2.5-7B-Instruct and for phi-2 alike, metadata.total_size comes out at twice the census, which is what a two-byte-per-parameter checkpoint should look like. For GGUF builds the primary source is the repository file listing and the cross-check is a HEAD request against the CDN download URL, where the returned X-Linked-Size matches the listing. All figures were verified on 2026-08-22. Nothing here is typed by hand. Sizes are injected from validated fields at build time and every ratio is recomputed in your browser from those same values, which is the same rule the shape calculators on this site follow.

I build heytensor.com and the Zovo Tools network of free, privacy-first developer utilities. The shape calculators there compute output shapes entirely client-side and validate every formula against the official torch.nn documentation, and parameter counts are cross-checked against an independent source before anything is published. A figure two sources do not agree on is held back, not shown, which is exactly why the phi-2 row above prints both numbers instead of one.

Weights only, and what that leaves out

Every byte on this page is weights sitting on disk. A model in service also needs a KV cache that grows with context length and batch size, activation memory for the forward pass, and whatever the framework, CUDA build and driver reserve before your tensors ever land. Do not read these figures as an accelerator fit check, because a reader who treats a weights-only number as headroom runs out of memory. For the rest of the budget, use the training memory tool.

Disclaimers

  • All calculations are deterministic math running in your browser and do not constitute model performance guarantees
  • Every figure states the dtype it was measured or computed in. Do not assume float32 unless the page says so
  • GPU memory estimates are approximations. Actual VRAM usage depends on framework version, CUDA version, and driver overhead

Questions readers actually ask

Why is a Q4_K_M download bigger than the parameter count times four bits?
Two reasons show up in the source. The block format carries scale overhead, which is why ggml documents Q4_K as Effectively 4.5 bits per weight. On top of that, llama.cpp promotes selected attn_v.weight tensors to Q6_K for Q4_K_M or Q5_K_M, so the file is a mixture of precisions. The bits-per-weight column in the table above is the measured ratio for each real file.
Does phi-2 have 2.7 billion parameters?
The card says 2.7 billion and the Hub census counts 2779683840. The two do not agree, and the page shows both. Size your storage from the census.
Why does a mixture-of-experts checkpoint cost full price on disk?
Because the file holds the whole parameter set. Qwen3-30B-A3B advertises Number of Parameters: 30.5B in total and 3.3B activated while the census counts 30532122624 stored parameters.
Can this page tell me whether a model fits on my accelerator?
No. Weights are one line item in the VRAM budget, and the KV cache, activations and framework overhead all sit on top of them. Use the training memory tool for the rest.

Estimate for your own model

The table covers 12 checkpoints we could measure directly. For any other model, use the parameters-per-bit-weight relationship observed across all measured builds (R² = 0.999):

Size ≈ parameters × bits-per-weight ÷ 8, plus a small overhead for tokenizer and metadata (typically 0.05–0.5 GB depending on vocab size). Estimates; measured table above is authoritative for listed models.

TENSOR PREFLIGHT · DOWNLOADABLE PYTORCH TOOLKIT

Take the next step in your own PyTorch model.

Trace a local forward pass, inspect tensor shapes in an HTML report, and turn a repair into a regression check. Includes eight broken-and-fixed workflows, source code and setup instructions.

Is this toolkit right for my problem?

Use the free calculator for a layer formula or a quick shape check.

Consider Tensor Preflight when you have a local PyTorch model and want a forward-pass report plus repeatable checks. Python 3.9+ and PyTorch 2.8+ are required. It does not run your model in this website or automatically repair it.

Open the sample report before buying to check the output format.

Python 3.9+ · PyTorch 2.8+ · Runs locally

Get Tensor Preflight — $29 One-time payment · ZIP download See a sample report
By the same builder: GitHub, theluckystrike BeLikeNative, Grammar AI EarlyThunder, Dev Blog Bug Bounty Reality Zovo, AI Dev Tools