返回课堂

完整深入材料 · 保留原页与全部停点。回到相关主讲

一个请求的当前记忆,可以占到多少空间?

N54/b0 · 先核对模型规格

32层8每层 KV 组128每组数值2 bytes每数 · BF16KV一个 token实际保存的 KV 组数
先核对模型规格

上一页的一列缓存,换成字节到底有多大?先读四张规格卡:三十二层,每层八组K/V,每组一百二十八个数,每个数按BF16占两字节。我们先只算一个token;它在每层都要留下K和V两份。这是本页指定的教学配置,不是所有模型都采用这四个数。

教师备课:指图与模拟问答

指图与推进 · 不朗读逐项指四张规格卡,再指左侧一个token的K与V;此时不提前读还未出现的乘法。

N54/b1 · 从一个 token 逐维相乘

32层8每层 KV 组128每组数值2 bytes每数 · BF16KV一个 token2 × 32 × 8 × 128 × 2K / V 两份bytes / 数131,072 bytes = 128 KiB / token
从一个 token 逐维相乘

两份K/V,乘三十二层,乘八组,乘每组一百二十八个数,最后乘每数两字节。注意首尾两个二:前面的二来自两份对象,最后的二来自每个数占的字节。结果是131072字节,也就是每token 128KiB。这样,上一页的一列状态就变成了可以按长度加总的空间成本。

进一步解释

KiB=1024 bytes,所以131072÷1024=128 KiB。这里按指定存储格式估算KV数据本体,尚未加入分配空余、临时工作区等开销。

教师备课:指图与模拟问答

指图与推进 · 不朗读推进到b1,沿乘法逐项读;分别指首项K/V两份和末项bytes/数,再指128 KiB/token结果。

N54/b2 · 长度与独立请求数进入账本

32层8每层 KV 组128每组数值2 bytes每数 · BF16KV一个 token2 × 32 × 8 × 128 × 2K / V 两份bytes / 数131,072 bytes = 128 KiB / token8192 个已缓存 token输入 + 已生成部分 = 1 GiB模型权重:请求共享一份111111118 份互不共享的请求缓存 → 8 GiB
长度与独立请求数进入账本

现在把输入和已生成、已进入缓存的部分合起来,共8192个token。乘刚才每token的成本,一个请求就是1GiB。如果八个独立请求都有同样长度,各自保存缓存,总共就是8GiB。右边模型权重可以共享一份;八份不同上下文状态,不能因为参数相同就自动合并。

进一步解释

8192×128 KiB=1 GiB,GiB=2³⁰ bytes;前面训练账本的GB是十进制单位。若长度改为32768个已缓存token,同配置为4 GiB,这是延伸算例。

教师备课:指图与模拟问答

指图与推进 · 不朗读推进到b2,先指8192已缓存token和输入加生成部分,再指共享权重框与八份缓存;不指未出现的32K延伸例。

N54/b3 · 生成继续,缓存继续增长

32层8每层 KV 组128每组数值2 bytes每数 · BF16KV一个 token2 × 32 × 8 × 128 × 2K / V 两份bytes / 数131,072 bytes = 128 KiB / token8192 个已缓存 token输入 + 已生成部分 = 1 GiB模型权重:请求共享一份111111118 份互不共享的请求缓存 → 8 GiB继续生成 → 增长
生成继续,缓存继续增长

回答还没结束,已缓存长度会接着增长。请求刚进来时,我们通常不知道最后会生成多长。那空间是一开始按最大长度整块预留,还是需要多少再逐步分配?下一页先保留逻辑上的token顺序,再把它与显存中的物理位置分开。

教师备课:指图与模拟问答

指图与推进 · 不朗读推进到b3,指缓存条新增的金色段和增长方向;由“最终长度未知”转到下一页的块分配。

补充推导、边界与来源

本课指定教学配置为 L=32 层、每层 h_KV=8 组、每组维度 d_head=128,每数 BF16 占 b=2 bytes。KV 的常用存储估算为 $M_{KV}=2LTh_{KV}d_{head}b$,T 是已经进入缓存的输入与生成 token 总长度。首项 2 表示 K 与 V 两份,最后的 b 表示每数存储字节。

每 token:2×32×8×128×2=131072 bytes=128 KiB。8192 token:1073741824 bytes=1 GiB;32768 token=4 GiB。8 个互不共享、各长 8192 token 的请求共需 8 GiB KV。权重可以共享,当前上下文状态不能任意合并。

KiB=2¹⁰ bytes,GiB=2³⁰ bytes;与训练账本的十进制 GB 分开。GQA 是这种减少实际 KV 头/组数的一类架构安排,但本配置不是所有 8B 模型的固定规格。

原 KV 容量页 · 完整服务主题 · PagedAttention §2。

本页证据与条件

指定配置的教学算例:32 层、8 KV 组、128 维、BF16;二进制 KiB / GiB

进入主题正文