什么是Transformer模型中的KV缓存?
在Transformer模型中,KV缓存(Key-Value Cache)具有重要作用,以下是关于它的详细介绍:
概念含义
KV缓存主要是用于存储在模型推理过程中已经计算过的键(Key)和值(Value)信息。在Transformer架构里,比如在自注意力机制等计算环节会涉及到对输入序列不同位置信息进行关联、加权等操作,计算过程中会生成相应的键值对,而KV缓存就是用来暂存这些在处理前面token时所产生的键值相关计算结果的一个存储机制。
工作原理:上下文新增那之前计算的KV还可用,在原有基础上对新增的进行计算就行
当模型开始逐个生成文本的tokens时,每次计算新的token都要参考前面已生成tokens的相关上下文信息。最初,按照正常计算流程处理并生成第一个token,同时会产生对应的键值对,这些就被存入KV缓存中。当要生成第二个token时,**原本需要重新基于前面所有(这里就是第一个token)的信息再完整计算一遍,**但由于有了KV缓存,就可以直接从缓存