美文网首页
Transformer结构

Transformer结构

作者: 又双叒叕苟了一天 | 来源:发表于2023-04-07 15:20 被阅读0次

    1 模型结构

    1. 编码器(左)
    2. 解码器(右)

    编码器和解码器都可以N层堆叠,原论文是6层
    核心:多头注意力机制

    transformer

    1.1 嵌入层

    1. 词嵌入
    2. 位置编码
    3. 词嵌入和位置嵌入矩阵元素相加

    1.1.1 词嵌入

    • 编码器:把输入句子中每个单词转化为单词的嵌入,构成单词数×词嵌入维度的矩阵。词嵌入维度是512
    • 解码器:输入是目标句子添加句子起始符号<sos>。预测时位移(<sos>-->Je,Je-->vais,vais-->bien,bien--><eos>)

    1.1.2 位置编码

    P(pos,2i)=\sin(\frac{pos}{10000^{2i/d_{model}}})\\ P(pos,2i)=\cos(\frac{pos}{10000^{2i/d_{model}}})

    pos=0,1,2,\cdotsi=0,1,2,\cdots,255(512维位置编码)

    1.2 编码器

    1. 多头注意力层
    2. 前馈网络层
    3. 叠加和归一组件

    1.2.1 多头注意力层

    1. 词嵌入矩阵(单词数×词嵌入维度(512))通过前馈神经网络转化为3个矩阵:查询矩阵Q(单词数×注意力维度(64))、键矩阵K、值矩阵V
    2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
    3. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
    4. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z
    5. 使用N个这样的注意力矩阵拼接,N为头的个数(=8),每个头表示不同注意力的空间

    1.2.2 前馈神经网络

    两个ReLU激活函数构成的全连接层

    1.2.3 叠加和归一组件

    残差连接和归一化

    1.3 解码器

    1. 带掩码的多头注意力层
    2. 多头注意力层
    3. 前馈网络层
    4. 叠加和归一组件
    5. 线性层和softmax层

    1.3.1 带掩码的多头注意力层

    1. 词嵌入矩阵(单词数×词嵌入维度(512))通过前馈神经网络转化为3个矩阵:查询矩阵Q(单词数×注意力维度(64))、键矩阵K、值矩阵V
    2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
    3. 对掩码位置使用极小的数替换,使得softmax时对该位置注意力为0
    4. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
    5. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z

    原因:生成时每个单词只能观察到自身以及自身之前的单词


    掩码

    1.3.2 多头注意力层

    1. 编码器的输出矩阵通过前馈神经网络转化为查询矩阵Q,带掩码的多头注意力层的输出转化为键矩阵K和值矩阵V
    2. 计算分数并缩放Q\cdot K^T/\sqrt{d_k}d_k是注意力维度(64)
    3. 归一化得到分数矩阵:softmax(Q\cdot K^T/\sqrt{d_k})
    4. 使用分数矩阵对值矩阵V加权求和得到注意力矩阵Z

    1.3.3 前馈网络层以及叠加和归一组件

    和编码器中相同

    1.3.4 线性层和softmax层

    1. 编码器输出通过线性层转换到词汇表维度
    2. 通过softmax层获得词汇表中每个单词的概率

    2 训练Transformer

    1. 模型预测输出和真实输出使用交叉熵计算损失
    2. 使用Adam优化器训练
    3. dropout应用在各个子层和嵌入层最后的输出

    参考资料

    [1]. BERT基础教程Transformer大模型实战
    [2]. Attention Is All You Need

    相关文章

      网友评论

          本文标题:Transformer结构

          本文链接:https://www.haomeiwen.com/subject/wbxdddtx.html