From 5bd2e4d436523c69b2fd89b08639a8f798853aae Mon Sep 17 00:00:00 2001 From: "ben.guo" <909336740@qq.com> Date: Sat, 27 Apr 2024 17:35:41 +0800 Subject: [PATCH] =?UTF-8?q?Add.=20=E7=AC=AC=E4=B8=89=E7=AB=A0=E2=80=94?= =?UTF-8?q?=E2=80=94=E4=BD=8D=E7=BD=AE=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../第三章——位置编码.md | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 人人都能看懂的Transformer/第三章——位置编码.md diff --git a/人人都能看懂的Transformer/第三章——位置编码.md b/人人都能看懂的Transformer/第三章——位置编码.md new file mode 100644 index 0000000..91ae669 --- /dev/null +++ b/人人都能看懂的Transformer/第三章——位置编码.md @@ -0,0 +1,43 @@ +# 第三章——位置编码 + +文字向量化 + +### 前言 + +第二章我们讲了文字向量化,而在向量化传到多头注意力之前,还有一个位置信息编码。 + +WHY:在自然语言处理中,单词的顺序对于理解文本的含义至关重要。例如,"狗咬人"和"人咬狗"词汇相同但意义不同。然而,Transformer模型的核心机制——自注意力(self-attention)本身并不具备捕捉序列顺序的能力。它允许模型在处理一个单词时考虑到句子中的所有其他单词,但它不会区分这些单词的位置关系。这就是为什么位置编码至关重要的原因:它们为模型提供了单词在句子中的位置信息,使得模型能够理解词序和语法结构。 + +WHAT:位置编码是一种向模型输入的每个单词嵌入向量中添加信息的技术,以便模型能够识别单词的位置。 + + + +### 位置编码是怎么算的? + +在《Attention is all you need》中,位置编码是有正弦和余弦函数计算出来的,且是固定的。 + +优点: + +- 由于是固定公式,不需要通过训练来学习,可以直接计算出任意位置的编码。 +- 具有可能的泛化能力,理论上可以处理比训练时见过的序列更长的序列。 +- 由于正弦和余弦函数是周期性的,这种编码方式可能帮助模型捕捉到某种周期性的模式。 + +GPT-2的位置编码是可学习的参数。这意味着模型在训练过程中会调整位置编码,以便更好地适应特定任务的需求。 + +优点: + +- 由于是通过训练学习的,模型可以自适应地为特定任务找到最佳的位置编码。 +- 可以捕捉到数据中的特定模式,可能比固定公式更适合某些任务。 +- 由于是模型的一部分,位置编码可以与其他模型参数一起进行端到端的优化。 + + + +### Transformer里的原始方法 + + + + + +### 向量加法 + +以GPT-2为例(Hugging Face开源的GPT), \ No newline at end of file