# Text utilization (how much of a 1M-token window holds real text)

> VI: https://5ac.vn/wiki/text-utilization/ · EN: https://5ac.vn/en/wiki/text-utilization/ · lang: en · spec_as_of 2026-10-22 (spec no formal spec) · cluster C17

The share of a configured context window that actually carries text tokens under load: 5ac's DeepSeek V4 Flash recipe records 0.835, about 2.49 million tokens on a 1M window.

---
## Definition

Text utilization answers a question the spec sheet never states: of a context window declared at its maximum size, how much of it really holds text tokens once the system runs under load? A window advertised at a million tokens is a paper ceiling; how completely that ceiling is filled — and whether it collapses early to memory pressure — depends on how the engine allocates the cache behind it. Two setups that both advertise 1M tokens may therefore carry very different amounts of real working context.

## Mechanism

The cache that stores per-token attention data is covered in the [KV cache](/en/wiki/kv-cache/) entry, and how much memory an engine spends on it belongs to [Inference engine](/en/wiki/inference-engine/). Text utilization sits at the joint between those two, and 5ac's DeepSeek V4 Flash recipe is where it gets measured: the article caps the window at `MAX_MODEL_LEN=1048576` (1M), quantizes the cache to NVFP4, and reports true 1M context at "0.835 text utilization — about 2.49 million tokens". The number did not arrive for free: one mandatory hotfix in the recipe (RULER-lite, item #81) changed how cache blocks are padded — it "bulk-pads the right 32k/262k cells (previously capped at ~4.8k even on exit 0)", meaning before the fix the measurement stopped near 4.8k cells while the run still reported success.

## Application context

For agents that ingest large document sets or hold long conversations, text utilization deserves more attention than the nominal window size, because it is the share of money actually converted into usable context. The deploy article frames the stack's selling points as a pair: "1M context" at "0.835 text utilization", which it calls "enough to hold a large business's working context". The width of the window itself belongs to the [Context window](/en/wiki/context-window/) entry; this entry keeps only the filled-share of it — plus the reminder that the share can be broken by an allocation detail until someone hotfixes it.

## Sources fetched

- [Deploy DeepSeek V4 Flash on 2× DGX Spark — recipe](/en/blog/deploy-deepseek-v4-flash-2x-dgx-spark/) — text utilization 0.835 of the NVFP4 KV cache, about 2.49M tokens on a 1M window (MAX_MODEL_LEN=1048576), RULER-lite hotfix bulk-padding 32k/262k cells — accessed 2026-10-22

## Related

- [Context window](/en/wiki/context-window/)
- [KV cache](/en/wiki/kv-cache/)
- [Inference engine](/en/wiki/inference-engine/)
