
输入"the cat sat on the mat",Transformer模型要预测下一个词。这个过程涉及多个精密设计的组件,每个都在token的"旅程"中发挥关键作用。
进入模型前的准备工作
分词(Tokenization):原始文本被切分成标准化的token单位。现代分词器通常使用子词单位而非完整单词。"cat"可能对应token ID 537,"sat"对应1024。分词器的词表通常包含5万到10万个token。
词嵌入(Token Embeddings):每个token ID通过查找嵌入表转换为高维向量。假设使用768维嵌入,"cat"变成一个包含768个浮点数的向量。这些数字经过训练,使得语义相近的词(如"cat"和"kitten")在向量空间中距离较近。
位置编码(Positional Encoding):纯粹的词嵌入无法区分"cat sat on mat"和"mat sat on cat"。位置编码通过正弦和余弦函数为每个位置生成独特的向量,然后与词嵌入相加。第一个位置的"the"和第二个位置的"cat"现在有了不同的表示。
公式:PE(pos, 2i) = sin(pos/10000^(2i/d_model))
PE(pos, 2i+1) = cos(pos/10000^(2i/d_model))
经过位置编码后,每个token的768维向量既包含"是什么"也包含"在哪里"的信息。
Transformer层内部机制
大语言模型通常有12到96层Transformer块。每层包含两个主要组件:
多头注意力机制(Multi-Head Attention):这是Transformer的核心创新。以12头注意力为例,每个头关注不同的语言模式:
-
第1头可能专注主谓关系,发现"cat"和"sat"的连接 -
第3头可能处理介词短语,识别"on the mat"的结构 -
第8头可能捕捉长距离依赖,连接句首和句尾的元素
注意力计算过程:
Key-Value机制简单解释:想象每个token都有三个身份,即Query表示"我需要什么信息",Key表示"我能提供什么信息",Value表示"我的实际内容"。以"cat"为例,它的Query可能表达"我需要动词信息",而"sat"的Key表达"我能提供动词信息",两者匹配度高。然后"cat"就会更多地融入"sat"的Value(实际语义内容)。Key向量在训练中自动学会编码词汇的语法功能——动物名词的Key相似,动词的Key相似,这样具有互补功能的词就能准确找到彼此。注意,这些信息都是通过训练获得的。
-
每个token生成Query、Key、Value三个向量 -
Query与所有Key计算相似度得到注意力分数 -
分数经过softmax归一化为权重 -
用权重对Value向量加权求和
"cat"的Query向量会与句中所有token的Key向量计算相似度。如果"cat"与"sat"的相似度最高,那么"cat"的新表示会更多地融入"sat"的信息。
多头机制让模型同时关注多种语言关系。12个头并行工作,各自输出768/12=64维向量,最后拼接成完整的768维输出。
前馈神经网络(Feed-Forward Network):注意力机制负责信息交换,FFN负责信息加工。这是一个两层的全连接网络:
-
第一层将768维扩展到3072维(通常是4倍),使用ReLU激活 -
第二层压缩回768维
FFN对每个token独立处理,可以理解为对注意力层输出的"后处理"。它能识别复杂的特征组合,比如"动物+动作"的模式。
残差连接与层归一化:每个子层(注意力、FFN)都有残差连接,即输出=子层输出+输入。这确保信息不会在深层网络中丢失。层归一化则稳定训练过程,防止激活值过大或过小。
多层堆叠的效果
12层Transformer的处理过程是渐进式的:
-
前几层关注局部语法结构,如词性、短语边界 -
中间层处理句法关系,如主谓宾结构 -
后几层整合语义信息,理解整句含义
"cat"的向量表示在每层都会更新。第1层后,它可能包含"名词"信息;第6层后,包含"句子主语"信息;第12层后,包含"执行坐这个动作的猫"的完整语义。
最终预测
经过所有Transformer层后,每个token都有一个丰富的768维表示。对于生成任务,模型关注最后一个token的表示(在这里是"mat")。
线性投影层:将768维向量投影到词汇表大小(比如50257维),每个维度对应一个可能的下一个token。这一步的权重矩阵包含了词汇表中每个词的"解码"向量。
Softmax归一化:将原始分数(logits)转换为概率分布。所有概率之和为1。
最终结果可能是:
-
"purred": 0.15 -
"meowed": 0.12 -
"jumped": 0.08 -
"exploded": 0.0001 -
...
模型通常选择概率最高的token,但也可能使用采样策略增加输出的多样性。
整个过程的精妙之处在于,模型学会了将离散的语言符号映射到连续的向量空间,在这个空间中进行复杂的几何变换来捕捉语言规律,最后再映射回离散的词汇空间产生输出。每个数字、每次矩阵乘法都承载着对语言结构的理解。
原文:https://machinelearningmastery.com/the-journey-of-a-token-what-really-happens-inside-a-transformer/
看的不过瘾,这里还有更多面向非机器学习背景的学习内容:
关注公众号回复“进群”学习更多有趣知识。

