{
  "schema_version": 1,
  "builder_plan": {
    "scenario": "Long customer conversations exhaust memory or limit concurrent requests.",
    "change": "Change only the attention cache policy, after checking model and runtime support.",
    "baseline": "The same model with its ordinary attention cache.",
    "steps": [
      "Locate the paper's implementation and check its license, model support, data needs, and hardware requirements. Stop here if you cannot obtain the required artifacts.",
      "Save a small set of representative product tasks and expected outcomes. Keep evaluation tasks out of any training or tuning, and choose quality and cost limits before running.",
      "Run the baseline and the proposed change on identical inputs. Keep other settings fixed and repeat paired runs to expose variation.",
      "Save per-task outputs, failures, timings, and all usage costs. Review regressions before expanding the test."
    ],
    "measure": "Peak cache memory, long-context answer quality, first-token latency, and requests completed.",
    "decision": "Keep the change only if it meets your preselected quality and latency limits and improves the metric you care about after setup and operating costs. Otherwise retain the baseline. This is an exploration plan, not a validated recommendation."
  },
  "builder_review": null,
  "arxiv_id": "2609.03430",
  "title": "Random Attention: Rethinking KV Cache Eviction for Efficient Reasoning",
  "summary": "Random Attention replaces score-based KV cache eviction policies (such as H2O-style importance scoring) with uniform random eviction within each attention head, while always retaining the prompt, eliminating all per-token scoring computation. It costs nothing in memory or latency beyond the eviction itself and adds almost no implementation complexity, since the selection signal is removed entirely; quality is reported to match the best prior evictor on reasoning workloads. It can fail on workloads where the reasoning trace does not restate needed information or where redundancy across heads is insufficient, and on non-reasoning tasks or cache configurations where the prompt is not the dominant fragile component, since the findings are validated on reasoning traces with long chains of thought.",
  "rationale": "For a single-GPU or API-constrained team serving long reasoning outputs, removing the eviction scoring step is a strictly simpler mechanism that the paper shows preserves accuracy while delivering measurably higher throughput in a standard serving stack.",
  "technique": "Random KV cache eviction preserving prompt tokens",
  "family": "cache_kv",
  "recommendation": "adotar",
  "published": "2026-09-03",
  "as_of": "2026-10-18",
  "editorial_status": "indexed",
  "source_url": "https://arxiv.org/abs/2609.03430",
  "independent_implementations": 3,
  "total_implementations": 4,
  "stars": 73,
  "citations": 0,
  "claims": [
    {
      "claim_id": "claim-01",
      "statement": "Random Attention replaces score-based KV cache eviction policies (such as H2O-style importance scoring) with uniform random eviction within each attention head, while always retaining the prompt, eliminating all per-token scoring computation. It costs nothing in memory or latency beyond the eviction itself and adds almost no implementation complexity, since the selection signal is removed entirely; quality is reported to match the best prior evictor on reasoning workloads. It can fail on workloads where the reasoning trace does not restate needed information or where redundancy across heads is insufficient, and on non-reasoning tasks or cache configurations where the prompt is not the dominant fragile component, since the findings are validated on reasoning traces with long chains of thought.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.03430",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "claim_id": "claim-02",
      "statement": "Serves 32-43% higher throughput than the strongest prior score-based evictor in vLLM while matching its accuracy across four models and six reasoning tasks.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.03430",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "exposure_map": [
    {
      "dimension": "quality",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compute",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "latency",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "operations",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "compatibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "security",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "data_and_training",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "dimension": "reproducibility",
      "basis": "not_evaluated",
      "finding": "",
      "interpretation": "",
      "limitation": "",
      "next_check": "",
      "source_url": "",
      "source_page": null,
      "source_excerpt": ""
    }
  ],
  "risks": [],
  "minimum_test": [],
  "open_questions": [],
  "independent_tests": [],
  "lab_reproductions": [],
  "report_available": false,
  "validation_tier": "unknown",
  "evidence_tier": "unknown",
  "infrastructure_basis": "unknown",
  "equations": [
    {
      "anchor": "S3.E3",
      "label": "(3)",
      "section": "3 Random Attention",
      "role": "proposed_method",
      "latex": "s_{i}\\;=\\;\\begin{cases}+\\infty,&i\\leq\\ell_{\\mathrm{p}}\\quad\\text{(the prompt)},\\\\[2.0pt]\nu_{i}\\sim\\mathrm{Uniform}(0,1),&\\text{otherwise},\\end{cases}",
      "mathml": "<math display=\"block\"><mrow><msub><mi>s</mi><mi>i</mi></msub><mo lspace=\"0.558em\" rspace=\"0.558em\">=</mo><mrow><mo>{</mo><mtable columnspacing=\"5pt\" displaystyle=\"true\" rowspacing=\"0pt\"><mtr><mtd columnalign=\"left\"><mrow><mrow><mo>+</mo><mi mathvariant=\"normal\">∞</mi></mrow><mo>,</mo></mrow></mtd><mtd columnalign=\"left\"><mrow><mrow><mrow><mi>i</mi><mo>≤</mo><msub><mi mathvariant=\"normal\">ℓ</mi><mi>p</mi></msub></mrow><mspace width=\"1em\"></mspace><mtext>(the prompt)</mtext></mrow><mo>,</mo></mrow></mtd></mtr><mtr><mtd columnalign=\"left\"><mrow><mrow><msub><mi>u</mi><mi>i</mi></msub><mo>∼</mo><mrow><mi>Uniform</mi><mo>⁡</mo><mrow><mo stretchy=\"false\">(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo stretchy=\"false\">)</mo></mrow></mrow></mrow><mo>,</mo></mrow></mtd><mtd columnalign=\"left\"><mrow><mtext>otherwise</mtext><mo>,</mo></mrow></mtd></mtr></mtable></mrow></mrow></math>",
      "context": "In the notation of §2, the entire method is",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    },
    {
      "anchor": "S2.E2",
      "label": "(2)",
      "section": "2 Preliminaries",
      "role": "baseline",
      "latex": "\\mathcal{S}_{t}\\;=\\;\\operatorname{top-}\\!K_{\\,i\\in\\mathcal{C}_{t}}\\;s_{i},",
      "mathml": "<math display=\"block\"><mrow><mrow><msub><mi>𝒮</mi><mi>t</mi></msub><mo lspace=\"0.558em\" rspace=\"0.558em\">=</mo><mrow><mrow><mi>top</mi><mo>−</mo></mrow><mo>⁡</mo><mrow><msub><mi>K</mi><mrow><mi>i</mi><mo>∈</mo><msub><mi>𝒞</mi><mi>t</mi></msub></mrow></msub><mo lspace=\"0em\" rspace=\"0em\">​</mo><msub><mi>s</mi><mi>i</mi></msub></mrow></mrow></mrow><mo>,</mo></mrow></math>",
      "context": "We adopt the decode-phase framework of Cai et al. (2025) and Chang et al. (2026). The cache keeps a persistent budget of <math display=\"inline\"><mi>K</mi></math> pairs plus a buffer of the <math display=\"inline\"><mrow><mi>r</mi><mo>≪</mo><mi>K</mi></mrow></math> most recent pairs, which is never scored. Each decode step appends one pair, so the buffer fills every <math display=\"inline\"><mi>r</mi></math> steps and triggers an eviction: every candidate <math display=\"inline\"><mi>i</mi></math> in the candidate set <math display=\"inline\"><msub><mi>𝒞</mi><mi>t</mi></msub></math>, the cached positions outside the buffer, receives a real-valued score <math display=\"inline\"><msub><mi>s</mi><mi>i</mi></msub></math> from a policy-specific rule, which may depend on the whole cache and on the past queries, and the <math display=\"inline\"><mi>K</mi></math> highest-scoring candidates are kept,",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    },
    {
      "anchor": "S5.E4",
      "label": "(4)",
      "section": "5 Why the Selection Signal Buys So Little",
      "role": "metric",
      "latex": "R\\;=\\;\\frac{\\sum_{i}\\bigl(\\mathrm{LP}_{i}-\\mathrm{LP}_{i}^{\\mathrm{del}}\\bigr)}{\\sum_{i}\\bigl(\\mathrm{LP}_{i}^{\\mathrm{kept}}-\\mathrm{LP}_{i}^{\\mathrm{del}}\\bigr)},",
      "mathml": "<math display=\"block\"><mrow><mrow><mi>R</mi><mo lspace=\"0.558em\" rspace=\"0.558em\">=</mo><mfrac><mrow><msub><mo>∑</mo><mi>i</mi></msub><mrow><mo lspace=\"0em\" maxsize=\"1.200em\" minsize=\"1.200em\">(</mo><mrow><msub><mi>LP</mi><mi>i</mi></msub><mo>−</mo><msubsup><mi>LP</mi><mi>i</mi><mi>del</mi></msubsup></mrow><mo maxsize=\"1.200em\" minsize=\"1.200em\">)</mo></mrow></mrow><mrow><msub><mo>∑</mo><mi>i</mi></msub><mrow><mo lspace=\"0em\" maxsize=\"1.200em\" minsize=\"1.200em\">(</mo><mrow><msubsup><mi>LP</mi><mi>i</mi><mi>kept</mi></msubsup><mo>−</mo><msubsup><mi>LP</mi><mi>i</mi><mi>del</mi></msubsup></mrow><mo maxsize=\"1.200em\" minsize=\"1.200em\">)</mo></mrow></mrow></mfrac></mrow><mo>,</mo></mrow></math>",
      "context": "cross-head redundancy with a planted-fact probing experiment. A synthetic fact (e.g. Let zq = 4729; a fresh variable and value each time) is inserted into real model-generated MATH500 reasoning traces, with a question needing the value appended at the end. The fact is planted tokens before the question, so the cache is evicted times between the two (other distances in Appendix B); the question itself is always kept. What we control is which key-value heads keep the fact: a condition is a chosen set of heads in which the fact’s tokens are pinned, with the fact evicted from every other head and the standard per-head uniform eviction running on everything else. Two metrics measure what survives. Retrieval is the fraction of traces whose greedy decode reproduces the value at the question. Because retrieval falls to zero in the hardest conditions, a graded recall carries the comparison there:",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    }
  ],
  "equations_status": "selected",
  "core_kind": "formula",
  "equations_fetched_at": "2026-09-25",
  "equations_source_url": "",
  "equations_source_sha256": "",
  "exposures_reviewed_at": "",
  "exposures_source_sha256": ""
}