🗒️Decoder架构细节
00 分钟
2024-3-4
2024-3-5
type
status
date
slug
summary
tags
category
icon
password
😀
以 llama 架构为例

1 LlamaModel整体架构

notion image

2 LlamaRMSNorm

💡
标准的 transformer 架构中使用的是 LayerNorm。
💡
区别于其他任务中通常使用的 BatchNorm:
  • BN是对batch的维度去做归一化,也就是针对不同样本的同一特征做操作。
  • LN是对hidden的维度去做归一化,也就是针对单个样本的不同特征做操作。
因此LN可以不受样本数的限制。
  • BN就是在每个维度上统计所有样本的值,计算均值和方差。
  • LN就是在每个样本上统计所有维度的值,计算均值和方差。
所以BN在每个维度上分布是稳定的,LN是每个样本的分布是稳定的。
LlamaRMSNorm 首先是没有移除均值,直接除的 RootMeanSquare,然后也没有加上bias。
这两个小的修正可以保证在层归一化不会改变 hidden_states 对应的词向量的方向,只会改变其模长,在一定的意义上具有合理性。
公式:
其中, 对应 hidden_states, 对应 variance

3 LlamaAttention

和《Attention Is All You Need》论文中是一致的
变量shape信息汇总

计算 QKV

notion image

旋转位置编码

作用:给 QK 注入位置信息
 

获取并更新 kv cache 中的 KV

计算注意力分数

notion image

多头结果压缩

notion image

4 LlamaMLP