Replacing Formulas with Measurements: How ModelFit Ends the Chaos of LLM VRAM Estimation

ModelFit replaces formula estimates with measured GGUF file sizes, ending the chaos of LLM VRAM requirements.
The article starts from the phenomenon that "how much VRAM does Kimi K3 need" yields five different answers across five websites, and points out that these estimates are mostly based on the "parameter count × bits / 8" formula, which ignores embedding tables, attention tensor precision, output heads, and container overhead—potentially causing hundreds of GB of error for trillion-parameter MoE models. The developer therefore built ModelFit: directly scraping the actual sizes of GGUF quantized files on Hugging Face as the weight baseline, and using the GQA formula for precise KV cache calculation when config.json is available, otherwise applying clearly labeled heuristics. Measurements show Kimi K3 at 466.4 GB for Q1 and 1.51 TB for Q4—the two sides of the earlier debate were actually talking about different quantized versions. The project updates automatically daily and openly publishes its methods and limitations, arguing that "measurement" beats "calculation" and giving users a transparent, verifiable starting point for hardware assessment.
Same Model, Five Websites, Five Different Answers
Recently, when Kimi K3 was released, many developers and AI enthusiasts habitually searched for "kimi k3 vram requirements" to figure out whether their hardware could run it. The result was confusing: five popular pages gave wildly different answers—594 GB, 1.51 TB, 1.68 TB, and some pages simply said "you can't run this at all." Even more disorienting, some pages listed the Q4 quantized requirement as "about 800 GB," while others said 1.2 TB.
These numbers aren't fabricated out of thin air—most are based on the same formula: parameter count × bits / 8. The problem is that this formula ignores the embedding table (which often remains unquantized even in Q2 quantized versions), attention tensors kept at higher precision, the output head, and container overhead. For a 1-trillion-parameter MoE model like Kimi K3, these "small" omissions can add up to hundreds of GB of error.

GGUF and quantized version naming: GGUF is a model file format introduced by the llama.cpp ecosystem, designed to package model weights, tokenizer, and config into a single mmap-loadable file. Quantized versions use codes like Q4_K_M and UD-Q1_0: the number after Q indicates the average bits used per weight, K refers to the k-quant block quantization strategy, and the _S/_M/_L suffix indicates different size/precision tradeoffs at the same bit width. The UD prefix usually stands for dynamic quantization schemes like "Unsloth Dynamic," which retain higher precision for sensitive layers. As a result, the same model exists in dozens of GGUF variants with vastly different sizes, and any single answer to "how much VRAM does a model need" necessarily implies a specific quantized version.
From Calculation to Measurement: The Birth of ModelFit
One developer decided to stop relying on formula estimates and instead adopt a "measurement" approach. The logic is simple: every GGUF quantized version of every popular model is already published as a file on Hugging Face. The file size itself is the answer—it's the size you need to download, and the size that gets loaded into memory.
Thus the ModelFit project was born. It completes the entire pipeline through three scripts:
- fetch.py traverses Hugging Face's public API (no key required), looking for trending GGUF repos, the most-downloaded repos, and popular keywords. For each repo, it walks the file tree (large models store quantized files in subdirectories like
Q4_K_M/, and shards like-00001-of-00012.ggufare summed together), and pullsconfig.jsonfor precise KV cache calculation. - build.py computes total requirements: weights + KV cache + overhead, then generates a page for each model, including a per-quantization-version table, fit conclusions for GPUs ranging from the RTX 3060 to the Mac Studio 512GB, an interactive "enter your VRAM" checker, and an FAQ with JSON-LD.
- KV cache calculation is exact when
config.jsonis available (using the GQA formula:2 × layers × kv_heads × head_dim × ctx × 2 bytes), otherwise it uses a "+20% with a 1.5GB minimum" heuristic—and the page clearly labels which one was used.
A scheduled task runs daily to re-scrape data, re-test (gating the formula against reference llama.cpp numbers), rebuild, deploy, and notify IndexNow. When new models are released, pages go live within 24 hours—usually earlier than blog posts.
KV cache and the GQA formula: The KV cache is the Key/Value tensor that stores historical tokens for large models during inference, avoiding recomputation of attention. Its size grows linearly with context length and is often the main driver of VRAM usage in long-context scenarios. In the formula 2 × layers × kv_heads × head_dim × ctx × 2 bytes, the leading 2 corresponds to K and V respectively, 2 bytes corresponds to FP16 precision, and kv_heads reflects grouped-query attention (GQA): multiple query heads share the same set of KV heads, significantly compressing the cache. If a model uses MQA (only 1 KV head) or multi-head attention (KV heads equal to query heads), the same formula yields values that differ by several times—which is exactly why it can only fall back to heuristic estimation when config.json is missing.
What Real Measurements Reveal
Taking Kimi K3 as an example (from the unsloth repo, with shards summed), the measured results are as follows:
| Quantized version | Measured file size | VRAM/RAM required (8K context) |
|---|---|---|
| UD-Q1_0 | 466.4 GB | 561.1 GB |
| UD-Q4_K_XL | 1.51 TB | ~1.6 TB |
| F16 | ~3 TB | Server-cluster level |
With this, the earlier "594 GB" pages were roughly right for Q1 quantization, and the "1.51 TB" pages were also right for Q4 quantization—the two sides of the comment-section debate were actually talking about different quantized versions. ModelFit ends this argument by showing the full "ladder."
The significance of this project isn't just about giving a single number, but about transparently exposing all the variables: quantization version, context length, whether KV cache overhead is included, and data sources. Users no longer need to guess or trust a single source—they can make judgments against their own hardware conditions.
MoE total parameters vs. active parameters: A mixture-of-experts (MoE) model consists of multiple feed-forward experts, and each token is routed to only a few of them, so the "active parameter count" is far smaller than the "total parameter count" and is often cited by vendors as an inference cost metric. But in local deployment, all expert weights must reside in memory or VRAM; only the compute is reduced according to active parameters, while VRAM usage remains close to the full scale. For trillion-parameter MoE models like Kimi K3, even if only a small fraction of experts are activated per token, Q4 quantization still requires about 1.5 TB of storage and memory—which is exactly why estimating by active parameters severely underestimates hardware requirements.
Honest Limitations and Boundaries
The ModelFit developer doesn't shy away from the project's limitations, which is commendable among similar tools:
- Repos without config.json: A fixed overhead rule of "about 20% + 1.5GB" is used, and this is marked on the page. This means that for these models, the numbers are still estimates rather than precise measurements.
- MoE models are calculated by total size: All experts reside in memory, even though only a subset is activated per token. This is starkly different from "active parameter count" marketing numbers, and often surprises users.
- Default context is 8K: KV cache grows linearly with context, and every page explains the calculation, so users can adjust expectations based on their actual context length.
- CPU inference speed is a separate matter: Memory capacity and memory bandwidth are different problems; the FAQ gives rough token/s ranges rather than pretending to predict precisely.
The developer encourages community feedback: "If your favorite model is missing or a number looks wrong, tell me and I'll manually check the repo." This open attitude, combined with public data sources (the Hugging Face public API), makes ModelFit more of a community-built measurement project than yet another black-box estimator.
Why "Measurement" Beats "Calculation"
In the field of LLM deployment, VRAM estimation has always been a friction-filled step. The recurring "can I run it?" questions on forums often attract contradictory answers, consuming developers' time and patience. ModelFit's approach isn't complicated, but it's effective: rather than arguing over which terms a formula should include, just look at the actual size of the quantized file. File size is definite, verifiable, and directly corresponds to download and loading behavior.
Of course, this isn't a panacea. File size doesn't account for runtime overhead, framework differences, or batching strategies. But as a baseline reference, it's closer to reality than any "pure formula." And by publishing the calculation methodology and data sources, it lets users understand the assumptions behind the numbers, enabling smarter decisions.
For developers, researchers, or enthusiasts who need to assess whether their hardware is sufficient to run a specific LLM, ModelFit provides a verifiable starting point. It won't give you the ultimate answer to "can I run it," but it gives you transparent enough information to answer that question yourself.
Related articles

The Truth About Startup Customer Acquisition: Viral Growth Isn't the Only Path to Success
At TechCrunch Disrupt, founders and a VC argue startups don't need viral growth. The piece covers early attention vs. long-term users, sustainable growth metrics, and shifting to community building and retention.

Corgi: A Terminal Multiplexer for AI Agents
Corgi, a new Show HN project, is a multiplexer for AI agents and terminals, aiming to solve session management when multiple coding agents run in parallel. This article analyzes its positioning, potential value, and early-stage risks.

LLaMA-Factory in Practice: A Complete No-Code Guide to Fine-Tuning Large Models
An introduction to LLaMA-Factory, the open-source fine-tuning tool: its 60.1K-star background, supported models and algorithms, local vs. cloud deployment, and CUDA setup steps.