我是丁师兄,专注于智能驾驶方向大模型落地,公众号:丁师兄大模型。
大模型1v1学习,已帮助多名同学上岸国内外大厂
Transformer 模型现在很火,内存优化又很重要。上周面试了一个 985 大学的女生,跟她谈到了 Transformer 模型的内存优化问题。
那么这个女生到底给出了哪些关于 Transformer 模型内存优化的独特思路呢?一起来看看。
01什么是Transformer模型中的KV缓存?
Transformer 中文本是逐个 token 生成的,每次新的预测都会基于之前生成的所有 tokens 的上下文信息。
这种对顺序数据的依赖会减慢生成过程,因为每次预测下一个 token 都需要重新处理序列中所有之前的 tokens。
例如,要预测第 100 个 token,模型必须使用前 99 个 token 的信息,需要对这些 token 进行复杂的矩阵运算。预测第 101 个 token 时,也要对前 99 个 token 做类似计算,以及对第 100 个 token 的新计算。
如何简化呢?
答案是使用 KV 缓存。KV 缓存通过保存这些计算结果,使模型可以在生成后续 tokens 时直接访问这些结果,而不需要重新计算。
换句话说,在生成第 101 个 token 时,模型只需从 KV 缓存中检索前 99 个 token 的已存储数据,并只对第 100 个 token 执行必要的计算。
02如何估算KV缓存消耗的内存大小?
KV 缓存