从多少显存可以运行一个7B模型开始聊起

常常有人会聊一个问题,你如果要能够运行一个7B的模型,显卡需要多少显存才够。

感觉这个话题是很有意思的,如果你具体问题具体分析,可以先反问对方,FP8量化还是FP16量化,这时候对面当然可以反讥你,这么小的模型还需要量化?

当然我们这篇博客的重点并不在这个部分,我们先开始从传统的方式来回答这个问题,这个模型是FP16的,基础知识会告诉我们,FP16的模型,每个参数是2Byte,所以7B的模型需要14G的显存。当然,这里的显存仅仅是把模型权重加载到显存上所需要占据的显存,实际计算过程中,仍然有相当一部分需要显存咋用。

这部分的内容主要包括:KV Cache、中间张量、框架开销和碎片化显存等。中间张良是可以理解的,因为计算一定会产生中间输出,中间输出在计算结束前,计算图并不会直接消失,因而结果需要空间存储。框架开销和碎片化显存也可以理解,一般一些triton算子计算的输入虚拟地址或者物理地址需要连续,所以会有这样的要求。

那么KV Cache的存在,到底是为了什么呢?其实从名字就能看出来,缓存的目的无非就是一条,用空间换时间。

那么在讨论KV Cache需要占用多少显存之前,我们需要讨论这样一个话题,为什么能用空间换时间。也就是说,KV Cache为什么能够生效。

这里可以写一些学习笔记、技术心得,或者任何想记录的内容。

本博客使用 Markdown 写作,支持标题、列表、表格、引用、代码块等常用语法。

祝阅读愉快!