📢 转载信息
原文链接:https://machinelearningmastery.com/the-journey-of-a-token-what-really-happens-inside-a-transformer/
原文作者:Jason Brownlee
Transformer模型是当前深度学习领域最先进的模型之一,但我们很少关注Token在模型内部的旅程。Token是模型处理文本数据的基本单元。理解这个旅程对于掌握Transformer模型的工作原理至关重要。
本文将通过一个简化的图示(如图1所示),分步解释一个Token在Transformer模型中的处理过程。
1. 输入Token
Transformer模型处理的文本首先被分解成Token。Token可以是一个单词、一个词的一部分(子词),甚至是一个字符。
2. Token嵌入(Token Embedding)
每个Token首先被转换成一个固定维度的向量,这个向量称为Token嵌入。
这个嵌入向量捕获了Token的语义信息。例如,在英文中,“king”和“queen”的嵌入向量可能在语义空间中非常接近。
3. 位置编码(Positional Encoding)
Transformer模型本身是非顺序化的,它不具备处理序列顺序的能力。因此,我们需要显式地向Token嵌入中注入位置信息,这个过程称为位置编码。
位置编码被添加到Token嵌入向量中,生成一个结合了语义和位置信息的向量。这个结合后的向量是进入Transformer编码器或解码器第一层的输入。
4. Transformer编码器层
Transformer模型由多层编码器和/或解码器堆叠而成。每个编码器层都包含两个主要子层:多头自注意力(Multi-Head Self-Attention)和前馈网络(Feed-Forward Network),并伴随有残差连接和层归一化。
4.1. 多头自注意力(Multi-Head Self-Attention)
自注意力机制是Transformer的核心创新。它允许模型在处理当前Token时,同时关注输入序列中的所有其他Token,并计算它们之间的相关性。
具体过程涉及为每个Token创建三个向量:Query(查询)、Key(键)和Value(值)。
- 计算注意力分数:通过计算当前Token的Query向量与所有Token的Key向量的点积,来衡量相关性。
- 缩放与Softmax:分数被缩放,并通过Softmax函数转换为权重(Attention Weights),这些权重表示了每个Token对当前Token的重要性。
- 加权求和:权重被用来对所有Token的Value向量进行加权求和,生成一个上下文感知的向量。
多头的含义是,这个过程被并行执行多次(例如8次或12次),每个“头”学习不同的注意力关系,最终将所有头的结果拼接起来。
4.2. 前馈网络(Feed-Forward Network)
自注意力子层的输出随后通过一个简单的两层全连接前馈网络。这个网络独立地应用于序列中的每个位置,进一步处理自注意力机制提取出的信息。
4.3. 残差连接与层归一化(Residual Connections and Layer Normalization)
在每个子层(自注意力和前馈网络)之后,都会应用残差连接(将输入加到子层输出上)和层归一化(Layer Normalization)。这些步骤有助于梯度流动,稳定训练过程。
Token经过上述子层的组合,就完成了一层编码器的处理。
5. 多层堆叠
标准的Transformer模型通常堆叠多个编码器层(例如6层或12层)。Token的输出向量将作为下一层的输入,重复上述处理过程。
随着Token在层级中逐层深入,其向量表示变得越来越复杂,越来越能捕捉到高级的语义和上下文信息。
6. 输出表示
Token通过所有编码器层后,会得到一个最终的上下文表示向量。对于解码器模型(如GPT),这些向量被用于生成下一个Token的概率分布。
总结来说,一个Token的旅程是从一个简单的语义向量开始,通过位置编码获得顺序信息,然后在编码器中通过自注意力机制与所有其他Token进行交互和比较,再经过前馈网络提炼特征,最终生成一个高度抽象和上下文丰富的表示。
7. 总结
Transformer模型并非黑箱,其核心在于Token的迭代和上下文表示的不断精炼。通过理解Token在嵌入、位置编码、自注意力、前馈网络和多层堆叠中的具体转换,我们可以更好地把握大型语言模型处理自然语言的底层逻辑。
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区