Appearance
大模型的模型内部参数,指的是:训练过程中会被更新、最终存进模型权重文件里的那些数值。
平时说的:
text
7B、13B、70B、175B 参数这里的 B = Billion,十亿,说的就是模型内部有多少个可训练参数。
以 Transformer 大模型为例,内部参数主要包括:
text
Embedding 参数
Attention 参数
FFN / MLP 参数
LayerNorm 参数
输出层参数
部分模型里的 MoE 参数
微调时的 LoRA / Adapter 参数1. Embedding 参数:把 token 变成向量
大模型不能直接理解文字,它看到的是 token ID。
比如:
text
“我喜欢AI” → [1256, 893, 10293]这些数字本身没有语义,所以模型需要一个 Embedding 矩阵,把 token ID 映射成向量。
假设:
text
词表大小 vocab_size = 50000
隐藏维度 hidden_size = 4096那么 Embedding 矩阵大小就是:
text
50000 × 4096也就是大约:
text
2.048 亿个参数它的作用是:
text
token ID → 语义向量例如:
text
“猫” → [0.12, -0.31, 0.87, ...]
“狗” → [0.10, -0.28, 0.83, ...]
“汽车” → [-0.55, 0.72, -0.16, ...]训练之后,语义相近的词,它们的向量通常也更接近。
简单理解:
> Embedding 参数负责让模型“认识词”。
2. Attention 参数:让模型学会看上下文关系
Transformer 的核心是 Attention,尤其是 Self-Attention。
Attention 里面最重要的是四组矩阵:
text
WQ:Query 权重矩阵
WK:Key 权重矩阵
WV:Value 权重矩阵
WO:Output 权重矩阵分别对应:
| 参数 | 含义 | 直观理解 |
|---|---|---|
| WQ | 生成 Query | 我想找什么信息 |
| WK | 生成 Key | 我能提供什么索引 |
| WV | 生成 Value | 我真正携带的信息 |
| WO | 输出映射 | 把注意力结果整合回模型维度 |
假设当前 token 的隐藏向量是:
text
x那么会被映射成:
text
Q = xWQ
K = xWK
V = xWV然后模型通过 Q 和 K 计算注意力分数:
这一步决定:
> 当前 token 应该重点关注前文中的哪些 token。
比如句子:
text
小明把书放进书包,因为它很重。模型需要判断“它”指的是“书”还是“书包”。
Attention 参数训练得好,模型就能根据上下文判断指代关系、语义关系、逻辑关系。
简单理解:
> Attention 参数负责让模型“理解上下文关系”。
3. Multi-Head Attention 参数:多个角度看一句话
大模型通常不是只有一个 Attention,而是多个 Attention Head。
比如:
text
hidden_size = 4096
num_heads = 32每个 head 负责从不同角度理解文本。
有的 head 可能关注:
text
主语和谓语关系有的 head 可能关注:
text
代词指代关系有的 head 可能关注:
text
上下文主题关系有的 head 可能关注:
text
代码括号、缩进、变量引用所以 Multi-Head Attention 可以理解为:
> 让模型从多个视角同时理解一句话。
这些 head 背后的参数,本质上还是 WQ、WK、WV、WO,只是被拆分成多个头来计算。
4. FFN / MLP 参数:对信息进行深度加工
Transformer 每一层里,除了 Attention,还有一个非常重要的模块:
text
Feed Forward Network也叫:
text
FFN / MLPAttention 负责看上下文关系,而 FFN 负责对每个 token 的特征进行进一步加工。
常见结构是:
text
Linear → 激活函数 → Linear在很多大模型里会写成:
text
Up Projection → Activation → Down Projection例如:
text
hidden_size = 4096
intermediate_size = 11008那么 FFN 里面通常有两个大矩阵:
text
W_up:4096 × 11008
W_down:11008 × 4096这部分参数量非常大。
很多 Transformer 模型中,FFN 参数量往往比 Attention 参数量还多。
简单理解:
> Attention 负责“看谁重要”,FFN 负责“想明白”。
比如模型读到:
text
苹果发布了新芯片。Attention 可以帮助模型关注“苹果”和“芯片”的关系。
FFN 则进一步加工:
text
这里的“苹果”不是水果,而是 Apple 公司。5. Gate 参数:控制信息通过多少
很多现代大模型的 FFN 不是普通的两层 MLP,而是使用带门控的结构,比如:
text
SwiGLU
GEGLU
Gated MLP这种结构通常有三个矩阵:
text
W_gate
W_up
W_down大致形式是:
其中:
text
W_gate:控制哪些信息通过
W_up:扩展特征维度
W_down:压回原来的 hidden_size门控结构的直观理解是:
> 不是所有信息都直接传下去,模型会学习“哪些信息该保留,哪些信息该抑制”。
这也是现代大模型效果更好的一个重要原因。
6. LayerNorm 参数:稳定每一层的输入输出
大模型层数很多,比如:
text
32 层
80 层
甚至更多如果每一层输出的数据分布都很乱,训练会非常不稳定。
所以 Transformer 中通常有 LayerNorm。
LayerNorm 里面一般有两个可训练参数:
text
γ:缩放参数
β:偏移参数也可以写成:
text
weight
bias它的作用是:
text
先把数据归一化
再通过 γ 和 β 调整到合适范围简单理解: > LayerNorm 参数负责让模型训练更稳定,不容易梯度爆炸、梯度消失或数值崩掉。
不过相对于 Attention 和 FFN,LayerNorm 的参数量很小。
比如 hidden_size = 4096,那么一个 LayerNorm 可能只有:
text
4096 或 8192 个参数和几十亿参数相比非常小。
7. 输出层参数:把隐藏向量变成词表概率
大模型最后要做的事情是:
text
预测下一个 token比如输入:
text
中国的首都是模型要预测:
text
北京所以最后需要一个输出层,把隐藏向量映射到整个词表上。
假设:
text
hidden_size = 4096
vocab_size = 50000输出层矩阵大小通常是:
text
4096 × 50000它的作用是:
text
hidden vector → 每个 token 的概率分布比如:
text
北京:0.72
上海:0.08
中国:0.03
城市:0.02
...然后模型根据解码策略,比如 greedy、temperature、top_p,选择最终输出哪个 token。
简单理解:
> 输出层参数负责把模型内部理解结果转成具体文字。
有些模型会让输入 Embedding 和输出层共享参数,这叫:
text
weight tying这样可以减少参数量,也能让输入语义空间和输出语义空间保持一致。
8. 位置相关参数:让模型知道 token 顺序
Transformer 本身不像 RNN 那样天然知道顺序。
如果没有位置信息,模型看到:
text
我喜欢你和:
text
你喜欢我可能很难区分顺序差异。
所以需要位置编码。
早期模型可能使用可学习的位置 Embedding:
text
Position Embedding这部分是可训练参数。
但很多现代大模型使用的是:
text
RoPE,旋转位置编码RoPE 通常不是普通意义上的可训练参数,而是一种固定的数学位置编码方式。
所以要注意:
text
可学习 Position Embedding:属于模型内部参数
RoPE:通常不算可训练参数简单理解:
> 位置相关机制让模型知道词语顺序和相对距离。
9. MoE 参数:多个专家网络
有些大模型使用 MoE,也就是:
text
Mixture of Experts中文可以叫:
text
混合专家模型普通 Transformer 每个 token 都经过同一个 FFN。
MoE 模型则有多个专家:
text
Expert 1
Expert 2
Expert 3
...
Expert N每个 token 只选择其中几个专家来处理。
MoE 中主要有两类参数:
text
专家网络参数
路由器参数专家网络参数就是很多个 FFN。
路由器参数负责判断:
text
当前 token 应该交给哪些专家处理比如:
text
数学问题 → 数学专家
代码问题 → 代码专家
语言问题 → 语言专家这只是直观比喻,真实模型不会这么明确命名专家,但会逐渐学出不同分工。
MoE 的特点是:
text
总参数量很大
每次推理激活的参数量较小比如一个模型总共有 100B 参数,但每次只激活其中一部分,所以计算成本比全量激活低。
10. Bias 参数:偏置项
传统神经网络里,线性层通常有:
text
y = Wx + b其中:
text
W 是权重
b 是偏置但是很多现代大模型为了简化结构、提高效率,可能会减少甚至去掉部分 bias。
所以在大模型里:
text
权重矩阵 W 是主要参数
bias 有些模型有,有些模型没有bias 的作用是:
> 让线性变换不一定必须经过原点,增强表达能力。
不过从参数量占比看,bias 通常非常小。
11. 微调参数:LoRA / Adapter / Prefix 参数
如果是预训练大模型本身,参数主要就是上面那些。
但如果做微调,可能不会更新全部参数,而是额外加入一些小参数。
常见方法有:
text
LoRA
Adapter
Prefix Tuning
Prompt Tuning以 LoRA 为例,它不会直接大规模修改原来的 WQ、WK、WV、WO,而是在旁边加两个低秩矩阵:
text
A 矩阵
B 矩阵原始更新是:
LoRA 的好处是:
text
训练参数少
显存占用低
微调成本低
方便多个任务切换简单理解: > 原模型参数不大动,只加一小部分可训练参数来适配新任务。
12. 一层 Transformer 里有哪些参数?
一层标准 Transformer 大致包含:
text
LayerNorm 参数
Attention 参数:WQ、WK、WV、WO
LayerNorm 参数
FFN 参数:W_up、W_down,或 W_gate、W_up、W_down可以写成:
text
输入 x
↓
LayerNorm
↓
Self-Attention:WQ、WK、WV、WO
↓
残差连接
↓
LayerNorm
↓
FFN / MLP:W_gate、W_up、W_down
↓
残差连接
↓
输出一层一层堆起来,就形成了完整的大模型。
例如:
text
Embedding
↓
Transformer Block × 32
↓
Final LayerNorm
↓
LM Head 输出层13. 参数量大概怎么估算?
以一个 decoder-only Transformer 为例,一层的主要参数量可以粗略估算。
假设:
text
hidden_size = d
intermediate_size = fAttention 参数:
text
WQ:d × d
WK:d × d
WV:d × d
WO:d × d所以 Attention 大约是:
text
4d²普通 FFN 参数:
text
W_up:d × f
W_down:f × d所以 FFN 大约是:
text
2df如果是带门控的 FFN:
text
W_gate:d × f
W_up:d × f
W_down:f × d所以大约是:
text
3df再乘以层数 num_layers,就能粗略估算主体参数量。
完整参数量还要加上:
text
Embedding 参数
输出层参数
LayerNorm 参数
bias 参数
MoE 专家参数14. 参数、激活值、超参数的区别
这个很容易混。
参数 parameter
训练后保存在模型里的数值。
比如:
text
Embedding 矩阵
WQ、WK、WV、WO
FFN 权重
LayerNorm 的 γ 和 β
输出层权重这些是模型真正学到的东西。
激活值 activation
模型运行过程中临时计算出来的中间结果。
比如:
text
某一层的 hidden states
Attention 分数
FFN 输出这些不是固定保存的模型权重,而是每次输入不同,激活值也不同。
超参数 hyperparameter
训练前人为设置的配置。
比如:
text
层数
hidden size
attention heads
学习率
batch size
context length
训练轮数这些不是模型自己学出来的,而是人设计的。
15. 最简单总结
大模型内部参数可以这样记:
text
Embedding:负责把 token 变成向量
Attention:负责理解上下文关系
FFN / MLP:负责深度加工特征
LayerNorm:负责稳定训练
输出层:负责预测下一个 token
位置参数:负责提供顺序信息
MoE 参数:负责专家分工
LoRA 参数:负责低成本微调总结:
> 大模型的内部参数主要是训练过程中学习到的权重。以 Transformer 为例,首先有 Embedding 参数,用来把 token 映射成向量;然后每一层 Transformer 包含 Attention 参数,包括 WQ、WK、WV、WO,用来计算上下文注意力关系;还包括 FFN 或 MLP 参数,用来对特征进行非线性加工;LayerNorm 中有缩放和偏移参数,用来稳定训练;最后还有输出层参数,把隐藏向量映射到词表概率,用于预测下一个 token。部分模型还会有位置相关参数、MoE 专家参数,微调时还可能加入 LoRA 或 Adapter 参数。总体来说,这些参数共同决定了模型对语言、知识和上下文关系的表达能力。

评论区