Transformer 学习

资源汇总:

https://blog.csdn.net/m0_59164304/article/details/140279269

http://t.csdnimg.cn/etfWA

【【官方双语】GPT是什么?直观解释Transformer | 深度学习第5章】https://www.bilibili.com/video/BV13z421U7cs?vd_source=bd967f0d540a64617b8b612bc0f0f9a3

【【官方双语】直观解释注意力机制,Transformer的核心 | 【深度学习第6章】】https://www.bilibili.com/video/BV1TZ421j7Ke?vd_source=bd967f0d540a64617b8b612bc0f0f9a3

【超详细】【原理篇&实战篇】一文读懂Transformer-CSDN博客

通俗易懂讲法

Transformer 是一种“超级大脑”,它能处理像句子、歌词、文章这样的连续数据。它非常擅长这些任务,因为它能记住和理解一个句子里的每个单词是如何关联的。这就好比,你和朋友聊天时,不仅要记住朋友说的每句话,还要理解每句话在整个对话中的意思。

为了让 Transformer 能够理解和生成这些数据,我们可以把它分解成几个简单的步骤:

  1. 理解单词的关系
    假设我们有一个句子“猫坐在毯子上”。Transformer 需要知道“猫”和“毯子”之间的关系,比如“猫”是“坐”在“毯子”上,而不是“毯子”坐在“猫”上。这个过程就像一个超级智能的助手,不断观察并理解单词之间的关系。
  2. 给单词打分
    为了理解单词之间的关系,Transformer 会给每个单词的每个位置打一个分数。这些分数表示一个单词在句子中有多重要。比如,在句子“猫坐在毯子上”中,“猫”对“坐”的重要性可能很高,因为它是行动的主体。Transformer 通过这种打分方式来判断哪些单词对整个句子的意义影响最大。
  3. 多个小助手一起工作
    Transformer 不只是一个“助手”,它有一群“助手”,每个“助手”都专注于不同方面的信息。比如,一个“助手”可能关注“猫”和“毯子”的关系,另一个“助手”则可能关注“坐在”这个动词。这群“助手”一起工作,就能更好地理解句子的整体意思。
  4. 把每个小助手的工作结合起来
    在每个“助手”都完成了自己的工作后,Transformer 会把这些信息结合起来,形成对整个句子的完整理解。这就像是你和几个朋友讨论电影情节时,每个人都提出自己的观点,最后大家一起得出结论。
  5. 处理更多的句子
    Transformer 不仅能处理一个句子,它还能处理很多句子,并且能不断从中学习。这使得它能完成各种任务,比如翻译句子、生成新的句子,甚至回答问题。

最后,想象你是一个侦探,正在调查一个案件。你有一些线索(单词):“猫”、“坐”、“毯子”、“上”。每个线索看起来很普通,但你需要搞清楚这些线索是怎么关联的。

  • 你可能想知道“猫”在哪里。你发现“毯子”这个线索好像和“猫”有点关系。
  • 你还注意到“坐”这个线索好像说明了一种行为。
  • 最后,你得出结论:哦,原来“猫”是“坐”在“毯子”上。

这就是 Transformer 做的事情。它根据线索理解事情的来龙去脉。

总之,Transformer 是一种用于处理序列数据的深度学习模型,最初用于自然语言处理(NLP)。简而言之,它是一种能够“理解”语言或序列数据,并进行翻译、生成文本、回答问题等任务的工具。相比传统的模型(如 RNN 和 LSTM),Transformer 的效率更高,因为它可以并行处理数据,并且在捕捉长距离依赖关系方面表现更好。

基本原理

Transformer 的核心概念是 自注意力机制(Self-Attention Mechanism),它允许模型在处理每个输入时“关注”输入序列的不同部分。这种机制让模型能够理解每个单词或符号与其他单词或符号之间的关系,而不是逐个地线性处理输入。

Transformer 主要由两个部分组成:

  • 编码器(Encoder):将输入序列转换为一个隐表示(向量表示)。
  • 解码器(Decoder):从隐表示生成输出序列。

编码器解码器 都由多个 层(layers) 组成,每层都包括一个 自注意力机制 和一个 前馈神经网络(Feed-Forward Neural Network, FFN)。

GPT讲解

Transformer是一种用于自然语言处理(NLP)和其他序列到序列(sequence-to-sequence)任务的深度学习模型架构,它在2017年由Vaswani等人首次提出。Transformer架构引入了自注意力机制(self-attention mechanism),这是一个关键的创新,使其在处理序列数据时表现出色。
以下是Transformer的一些重要组成部分和特点:

  • 自注意力机制(Self-Attention):这是Transformer的核心概念之一,它使模型能够同时考虑输入序列中的所有位置,而不是像循环神经网络(RNN)或卷积神经网络(CNN)一样逐步处理。自注意力机制允许模型根据输入序列中的不同部分来赋予不同的注意权重,从而更好地捕捉语义关系。
  • 多头注意力(Multi-Head Attention):Transformer中的自注意力机制被扩展为多个注意力头,每个头可以学习不同的注意权重,以更好地捕捉不同类型的关系。多头注意力允许模型并行处理不同的信息子空间。
  • 堆叠层(Stacked Layers):Transformer通常由多个相同的编码器和解码器层堆叠而成。这些堆叠的层有助于模型学习复杂的特征表示和语义。
  • 位置编码(Positional Encoding):由于Transformer没有内置的序列位置信息,它需要额外的位置编码来表达输入序列中单词的位置顺序。
  • 残差连接和层归一化(Residual Connections and Layer Normalization):这些技术有助于减轻训练过程中的梯度消失和爆炸问题,使模型更容易训练。
  • 编码器和解码器:Transformer通常包括一个编码器用于处理输入序列和一个解码器用于生成输出序列,这使其适用于序列到序列的任务,如机器翻译。