【AI系列】从零开始学习大模型GPT (2)- Build a Large Language Model (From Scratch)
前序文章
【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)
Build a Large Language Model
-
- 背景
- 第1章:理解大型语言模型
- 第2章:处理文本数据
- 第3章:编码Attention机制
-
- 什么是Attention机制?
-
- Attention机制的基本原理
- 数学表示
- 应用
- 总结
- 为什么要使用注意力机制
- 如何实现?
-
- 简单注意力机制
- 带训练权重的注意力机制
- 紧凑注意力机制 mask attention
- 多头注意力机制
- 第4章:从零实现GPT模型
- 第5章:在未标记数据上进行预训练
- 第6章:用于文本分类的微调
- 第7章:为指令执行进行微调
- 参考
背景
第1章:理解大型语言模型
见前序文章【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)
第2章:处理文本数据
见前序文章【AI系列】从零开始学习大模型GPT (1)- Build a Large Language Model (From Scratch)
第3章:编码Attention机制
什么是Attention机制?
Attention机制是一种在深度学习中广泛应用的技术,特别是在自然语言处理(NLP)和计算机视觉等领域。它的核心思想是让模型在处理输入数据时,能够有选择地关注某些重要部分,而不是对所有部分一视同仁。这种机制可以显著提高模型的性能和效率。
Attention机制的基本原理
Attention机制的基本原理可以通过以下几个步骤来描述:
-
计算注意力权重(Attention Weights):
对于每一个输入元素,计算它与其他输入元素的相关性(即注意力权重)。这些权重通常通过点积(dot product)或其他相似度度量方法来计算。 -
归一化权重:
使用Softmax函数将这些权重归一化,使它们的和为1。这一步确保了权重可以被解释为概率分布。 -
加权求和:
使用归一化后的权重对输入元素进行加权求和,得到一个新的表示。这一步的结果是模型能够更关注那些权重较高的输入元素。
数学表示
假设有一个输入序列 X = [ x 1 , x 2 , … , x n ] X = [x_1, x_2, \ldots, x_n] X=[x1,x2,…,xn],Attention机制的计算过程可以表示为:
-
计算注意力权重:
e i j = score ( x i , x j ) e_{ij} = \text{score}(x_i, x_j) eij=score(xi,xj)
其中, score ( x i , x j ) \text{score}(x_i, x_j) score(xi,xj) 可以是点积、加性函数等。 -
归一化权重:
α i j = exp ( e i j ) ∑ k = 1 n exp ( e i k ) \alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k=1}^{n} \exp(e_{ik})} αij=∑k=1nexp(eik)exp