Llama中模块参数大小

LLama2中,流程中数据大小的变换如下

Transformer模块

第一次输入,进行prefill,输入x维度为1, 8, 4096

  1. 构建wq,wk,wv,wo,尺寸均为4096,4096, 与x点乘,得到xq, xk, xv

  2. 构建KV cache, 尺寸为 batch size, max_seq_len, local_kv_heads, head_dim,对应 1, 8, 32, 128

3.基于kv cache构造 keys, alues,对应的尺寸还是1,8,32,128

  1. 在最后两个维度对于xq和key进行点乘,得到scores,维度变成【1, 32, 8, 8】

  2. 将mask与scores相加

  3. 对于scores进行softmax

  4. 将scores 1, 32, 8, 8与values 1, 32, 8, 128进行乘法

  5. 得到output 1, 8, 4096

  6. 将output再与wo进行乘法1, 8, 4096

  7. 接下来对于输出进行 ffn_norm的操作

Feedforward模块

11.然后进行feed_forward.得到当前transformer模块的输出 1, 8, 4096

feed_forward的操作如下,虽然代码很小,但是计算量却很大。

复制代码
    def forward(self, x):
        return self.w2(F.silu(self.w1(x)) * self.w3(x))

其中,w1的维度为11008, 4096, w2的维度为4096, 11008, w3的维度为11008, 4096

kv cache的表达如下

python 复制代码
        self.cache_k = torch.zeros(
            (
                args.max_batch_size,
                args.max_seq_len,
                self.n_local_kv_heads,
                self.head_dim,
            )
        ).cuda()
        self.cache_v = torch.zeros(
            (
                args.max_batch_size,
                args.max_seq_len,
                self.n_local_kv_heads,
                self.head_dim,
            )

关于kv cache的细节讨论

llama2设定 local_kv_heads为32,head_dim为128。所以,kv cache的尺寸为 1, 512,32, 128 * 2

对于一个batch的数据来说哦,因为llama2 7B 包含32个transformer,所以,当使用FP32表达时, 对应一个batch的kv cache的大小为128 * 32 * 128 *2 * 32 * 4byte= 0.5GB.

这里,也可以看到几个变量:

* 当batch变大时,kv cache线性增长

* 当batch 的最大长度增大时, Kv cache线性增长。

参考链接:

https://arxiv.org/pdf/1911.02150

相关推荐
论文复现现场5 小时前
AutoDL、算家云与公有云 GPU 怎么选?环境复现、计费与断点恢复对比
pytorch·深度学习·云计算·gpu
唠点键盘之外的5 小时前
15 微调 vs RAG:到底怎么选
人工智能·机器学习·面试·aigc
具身AGI6 小时前
人机协同预训练:三条路线,一条拉开差距
人工智能
东风破_6 小时前
LangSmith:从链路追踪到 RAG 自动化评估
人工智能
东方芷兰6 小时前
Agent 技术摘要 04 —— AI4S、VLM、VLA、VLN、WM、AI Infra
人工智能
catchadmin6 小时前
用 Jev 与 Laravel AI SDK 检测垃圾邮件和自动回复
数据库·人工智能·laravel
一 铭6 小时前
Pi实战 05:本地模型 · MCP · 安全沙箱篇
人工智能·ai·agent·harness
198******126346 小时前
2026企业AI办公工具选型指南:从评估框架到场景适配
大数据·运维·人工智能
OxYGC6 小时前
[AI工程]Jev 决策模型第二篇:三原语、一次多问与置信度路由,从 Playground 到能上线的代码
人工智能
楚来客6 小时前
AI基础概念之十四:时空Transformer架构
人工智能·深度学习·transformer