zoukankan      html  css  js  c++  java
  • Transformer 架构逐层功能介绍和详细解释

    多年来,深度学习一直在不断发展。深度学习实践高度强调使用大量参数来提取有关我们正在处理的数据集的有用信息。通过拥有大量参数,我们可以更容易地分类/检测某些东西,因为我们有更多的可以清楚地识别的数据。

    目前为止深度学习中,特别是在自然语言处理领域的一个显着里程碑是语言模型的引入,它极大地提高了执行各种 NLP 任务的准确性和效率。

    seq2seq模型是一种基于编码器-解码器机制的模型,它接收输入序列并返回输出序列作为结果。例如图像描述任务,输入给定的图像,输出则是为图像创建一个合理的描述。在这种情况下seq2seq 模型将图像像素向量(序列)作为输入,并逐字返回描述(序列)作为输出。

    一些促进此类模型训练的重要 DL 算法包括RNN,LSTM,GRU。但随着时间的推移这些算法的使用逐渐消失,因为复杂性和一些缺点会随着数据集大小的增加而严重影响性能。这其中的重要的缺点包括较长的训练时间、梯度消失问题(当我们为大型数据集进一步训练模型时会丢失有关旧数据的信息)、算法的复杂性等。

    Attention is all you need

    在语言模型训练方面取代上述所有算法的爆发性概念之一是基于多头注意力的Transformer 架构。Transformer 架构最早是由谷歌在 2017 年的论文《Attention is all you need》中引入的。它受欢迎的主要原因是其架构引入了并行化。Transformer 利用了强大的 TPU 和并行训练,从而减少了训练时间。

    以下是被传播最广泛的Transformer架构的可视化。

    即使抽象了很多的细节,整个架构看起来还是非常庞大。这张图中每一层仍然隐藏着很多细节东西。我们在这篇文章中会介绍每一层以及它在整个架构中的作用。

    Transformer 是一个用于 seq2seq 模型的编码器-解码器模型,左侧是输入,右侧是输出。在 它内部使用的注意机制已成为语言模型的首要算法。

    现在我们开始详细介绍每一层的作用。我们将使用带有简单句子“I am a student”及其法语翻译形式“Je suis étudiant”的语言翻译任务示例。

    完整文章:

    Transformer 架构逐层功能介绍和详细解释

     
  • 相关阅读:
    Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)
    基于Filebeat+Kafka+Flink仿天猫双11实时交易额
    Flink消费Kafka数据并把实时计算的结果导入到Redis
    Flink+kafka实现Wordcount实时计算
    Filebeat+Kafka+Logstash+ElasticSearch+Kibana搭建完整版
    spring boot+mybatis+quartz项目的搭建完整版
    Hadoop生态组件Hive,Sqoop安装及Sqoop从HDFS/hive抽取数据到关系型数据库Mysql
    Swagger+AutoRest 生成web api客户端(.Net)
    NodeJS学习
    Go学习
  • 原文地址:https://www.cnblogs.com/deephub/p/15780616.html
Copyright © 2011-2022 走看看