llama模型参数含义

llama模型参数含义

内容

以下是这些模型参数的详细解释,它们描述了一个基于 Transformer 架构的大型语言模型(如 LLaMA、GPT 等)的核心结构。这些参数共同决定了模型的规模、计算能力和资源消耗。


1. 核心维度参数

参数名 含义
dim 4096 模型的隐藏层维度(d_model),即每个词向量经过嵌入后的维度。
layer_num 32 Transformer 层的总数(即模型深度),决定了堆叠的注意力层和前馈层数量。
seq_len_ 2048 模型支持的最大上下文窗口长度(Token 数量),超过此长度的文本需截断处理。
vocab_size_ 32000 词表大小,即模型能识别的不同 Token 数量(如常见于 LLaMA 的 32k 词表)。

2. 注意力机制参数

参数名 含义
head_num_ 32 多头注意力(MHA) 的头数,决定了并行计算的注意力路径数量。
kv_head_num 32 Key/Value 的头数。若与 head_num_ 相等,说明是标准 MHA;若更小,则为分组查询注意力(GQA)。
head_size 128 每个注意力头的维度(d_head),满足 dim = head_num_ * head_size(32*128=4096)。
kv_dim 4096 Key/Value 向量的总维度,通常等于 dim,若使用 GQA 可能小于 dim
kv_mul_ 1 Key/Value 维度的扩展因子(某些模型会设置 kv_dim = dim * kv_mul)。

3. 前馈网络(FFN)参数

参数名 含义
hidden_dim_ 11008 FFN 中间层的维度,通常为 dim 的倍数(如 dim * 2.68,这里 4096*2.68≈11008)。
is_shared_weight 0 是否共享输入/输出嵌入权重(1 表示共享,0 表示不共享)。共享可减少参数量但可能影响性能。

4. 参数关系与模型规模

(1) 总参数量估算

  • 注意力层参数
    每层的参数量 = 4 * dim^2(Q/K/V/O 四个权重矩阵)。
    总参数量 = layer_num * 4 * dim^2 = 32 * 4 * 4096² ≈ 21.5 亿

  • 前馈网络参数
    每层的参数量 = 2 * dim * hidden_dim_(升维 + 降维)。
    总参数量 = layer_num * 2 * dim * hidden_dim_ = 32 * 2 * 4096 * 11008 ≈ 28.9 亿

  • 总计:约 50 亿 参数(未计入嵌入层和 LayerNorm)。

(2) 内存占用

  • 以 FP16 精度为例,总内存 ≈ 参数量 * 2 字节 ≈ 50亿 * 2B = 10GB(实际需更多内存用于计算中间激活值)。

5. 典型模型对照

  • LLaMA-7B
    dim=4096, layer_num=32, head_num=32, hidden_dim=11008,与本参数完全一致,推测这是一个 7B 规模的类 LLaMA 模型

6. 关键影响

  • 计算资源

    • dimlayer_num 主导计算量,训练需多卡并行。
    • seq_len_ 影响显存占用(显存需求随序列长度平方增长)。
  • 模型能力

    • head_num_head_size 决定注意力多样性。
    • hidden_dim_ 影响 FFN 的表达能力。

通过调整这些参数,可灵活平衡模型性能和资源消耗。例如,减少 layer_num 可缩小模型规模,但可能损失长程依赖建模能力。

posted @ 2025-03-02 00:46  Gold_stein  阅读(426)  评论(0)    收藏  举报