M3 not bit-reproducible under prefix-cache reuse (cache vs recompute)

#25
by 2imi9 - opened

On MiniMax-M3 (vLLM v1, ROCm/gfx942) the model doesn't seem bit-reproducible under prefix-cache reuse: for the same prompt, the output logprobs differ (up to ~1.8, occasionally changing the generated text) depending on how much of the final partial block is read from the KV cache vs recomputed. It reproduces with plain vLLM prefix caching alone — no external KV store — and a dense model shows only float-noise (≈0, no text change) in the identical test, which points to the sparse lightning indexer's top-k token selection amplifying tiny recompute-vs-cache numerical differences into different selections. Is this expected for the sparse-attention path, and is there a recommended way to keep cache-reuse outputs deterministic?

在 MiniMax-M3 上(vLLM v1,ROCm/gfx942),模型在 prefix cache 复用下似乎不是逐位可复现的:同一个 prompt,输出的 logprob 会出现差异(最大约 1.8,偶尔会改变生成的文本),差异取决于最后那个不满一个 block 的 tail 有多少是从 KV cache 读取、有多少是被重算的。这个现象只用 vLLM 原生的 prefix caching 就能复现(没有任何外部 KV 存储),而在完全相同的测试下,一个 dense 模型只有浮点底噪(约等于 0,文本不变),这指向稀疏 lightning indexer 的 top-k token 选择,把"重算 vs 缓存"之间极小的数值差异放大成了不同的选择。请问这是稀疏注意力路径的预期行为吗?有没有推荐的方式让 cache 复用的输出保持确定?

Sign up or log in to comment