CSA2 compresses attention on three axes: the bytes in each entry, the number of tokens per entry, and the number of layers that write a cache. Four Full CSA2 layers write global main KV. Thirty-four later CSA2 layers reuse compatible KV; layers 0 and 1 are SWA-only.
Sharing a cache and sharing an attention selection are different choices. CSA2 can share the stored cache while allowing selected layers to pick a fresh subset of it. That separation is the point of its three modes.
What each mode does, and why all three exist
A Full layer computes the compressed keys and values, builds indexer keys, then makes a top-512 selection. Layers 2, 8, 14 and 20 do this.
A Reindex layer writes no cache. It scores the shared cache with its own query and selects a new 512 entries. Layers 24, 28, 32 and 36 use this mode.
A Reuse layer computes its own main query and SWA KV, then takes main KV and the latest compatible Top-K set from a preceding Full or Reindex layer. It performs no new indexing. Fifteen decoder layers work this way.
A decoder made entirely of Reuse layers would read the same 512 entries twenty times. A decoder made entirely of Full layers would store 20 fresh copies of history. The decoder uses one Full layer and four Reindex layers between those extremes.
Why the index also needed fixing
Sparse attention needs a cheap first guess about where to look. The indexer provides it. At a million tokens, scanning every visible position in every layer would erase much of the cache saving.
Decoder layer 20 scans the context once and ranks blocks of eight positions by their best score. It keeps up to 2,048 blocks, yielding up to 16,384 candidate positions.
Later Reindex layers score only that pool, then choose their own 512 entries. Their indexer cost is bounded even when the context grows.
Make three decoder layers read the same incident
Build a pool with Full. Change the question. Then compare Reindex with Reuse.
toy context, 18 word groups stand in for a long document
context searched this layer
0
toy positions
entries given to attention
0
512 in the released model
shared cache copied?
no
all modes read one cache
no decoder layer chosen
Build a shared cache first, then try a later layer.