对于LLM,长上下文功能非常重要。最近谷歌的一篇论文提出了一种新的Infini-attention注意力机制,将长上下文的注意力KV状态压缩到记忆中,有效解决LLM在处理长序列时的内存消耗大和计算成本高的问题。
论文方法
通过下图可以看的比较直接,图的右侧是常规的多头注意力;左侧的处理,通过当前状态的Q值,去检索历史的KV状态,然后计算Amem(具体计算后续描述);然后聚合,再经过线性投影计算。
从图中可以看到两个主要问题,一个是历史的KV如何更新,一个是如何根据当前Q值检索历史KV状态。
文章中提到的Memory retrieval(记忆检索)是Infini-attention机制中的一个关键步骤,它涉及到从压缩记忆中检索与当前输入序列相关的信息。具体的方法如下:
-
使用查询向量(Query Vectors):在Infini-attention中,每个注意力头(attention head)都会生成一个查询向量(Q),这个查询向量用于与压缩记忆中存储的信息进行匹配。
-
压缩记忆(Compressive Memory):压缩记忆由两个主要部分组成