<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Model Serving on Nalar</title>
    <link>https://nalar.dev/tags/model-serving/</link>
    <description>Recent content in Model Serving on Nalar</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 23 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nalar.dev/tags/model-serving/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Prefix KV Cache Reuse Depends on Exact Context Identity</title>
      <link>https://nalar.dev/prefix-kv-cache-reuse-depends-on-exact-context-identity/</link>
      <pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/prefix-kv-cache-reuse-depends-on-exact-context-identity/</guid>
      <description>&lt;p&gt;A prefix cache can remove repeated prefill work without changing the model output, but only when the cached key and value states represent the same prefix context that the new request would have produced. Matching visible text is not enough. The serving path ultimately operates on token IDs, positions, model parameters, and implementation-specific attention state.&lt;/p&gt;&#xA;&lt;p&gt;This boundary makes prefix caching different from a generic text cache. A text cache stores a result associated with an input. A KV prefix cache stores intermediate states whose validity depends on the computation that created them.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prefix KV Cache Reuse Depends on Exact Token History</title>
      <link>https://nalar.dev/prefix-kv-cache-reuse-depends-on-exact-token-history/</link>
      <pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/prefix-kv-cache-reuse-depends-on-exact-token-history/</guid>
      <description>&lt;p&gt;A KV cache entry is not a reusable representation of arbitrary text that happens to look similar. For an autoregressive transformer, cached keys and values are intermediate states produced for a specific token prefix under a specific execution context. Reusing them is valid only when the new request reaches the same state boundary.&lt;/p&gt;&#xA;&lt;p&gt;That boundary is stricter than matching visible characters. Tokenization, token order, position handling, model identity, adapter state, and other inputs that affect hidden states can all determine whether a cached prefix still represents the computation required by the new request.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Speculative Decoding Couples Draft Speed with Acceptance Rate</title>
      <link>https://nalar.dev/speculative-decoding-couples-draft-speed-with-acceptance-rate/</link>
      <pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/speculative-decoding-couples-draft-speed-with-acceptance-rate/</guid>
      <description>&lt;p&gt;Autoregressive generation normally advances one accepted token at a time. Each new token extends the prefix, so the next target-model evaluation depends on the token selected at the preceding position. Speculative decoding changes the execution schedule: a cheaper draft process proposes several future tokens, then the target model evaluates those positions together and decides how much of the proposal can be retained.&lt;/p&gt;&#xA;&lt;p&gt;That rearrangement can reduce the number of serial target-model calls per emitted token. It does not make verification free, and a longer draft block is not automatically better. The useful operating point depends on how quickly proposals are produced, how often they survive target verification, and what the serving stack spends on rejected work.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
