大模型基础之注意力机制和Transformer

【注意力机制】

核心思想:在decoder的每一步,把encoder端所有的向量提供给decoder,这样decoder根据当前自身状态,来自动选择需要使用的向量和信息.

【注意力带来的可解释性】

decoder在每次生成时可以关注到encoder端所有位置的信息。

通过注意力地图可以发现decoder所关注的点。

注意力使网络可以对齐语义相关的词汇。

【注意力机制的优势】

RNNs顺序计算阻碍了并行化

论文:Attention is all you need

【Transformer的结构】

概览encoder-decoder结构

大模型基础之注意力机制和Transformer_第1张图片

把句子/单词序列切分成一个个的单元,每个单元叫做token,通过embedding幻化为一个向量。

输入层:token的byte pair encoding+token的位置向量(表示它在文本中的位置)

中间模型结构:一些编码和解码块的堆叠。

输出: 一个在词表上的概率分布

损失函数:交叉熵

【输入层:BPE + PE】

BPE byte pair encoding一种分词算法

解决了OOV(out of vocabulary)问题,把罕见字词和未知词编码为字词,例如用一些词根组合来表示。(常用于英文)

PE:位置编码

因为不像RNN顺序依次处理每个单词,所以要把位置信息编码后喂给模型。

input=bpe+pe

以上就是论文中比较经典的图啦。

【对transformer的感性认识】

【tansformer由两部分组成】

Transformer 由 Encoder 和 Decoder 两个部分组成,Encoder 和 Decoder 都包含 6 个 block(多个层构成的一种局部子结构,叫block块)。

如论文中图1所示:Transformer 的内部结构图,左侧为 Encoder block,右侧为 Decoder block。橘黄色部分为 Multi-Head Attention(多头注意力),是由多个 Self-Attention组成的,可以看到 Encoder block 包含一个 Multi-Head Attention,而 Decoder block 包含两个 Multi-Head Attention (其中有一个用到 Masked)。Multi-Head Attention 上方还包括一个 Add & Norm 层,Add 表示残差连接 (Residual Connection) 用于防止网络退化,Norm 表示 Layer Normalization,用于对每一层的激活值进行归一化。

【自注意结构和多头注意力结构】

大模型基础之注意力机制和Transformer_第2张图片

图2左边是 Self-Attention 的结构,右边是多头,即Self-Attention 重复N遍。

Self-Attention 的结构,在计算的时候需要用到矩阵Q(查询),K(键值),V(值)。而Q,K,V正是通过 Self-Attention 的输入层(词嵌入表示+位置编码)进行线性变换得到的。

其中有个操作时:每个词的Q矩阵都要与其他每个单词的K进行内积,我猜以此来表征句子中每个单词间关系,同时通过权重来反映“注意力”落在了哪里。

根据输入向量并行计算N个自注意力模块,Transformer 中 Multi-Head Attention 中有多个 Self-Attention,可以捕获单词之间多种维度上的相关系数 attention score。

Feed Forward 层比较简单,是一个两层的全连接层,将高维变低维度,方便后续的分类或其他任务。

【decoder块】

1、自底向上方法第一个多头的是masked多头,就是遮盖的意思,在生成第i个词的时候遮住第i个以后的词。它的输入是:样本输出句子编码矩阵/翻译后的句子编码矩阵+masked矩阵。

2、自底向上方法第二个多头矩阵和encoder里的多头计算基本一致。 主要的区别在于其中 Self-Attention 的 K, V矩阵不是使用 上一个 Decoder block 的输出计算的,而是根据 Encoder 的输出 C计算得到 K, V,根据上一个 Decoder block 的输出 Z 计算 Q

这样做的好处是在 Decoder 的时候,每一位单词都可以利用到 Encoder 所有单词的信息。

课后阅读:

transformer模型详解

你可能感兴趣的:(LLM,transformer,深度学习,自然语言处理,大模型,LLM)