zoukankan      html  css  js  c++  java
  • Transform Model

    self attention 

    Q=K=V :输入一个句子,那么里面的每个词都要和该句子中的所有词进行attention计算,目的是要学习句子内部词之间的依赖关系,捕获句子的内部结构。

    首先,要build Q,K,V,对其进行线性变换 for example: dot,reshape, permute_dimensions

    然后,我们要对序列做mask,忽略填充部分的影响,一般mask是将填充部分置零,但attention中的mask是在softmax之前,将填充部分减去一个较大的整数(这样softmax后就比较接近0)

    之后,call函数 

    onece encoder:

    vector->self attention->feed forward neural network->r

    Q可以理解成篇章的词向量序列,K= V, 为问题的词向量序列,那么输入就是aligned question embedding

     transform:

    就是谷歌提出的transformer 的架构。这其中左半部分是 encoder, 右半部分是 decoder.

    Encoder: 这里面有 N=6 个 一样的layers, 每一层包含了两个sub-layers. 第一个sub-layer 就是多头注意力层(multi-head attention layer) 然后是一个简单的全连接层。 这里还有一个残差连接 (residual connection), 在这个基础上, 还有一个layer norm.  这里的注意力层会在下文详细解释。

    Decoder: 这里同样是有六个一样的Layer是,但是这里的layer 和encoder 不一样, 这里的layer 包含了三个sub-layers,  其中有 一个self-attention layer, encoder-decoder attention layer 最后是一个全连接层。 前两个sub-layer 都是基于multi-head attention layer.  这里有个特别点就是masking,  masking 的作用就是防止在训练的时候 使用未来的输出的单词。 比如训练时, 第一个单词是不能参考第二个单词的生成结果的。 Masking就会把这个信息变成0, 用来保证预测位置 i 的信息只能基于比 i 小的输出。

    tensor2tensor

    可以理解成模型和各类数据集的一个集成库,可以方便的去调用,解决常见的问题。

    实践路线

    attention->transform->bert

    理解原理->用t2t实现transform

  • 相关阅读:
    系统可用性
    如何在代码层实现可测试性-以《热词分析》代码为例
    python爬虫(五) ProxyHandler处理器
    python爬虫(二) urlparse和urlsplit函数
    以《淘宝网》为例,描绘质量属性的六个常见属性
    python爬虫(一)
    软件架构师如何工作
    学习进度-17 架构
    Linux中MySQL5.6编译安装与MySQL5.7二进制安装步骤
    Linux Rsync备份服务介绍及部署守护进程模式
  • 原文地址:https://www.cnblogs.com/ylHe/p/9987054.html
Copyright © 2011-2022 走看看