type
status
date
slug
summary
tags
category
icon
password
以 llama 架构为例
1 LlamaModel整体架构
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
旋转位置编码
作用:给 QK 注入位置信息
略
获取并更新 kv cache 中的 KV
计算注意力分数
多头结果压缩
4 LlamaMLP
- 作者:Dylan
- 链接:https://jlhzabc.sbs/article/27
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。