大家好,我是Tony Bai。
欢迎来到我们的专栏 《AI 工程师的 GPU 入门课》的第五讲。
经过前四讲的铺垫,我们已经掌握了 GPU 的硬件架构和编程模型。现在,我们要面对 AI 推理中最大的那个 Boss 了——显存(GPU Memory)。
在 LLM 推理中,显存不仅是用来存模型的权重(Weights),更是用来存“记忆”的(KV Cache)。当你在和 ChatGPT等大模型应用 进行长对话时,你的每一句话,每一个 Token,都会在显存里留下一笔“债”。这笔债如果还不上(显存爆了),服务就会崩(OOM)。
今天,我们将深入 LLM 推理的显存深水区。我们要搞清楚 KV Cache 到底是个什么鬼(进而了解本微专栏开篇词提到的Google TurboQuant算法),以及 vLLM 是如何用“操作系统的智慧”解决这个难题,从而一战封神的。
显存去哪了?:LLM 推理的显存账单
当我们加载一个模型(比如 Llama-3-8B)时,显存不仅被模型权重占用了。显存主要由三部分组成:
模型权重 (Model Weights):这是固定的。
FP16 精度下,8B 模型约占用16GB。
激活值 (Activations):推理过程中的中间变量。
通常较小,且用完即扔。
KV Cache (键值缓存):这是今天的重点!
它是动态增长的,随着对话长度线性增加。
它是持久的,为了生成下一个 Token,必须保留之前所有 Token 的 KV 值。
什么是 KV Cache?