技术深度解析
Transformer的魔力始于分词器,它使用字节对编码或SentencePiece等算法将原始文本拆分为子词单元。GPT-4使用词汇量约10万的BPE分词器;Llama 3使用词汇量12.8万的变体。每个Token随后通过嵌入查找表映射为稠密向量。对于一个70亿参数的模型,该表通常包含10万行4096维向量——仅嵌入层就占16亿参数。关键洞察在于这些向量编码了语义相似性:"king"的向量减去"man"加上"woman",结果接近"queen"的向量。
位置编码是下一个关键步骤。原始Transformer论文使用固定正弦函数:PE(pos, 2i) = sin(pos / 10000^(2i/d_model)),PE(pos, 2i+1) = cos(pos / 10000^(2i/d_model))。GPT-4等现代模型使用学习位置嵌入,而Llama 3采用旋转位置编码,它通过与Token位置成比例的角度旋转查询和键向量。RoPE已成为主流方法,因为它自然捕捉相对位置,并允许外推到更长的序列。
注意力机制是Transformer的心脏。对于每个Token,模型通过学习的线性投影计算查询、键和值向量。Token i和Token j之间的注意力分数计算为softmax(Q_i · K_j / sqrt(d_k))。这一过程在多个头上并行执行——70亿模型通常为32个头——使模型能同时关注不同类型的关系。一个头可能聚焦句法依赖,另一个关注语义相似性,第三个关注位置邻近性。输出被拼接并投影回模型维度。
一个具体例子:在句子"The cat sat on the mat"中,Token "sat"可能强烈关注"cat"(主谓关系),弱关注"on"(介词附着),最小关注"the"(限定词)。这种注意力模式完全从数据中学习,无需任何显式语法规则。
注意力之后,每个Token的表示通过前馈网络,该网络由两个线性层和一个非线性激活函数组成。FFN将维度从d_model扩展到d_ff(通常大4倍,例如从4096到16384),然后投影回原维度。这是模型执行复杂特征提取的地方——本质上是问"给定这个关注的上下文,我应该提取什么新信息?"FFN约占模型参数的三分之二。
一个值得注意的开源实现是Andrej Karpathy的'llama2.c'仓库,它提供了用纯C语言编写的极简可读Transformer实现。对于希望实验的人,Hugging Face的'transformers'库提供了几乎所有Transformer变体的生产级实现。
关键Transformer变体的基准性能:
| 模型 | 参数 | 层数 | 隐藏维度 | 注意力头数 | 上下文长度 | MMLU分数 |
|---|---|---|---|---|---|---|
| GPT-4 | ~1.8T(估计) | 120(估计) | 16,384(估计) | 96(估计) | 128K | 86.4 |
| Llama 3 70B | 70B | 80 | 8,192 | 64 | 8K(可扩展至128K) | 82.0 |
| Mistral 7B | 7B | 32 | 4,096 | 32 | 32K | 64.1 |
| Gemma 2 27B | 27B | 46 | 4,608 | 32 | 8K | 75.2 |
数据要点: 表格显示了清晰的扩展趋势:层数更多、隐藏维度更高的更大模型持续获得更好的MMLU分数。然而,Llama 3 70B的效率提升表明,架构改进——如分组查询注意力和RoPE——可以显著压缩模型规模同时保持性能。
关键参与者与案例研究
OpenAI的GPT-4仍是基准,但竞争格局已经碎片化。Anthropic的Claude 3.5 Sonnet使用类似的Transformer架构,专注于安全性和宪法AI,在推理基准上取得竞争性表现。Google的Gemini系列基于带有多种查询注意力的改进Transformer,展现出强大的多模态能力。由Meta的Llama 3和Mistral AI的Mistral系列领导的开源生态系统,使高质量Transformer的获取民主化。
一个引人入胜的案例是OpenAI的视频生成模型Sora。Sora将视频视为时空补丁序列——本质上是代表跨时间的小型3D像素立方体的Token。Transformer架构处理这些Token的方式与文本Token完全相同,学习视觉和时间信息的联合分布。这展示了该架构非凡的通用性:预测下一个单词的同一机制也能预测下一帧。
DeepMind的Genie和OpenAI的世界模型代表了另一个前沿。这些模型使用Transformer