LLM推理和优化(2):节省KV Cache
背景
生成阶段,通过缓存KV Cache可以减少重复计算,但是内存有限,当缓存token长度过长,会导致内存爆掉,因而通过减少KV Cache的方式,减少内存占用。
KV cache
以下引自:transformer之KV Cache
- 原理是什么
最本质的原理是避免重复计算,将需要重复计算的结果进行缓存,需要缓存的值为历史token对应的KV值,所以叫KV Cache。 - 为什么只需要KV
生成阶段,输入新的token需要先计算其Q值,然后计算其与历史token K的注意力值,最后与历史token V值进行加权即得到结果,所以只需要缓存历史token的KV值。 - 为什么会存在重复计算
首先,生成式模型每生成一个新token都需要调用整个模型进行一次推理,历史token计算得到的中间激活值在Decoder架构的模型中每次推理时都是一样的,所以可以进行缓存。