KV Cache
Premiumdecode 每步重算历史 token 的 K/V 是纯浪费,KV cache 把它省掉,代价是显存
Get code access你已经会让 Transformer 做一次完整的前向传播:给定一段 token,一次算出每个位置的输出(见 Transformer 前向传播)。但真正生成文本时,模型不是一次吐出一整段,而是一个 token 一个 token 地挤出来。这个"逐 token"的过程藏着一笔巨大的浪费:每生成一个新 token,朴素实现都要把整段历史重新过一遍模型,而历史 token 的 K 和 V 从第一次算出来那一刻起就再也不会变。
这一章就来消除这份重复劳动。我们要搞清楚四件事:这笔浪费到底有多大、为什么历史的 K/V 一定不变、怎么把它们缓存下来复用、以及这份缓存会吃掉多少显存。KV cache 是几乎所有推理系统的地基,理解它,才能看懂后面 batching、显存管理、量化这些优化在对付什么。
生成是一步一步挤出来的
Log in to continue reading
This is premium content. Please log in to access the full article.
CookLLM Docs