Transformer架构如何驱动现代大语言模型:深入解析AI核心技术

来自程序员技术小站
跳转到导航 跳转到搜索

前言

当我们与GPT、Claude或Gemini等现代大语言模型互动时,我们正在见证一个与人类形成句子过程根本不同的过程。虽然我们自然地构建思想并将它们转化为文字,但大语言模型通过循环转换过程运行。理解这个过程揭示了这些强大系统的能力和局限性。

2026年AI预测:上下文成为关键瓶颈

根据最新的AI发展趋势预测,到2026年,模型本身不会成为瓶颈,而上下文获取将成为关键挑战。随着AI代理从向量存储、会话状态、长期记忆、SQL数据库等拉取数据,找到正确的数据变得困难。错过关键上下文会导致响应崩溃,发送过多信息则会使延迟和成本飙升。因此,上下文引擎作为解决方案应运而生——一个单一的层来存储、索引和提供结构化和非结构化数据,涵盖短期和长期记忆,从而实现更快的响应、更低的成本和更实用的AI应用程序。

Transformer架构的核心组成

现代大多数大语言模型的核心是一种称为Transformer的架构。该架构于2017年引入,是由神经网络层构建的序列预测算法。该架构有三个基本组成部分:

  1. 嵌入层:将标记转换为数值表示
  2. 多层Transformer层:进行实际计算的地方
  3. 输出层:将结果转换回文本

Transformer能够同时处理所有单词,而不是一次处理一个,使它们能够从大量文本数据集中学习并捕捉复杂的单词关系。

详细工作流程解析

第一步:标记化(Tokenization)

在任何计算发生之前,模型必须将文本转换为可处理的形式。这从标记化开始,文本被分解为基本单位称为标记。这些并不总是完整的单词,可能是子词、词片段甚至单个字符。

例如输入:"I love transformers!",分词器可能会将其分解为:["I", " love", " transform", "ers", "!"]。注意"transformers"变成了两个单独的标记。每个词汇表中的唯一标记都被分配一个唯一的整数ID:

  • "I" 可能是标记150
  • "love" 可能是标记8942
  • "transform" 可能是标记3301
  • "ers" 可能是标记1847
  • "!" 可能是标记254

这些ID是任意标识符,没有固有的关系。标记150和151并不因为数字接近而相似。整体词汇表通常包含50,000到100,000个模型在训练期间学到的唯一标记。

第二步:嵌入(Embedding)

神经网络无法直接处理标记ID,因为它们只是固定的标识符。每个标记ID被映射到一个向量,即一个包含数百或数千个维度的连续数字列表。这些被称为嵌入。

以下是带有五个维度的简化示例(真实模型可能使用768到4096维):

  • 标记"dog"变成 [0.23, -0.67, 0.45, 0.89, -0.12]
  • 标记"wolf"变成 [0.25, -0.65, 0.47, 0.91, -0.10]
  • 标记"car"变成 [-0.82, 0.34, -0.56, 0.12, 0.78]

注意"dog"和"wolf"具有相似的数字,而"car"完全不同。这创建了一个语义空间,相关概念聚集在一起。

为什么需要多个维度?这是因为如果每个词只有一个数字,我们可能会遇到矛盾。例如:

  • "stock" 等于 5.2(金融术语)
  • "capital" 等于 5.3(类似的金融术语)
  • "rare" 等于 -5.2(反义词:不常见)
  • "debt" 等于 -5.3("capital"的反义词)

现在,"rare"和"debt"都具有相似的负值,暗示它们相关,这毫无意义。数百个维度允许模型在没有这种矛盾的情况下表示复杂的关系。

在这个空间中,我们可以执行数学运算。"king"的嵌入减去"man"再加上"woman"大约等于"queen"。这些关系在训练期间从文本数据中的模式中产生。

第三步:位置编码(Positional Encoding)

Transformer并不天然理解词序。如果没有额外信息,"The dog chased the cat"和"The cat chased the dog"看起来相同,因为两者包含相同的标记。

解决方案是位置嵌入。每个位置都被映射到一个位置向量,就像标记被映射到意义向量一样。

对于出现在第2位的标记"dog",可能是这样的:

  • 词嵌入:[0.23, -0.67, 0.45, 0.89, -0.12]
  • 位置2嵌入:[0.05, 0.12, -0.08, 0.03, 0.02]
  • 组合(元素级求和):[0.28, -0.55, 0.37, 0.92, -0.10]

这个组合嵌入捕获了词的意义和使用语境。这也是流向Transformer层的内容。

第四步:注意力机制(Attention Mechanism)

Transformer层实现了注意力机制,这是使这些模型如此强大的关键创新。每个Transformer层对每个标记使用三个组件:查询(queries)、键(keys)和值(values)。我们可以将其视为模糊字典查找,其中模型比较它寻找的内容(查询)与所有可能的答案(键)并返回相应值的加权组合。


让我们看一个具体的例子。考虑句子:"The cat sat on the mat because it was comfortable."

当模型处理单词"it"时,它需要确定"it"指代什么。以下是发生的情况:

  1. 首先,"it"的嵌入生成一个查询向量,本质上询问"我指的是哪个名词?"
  2. 接下来,此查询与所有先前标记的键进行比较。每次比较产生一个相似度分数。例如:
    • "The"(冠词)生成分数:0.05
    • "cat"(名词)生成分数:8.3
    • "sat"(动词)生成分数:0.2
    • "on"(介词)生成分数:0.03
    • "the"(冠词)生成分数:0.04
    • "mat"(名词)生成分数:4.1
    • "because"(连词)生成分数:0.1
  3. 原始分数然后转换为总和为1.0的注意力权重。例如:
    • "cat"接收注意力权重:0.75(75%)
    • "mat"接收注意力权重:0.20(20%)
    • 所有其他标记:0.05总计(5%合计)
  4. 最后,模型获取每个标记的值向量并使用这些权重组合它们。例如: 输出 = (0.75 × Value_cat) + (0.20 × Value_mat) + (0.03 × Value_the) + ...

"cat"的值贡献75%,"mat"贡献20%,其他一切几乎被忽略。这个加权组合成为"it"的新表示,捕获了语境理解,即"it"最有可能指代"cat"。

这个注意力过程发生在每个Transformer层中,但每层学会检测不同的模式:

  • 早期层学习基本模式,如语法和常见词对。处理"cat"时,这些层可能高度关注"The",因为它们学会了冠词和其名词相关。
  • 中间层学习句子结构和短语间关系。它们可能弄清楚"cat"是"sat"的主语,"on the mat"形成表示位置的介词短语。
  • 深层提取抽象含义。它们可能理解这个句子描述物理情况并暗示猫舒适或休息。

每层逐步优化表示。一层的输出成为下一层的输入,每层添加更多语境理解。

重要的是,只有最终Transformer层需要预测实际标记。所有中间层执行相同的注意力操作,但仅转换表示以对下游层更有用。中间层不输出标记预测,而是输出流向下一层的优化向量表示。

这种堆叠多层,每层专精于语言理解的不同方面,是使大语言模型能够捕捉复杂模式并生成连贯文本的原因。

第五步:输出转换

经过所有层流动后,最终向量必须转换为文本。解嵌入层将此向量与每个标记嵌入比较并产生分数。

例如,完成"I love to eat",解嵌入可能产生:

  • "pizza": 65.2
  • "tacos": 64.8
  • "sushi": 64.1
  • "food": 58.3
  • "barbeque": 57.9
  • "car": -12.4
  • "42": -45.8

这些任意分数使用softmax转换为概率:

  • "pizza": 28.3%
  • "tacos": 24.1%
  • "sushi": 18.9%
  • "food": 7.2%
  • "barbeque": 6.1%
  • "car": 0.0001%
  • "42": 0.0000001%

得分相似的标记(65.2对比64.8)接收相似的概率(28.3%对比24.1%),而低分标记获得接近零的概率。

模型不选择最高概率标记。相反,它从此分布中随机采样。想象一个轮盘赌轮,每个标记获得与其概率成比例的切片。披萨获得28.3%,塔可获得24.1%,42获得微观切片。

这样随机性的原因是,总是选择特定值如"pizza"会产生重复、不自然的输出。按概率加权的随机采样允许选择"tacos"、"sushi"或"barbeque",产生多样化、自然的响应。偶尔会选择较低概率标记,导致创造性输出。

生成过程详解

生成过程对每个标记重复。让我们看一个例子,初始提示是"The capital of France.":

循环1:

  • 输入:["The", "capital", "of", "France"]
  • 通过所有层处理
  • 采样:"is"(80%)
  • 当前输出:"The capital of France is"

循环2:

  • 输入:["The", "capital", "of", "France", "is"](包含新标记)
  • 通过所有层处理(现在5个标记)
  • 采样:"Paris"(92%)
  • 当前输出:"The capital of France is Paris"

循环3:

  • 输入:["The", "capital", "of", "France", "is", "Paris"](6个标记)
  • 通过所有层处理
  • 采样:"."(65%)
  • 当前输出:"The capital of France is Paris."

循环4:

  • 输入:["The", "capital", "of", "France", "is", "Paris", "."](7个标记)
  • 通过所有层处理
  • 采样:[EoS]标记(88%)
  • 停止循环
  • 最终输出:"The capital of France is Paris."

[EoS]或序列结束标记发出完成信号。每个循环处理所有先前标记。这就是为什么响应变长时生成会变慢的原因。

这被称为自回归生成,因为每个输出依赖于所有先前输出。如果选择了异常标记(也许在"I love to eat chalk"中"chalk"有0.01%概率),所有后续标记都将受此选择影响。

训练与推理阶段

Transformer流在两个环境中运行:训练和推理。

训练阶段

在训练期间,模型从数十亿文本示例中学习语言模式。它从随机权重开始并逐渐调整它们。以下是训练如何工作的:

  • 训练文本:"The cat sat on the mat."
  • 模型接收:"The cat sat on the"
  • 具有随机初始权重,模型可能预测:
    • "banana": 25%
    • "car": 22%
    • "mat": 3%(正确答案概率低)
    • "elephant": 18%

训练过程计算误差("mat"应该更高)并使用反向传播调整每个权重:

  • "on"和"the"的嵌入被调整
  • 所有96层的注意力权重被调整
  • 解嵌入层被调整

每次调整都很小(0.245到0.247),但在数十亿示例中累积。在不同语境中看到"sat on the"跟随"mat"数千次后,模型学会此模式。训练在数千GPU上花费数周并花费数百万美元。完成后,权重被冻结。

推理阶段

在推理期间,Transformer使用冻结权重运行:

  • 用户查询:"Complete this: The cat sat on the"
  • 模型使用其学习的权重处理输入并输出:"mat"(85%),"floor"(8%),"chair"(3%)。采样"mat"并返回。不发生权重更改。

模型使用了其学习的知识但没有学习任何新内容。对话不会更新模型权重。要教模型新信息,我们需要使用新数据重新训练,这需要大量计算资源。

总结

Transformer架构为理解和生成人类语言提供了优雅的解决方案。通过将文本转换为数值表示,使用注意力机制捕捉单词间的关系,并堆叠多层以学习越来越抽象的模式,Transformer使现代大语言模型能够产生连贯有用的文本。

这个过程涉及七个关键步骤,对每个生成的标记重复:标记化、嵌入创建、位置编码、通过具有注意力机制的Transformer层处理、解嵌入到分数、从概率中采样和解码回文本。每个步骤建立在前一个基础上,将原始文本转换为模型可以操作的数学表示,然后转换回人类可读输出。

理解这个过程揭示了这些系统的功能和局限性。本质上,大语言模型是复杂模式匹配机器,根据从大规模数据集中学到的模式预测最可能的下一个标记。

这个七步过程重复进行,每一步都建立在前一步的基础上,将原始文本转换为模型可以操作的数学表示,然后转换回人类可读的输出。


本文详细解析了Transformer架构的工作原理,希望对您理解AI核心技术有所帮助。欢迎关注我们的公众号,获取更多前沿科技资讯!