{
  "schema_version": 1,
  "builder_plan": {
    "scenario": "Your self-hosted model spends too long generating answers token by token.",
    "change": "Check whether a compatible draft model and serving integration exist before renting compute.",
    "baseline": "The same target with speculation off, then your existing drafter if you have one.",
    "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": "Accepted draft length, tokens per second, tail latency, output quality, and total GPU cost.",
    "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.17184",
  "title": "LoopSpec: Pipelined Self-Speculative Decoding for Looped Transformers",
  "summary": "LoopSpec replaces standard autoregressive decoding in Looped Transformers with a training-free self-speculative scheme in which early recurrent depths draft tokens, deeper depths optionally re-propose, and the full model verifies, pipelined so drafting overlaps verification. It costs additional implementation complexity in the decoding loop and extra compute for verification and the selective second proposal, though it requires no auxiliary draft model and no retraining. It can fail to deliver speedup if draft acceptance rates are low on the target workload, and it applies only to Looped Transformer architectures, which are not the mainstream open-weight models the reader is likely to deploy.",
  "rationale": "The method is restricted to Looped Transformers, a niche architecture the reader is unlikely to run in production, so the claim is worth tracking but not actionable on constrained infrastructure today.",
  "technique": "Pipelined self-speculative decoding for looped transformers",
  "family": "decodificacao_especulativa",
  "recommendation": "observar",
  "published": "2026-09-15",
  "as_of": "2026-10-18",
  "editorial_status": "indexed",
  "source_url": "https://arxiv.org/abs/2609.17184",
  "independent_implementations": 0,
  "total_implementations": 0,
  "stars": 0,
  "citations": 0,
  "claims": [
    {
      "claim_id": "claim-01",
      "statement": "LoopSpec replaces standard autoregressive decoding in Looped Transformers with a training-free self-speculative scheme in which early recurrent depths draft tokens, deeper depths optionally re-propose, and the full model verifies, pipelined so drafting overlaps verification. It costs additional implementation complexity in the decoding loop and extra compute for verification and the selective second proposal, though it requires no auxiliary draft model and no retraining. It can fail to deliver speedup if draft acceptance rates are low on the target workload, and it applies only to Looped Transformer architectures, which are not the mainstream open-weight models the reader is likely to deploy.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.17184",
      "source_page": null,
      "source_excerpt": ""
    },
    {
      "claim_id": "claim-02",
      "statement": "The paper reports up to 6.83x inference speedup across diverse Looped Transformers on reasoning and coding benchmarks, with lossless decoding under greedy and sampling regimes.",
      "basis": "inferred",
      "result": "",
      "baseline": "",
      "conditions": "",
      "source_url": "https://arxiv.org/abs/2609.17184",
      "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": "S5.EGx2",
      "label": "(8)",
      "section": "5 Theoretical Analysis",
      "role": "proposed_method",
      "latex": "d_{1}^{\\star}=(\\alpha\\beta)^{\\frac{\\alpha+1}{\\alpha^{2}+\\alpha+1}}(2\\alpha R)^{\\frac{1}{\\alpha^{2}+\\alpha+1}},\\qquad d_{2}^{\\star}=(\\alpha\\beta)^{\\frac{\\alpha}{\\alpha^{2}+\\alpha+1}}(2\\alpha R)^{\\frac{\\alpha+1}{\\alpha^{2}+\\alpha+1}}.",
      "mathml": "<math display=\"block\"><mrow><mrow><mrow><msubsup><mi>d</mi><mn>1</mn><mo>⋆</mo></msubsup><mo>=</mo><mrow><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>β</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mfrac><mrow><mi>α</mi><mo>+</mo><mn>1</mn></mrow><mrow><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><mi>α</mi><mo>+</mo><mn>1</mn></mrow></mfrac></msup><mo lspace=\"0em\" rspace=\"0em\">​</mo><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mn>2</mn><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>R</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mfrac><mn>1</mn><mrow><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><mi>α</mi><mo>+</mo><mn>1</mn></mrow></mfrac></msup></mrow></mrow><mo rspace=\"2.167em\">,</mo><mrow><msubsup><mi>d</mi><mn>2</mn><mo>⋆</mo></msubsup><mo>=</mo><mrow><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>β</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mfrac><mi>α</mi><mrow><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><mi>α</mi><mo>+</mo><mn>1</mn></mrow></mfrac></msup><mo lspace=\"0em\" rspace=\"0em\">​</mo><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mn>2</mn><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>R</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mfrac><mrow><mi>α</mi><mo>+</mo><mn>1</mn></mrow><mrow><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><mi>α</mi><mo>+</mo><mn>1</mn></mrow></mfrac></msup></mrow></mrow></mrow><mo lspace=\"0em\">.</mo></mrow></math>",
      "context": "for every <math display=\"inline\"><mrow><mrow><mi>r</mi><mo>=</mo><mn>1</mn></mrow><mo>,</mo><mi mathvariant=\"normal\">…</mi><mo>,</mo><mi>R</mi></mrow></math> and the total depth <math display=\"inline\"><mrow><mi>R</mi><mo>&gt;</mo><mrow><mfrac><mn>1</mn><mrow><mn>2</mn><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>α</mi></mrow></mfrac><mo lspace=\"0.167em\" rspace=\"0em\">​</mo><mrow><mi>max</mi><mo>⁡</mo><mrow><mo stretchy=\"false\">{</mo><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>β</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mrow><mn>1</mn><mo>/</mo><mi>α</mi></mrow></msup><mo>,</mo><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>β</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mrow><mrow><mo>−</mo><mi>α</mi></mrow><mo>−</mo><mn>1</mn></mrow></msup><mo>,</mo><mrow><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mi>α</mi><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>β</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mrow><mn>1</mn><mo>/</mo><mi>α</mi></mrow></msup><mo lspace=\"0em\" rspace=\"0em\">​</mo><msup><mrow><mo stretchy=\"false\">(</mo><mrow><mn>2</mn><mo lspace=\"0em\" rspace=\"0em\">​</mo><mi>α</mi></mrow><mo stretchy=\"false\">)</mo></mrow><mfrac><mrow><msup><mi>α</mi><mn>2</mn></msup><mo>+</mo><mi>α</mi><mo>+</mo><mn>1</mn></mrow><msup><mi>α</mi><mn>2</mn></msup></mfrac></msup></mrow><mo stretchy=\"false\">}</mo></mrow></mrow></mrow></mrow></math>. Then, the optimal proposal depths to minimize expected number of recurrent steps to commit a single token are",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    },
    {
      "anchor": "S6.E9",
      "label": "(9)",
      "section": "6 Experiments",
      "role": "metric",
      "latex": "\\gamma:=\\frac{N_{\\text{decode}}\\cdot R}{N_{\\text{accept},1}\\cdot d_{1}+N_{\\text{accept},2}\\cdot d_{2}+(N_{\\text{decode}}-N_{\\text{accept},1}-N_{\\text{accept},2})\\cdot R},",
      "mathml": "<math display=\"block\"><mrow><mrow><mi>γ</mi><mo>:=</mo><mfrac><mrow><msub><mi>N</mi><mtext>decode</mtext></msub><mo lspace=\"0.222em\" rspace=\"0.222em\">⋅</mo><mi>R</mi></mrow><mrow><mrow><msub><mi>N</mi><mrow><mtext>accept</mtext><mo>,</mo><mn>1</mn></mrow></msub><mo lspace=\"0.222em\" rspace=\"0.222em\">⋅</mo><msub><mi>d</mi><mn>1</mn></msub></mrow><mo>+</mo><mrow><msub><mi>N</mi><mrow><mtext>accept</mtext><mo>,</mo><mn>2</mn></mrow></msub><mo lspace=\"0.222em\" rspace=\"0.222em\">⋅</mo><msub><mi>d</mi><mn>2</mn></msub></mrow><mo>+</mo><mrow><mrow><mo stretchy=\"false\">(</mo><mrow><msub><mi>N</mi><mtext>decode</mtext></msub><mo>−</mo><msub><mi>N</mi><mrow><mtext>accept</mtext><mo>,</mo><mn>1</mn></mrow></msub><mo>−</mo><msub><mi>N</mi><mrow><mtext>accept</mtext><mo>,</mo><mn>2</mn></mrow></msub></mrow><mo rspace=\"0.055em\" stretchy=\"false\">)</mo></mrow><mo rspace=\"0.222em\">⋅</mo><mi>R</mi></mrow></mrow></mfrac></mrow><mo>,</mo></mrow></math>",
      "context": "We implement LoopSpec by extending the SGLang serving engine (Zheng et al., 2024). All experiments are executed on an NVIDIA RTX PRO 6000 Blackwell GPU in BF16 precision using the Triton attention backend and the TinyGEMM backend provided by FlashInfer (Ye et al., 2025). Further SGLang implementation details are in Appendix B. We report speedup on wall-clock time and mean accepted length <math display=\"inline\"><mi>γ</mi></math>. Wall-clock time speedup is measured over the decoding phase, after the completion of prompt prefilling until the end of generation. We define <math display=\"inline\"><mi>γ</mi></math> as the average number of generated tokens produced per full model execution of <math display=\"inline\"><mi>R</mi></math> recurrent steps:",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    },
    {
      "anchor": "S5.EGx1",
      "label": "(7)",
      "section": "5 Theoretical Analysis",
      "role": "complexity",
      "latex": "\\mathbb{E}_{X}\\left[\\mathrm{TV}\\left({p_{r}(\\cdot\\mid X),p_{R}(\\cdot\\mid X)}\\right)\\right]\\leq\\beta r^{-\\alpha}.",
      "mathml": "<math display=\"block\"><mrow><msub><mi>𝔼</mi><mi>X</mi></msub><mrow><mo>[</mo><mi>TV</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>r</mi></msub><mrow><mo stretchy=\"false\">(</mo><mo lspace=\"0em\" rspace=\"0em\">⋅</mo><mo lspace=\"0em\" rspace=\"0.167em\">∣</mo><mi>X</mi><mo stretchy=\"false\">)</mo></mrow><mo>,</mo><msub><mi>p</mi><mi>R</mi></msub><mrow><mo stretchy=\"false\">(</mo><mo lspace=\"0em\" rspace=\"0em\">⋅</mo><mo lspace=\"0em\" rspace=\"0.167em\">∣</mo><mi>X</mi><mo stretchy=\"false\">)</mo></mrow><mo>)</mo></mrow><mo>]</mo></mrow><mo>≤</mo><mi>β</mi><msup><mi>r</mi><mrow><mo>−</mo><mi>α</mi></mrow></msup><mo lspace=\"0em\">.</mo></mrow></math>",
      "context": "Let <math display=\"inline\"><mi>X</mi></math> be a random prefix drawn from a fixed distribution over prefixes. Assume that there exist constants <math display=\"inline\"><mrow><mrow><mi>α</mi><mo>,</mo><mi>β</mi></mrow><mo>&gt;</mo><mn>0</mn></mrow></math> such that",
      "headline": "",
      "explanation": "",
      "objective": "",
      "symbols": {},
      "evidence": "",
      "evidence_url": "",
      "source_url": ""
    }
  ],
  "equations_status": "selected",
  "core_kind": "formula",
  "equations_fetched_at": "2026-10-18",
  "equations_source_url": "",
  "equations_source_sha256": "",
  "exposures_reviewed_at": "",
  "exposures_source_sha256": ""
}