【人工智能】结合代码通俗讲解 Transformer 推理性能优化技术:KV Cache

禅与计算机程序设计艺术 2024-08-21 11:31:04 阅读 75

目录

0. 引言

1. KV Cache是啥?

2. 背景

3. 原理

4. 实现细节

5. 总结


在解码器推理加速的时候,由于解码过程是一个token一个token的生成,如果每一次解码都从输入开始拼接好解码的token,生成输入数据,然后预测下一个token,那么会有非常多的重复计算。

为了解决这个问题,Transformers利用缓存的方式,把之前的计算结果缓存起来,下一次解码的时候直接利用缓存的结果,这样就可以大大加快解码的速度。

为了能更好的理解缓存的方案,我画了两种模型结构图,一种是Decoder模型结构(利用causal mask的self-attention),另一种是Encoder-Decoder结构(利用cross-attention)。下面两个图说明了这两种结构中哪些部分是能够被缓存的。对于causal mask self attention来讲,前面已经计算出的key和value都可以缓存起来。对于Encoder-Decoder结构的cross-attention来讲,Encoder的输出作为key和value都可以缓存起来。

0. 引言

做大模型性能优化的一定对KV Cache不陌生,那么我们对这个技术了解到什么程度呢?请尝试回答如下问题:

KV Cache节省了



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。