注意力机制
我们在观察事物时,会选择性关注关键信息,忽略次要内容
注意力机制使模型在处理输入序列时,为不同位置的信息分配不同的“关注度”,从而聚焦于当前任务的最重要部分。
核心思想:选择性聚焦、动态权重分配
注意力机制的核心可表示为一个函数,输入为查询(Query, Q)、键(Key, K)和值(Value, V),输出为加权后的 V 值。
注意力机制的特点:通过计算 Query 与Key的相关性为真值加权求和,从而拟合序列中每个词同其他词的相关关系
自注意力
自注意力是 Transformer 的核心组件,其核心思想是 让序列中的每个元素(如单词)直接与其他元素建立关联,而非依赖固定窗口或逐步传递信息。
掩码自注意力
掩码自注意力是自注意力机制(Self-Attention)的扩展形式,通过在计算注意力权重时添加掩码(Mask),选择性地屏蔽某些位置的信息交互。
核心原理:自注意力与掩码的结合
掩码是一个与注意力权重矩阵同形状的矩阵,其中:
- 0 或 1 的布尔掩码:1 表示允许关注,0 表示屏蔽
- 数值掩码:将屏蔽位置设为负无穷(如−1e9),经 softmax 后权重趋近于 0
多头注意力
为增强模型捕捉多样化依赖模式的能力,Transformer 将自注意力 并行拆分多个子空间(称为“头”),独立学习不同角度的关联信息。
Transformer的基本架构
Transformer 由编码器(Encoder) 和解码器(Decoder) 两部分组成,两者均由多个相同的层堆叠而成(通常为 6 层)。
编码器
输入 → 多头自注意力 → 残差连接 + 层归一化 → 前馈网络 → 残差连接 + 层归一化 → 输出
编码器的主要结构包括三部分:特征编码、位置编码、N个encoder layer。
解码器
输入 → 掩码自注意力 → 残差连接 + 归一化 → 交叉注意力 → 残差连接 + 归一化 → FFN → 残差连接 + 归一化 → 输出
解码器的主要结构和编码器十分类似,也包括特征编码、位置编码和decoder layer三部分,只是decoder layer相比encoder layer而言多了一个和encoder输出之间的交叉注意力。
参考资料:
三万字最全解析!从零实现Transformer(小白必会版😃) - 知乎
https://github.com/datawhalechina/happy-llm