你正在OpenAI面试ML工程师,面试官问:“我们的GPT模型生成100个token需要42秒,怎么让它快5倍?”你可能会说:“我会优化模型架构,换更好的GPU。”面试结束。
你忽略了关键瓶颈——冗余计算。
没有KV缓存,模型每生成一个token都要重新计算所有键值对,浪费大量时间。
- 有KV缓存,时间约9秒
- 无KV缓存,时间42秒,足足慢了5倍
为什么?因为生成新token时,只需要最新token的查询向量(query)和之前所有token的键值对(key & value)。之前的键值对不会变,完全可以缓存复用。
KV缓存的核心思路是:第一次计算时缓存所有key和value,接下来每生成一个token,只计算该token的key和value,其他直接从缓存拿,极大减少重复计算。
这也是为什么ChatGPT生成第一个token比后续慢——首次计算KV缓存需要时间,这叫做time-to-first-token(TTFT),优化它是未来的挑战。
总结:提升GPT推理速度,关键不在硬件,而在智能利用KV缓存减少冗余计算,显著提升效率和响应速度。
原文链接:x.com/akshay_pachaar/status/1980250166000230739