大语言模型为什么能够理解问题并生成连贯回答?当我们输入"为什么苹果会落到地面,而不是飞向天空?"时,模型能够结合问题中的关键信息,逐步生成关于地球引力的解释。这个过程并不是从预先存储的答案中直接检索结果,也不是先形成完整回答再一次性输出,而是在不断处理上下文、预测下一个Token 的过程中逐步形成的。
支撑这一过程的核心架构之一就是Transformer。本期将从大语言模型的文本生成机制出发,介绍Transformer 的主要架构形式,并进一步解析Self-Attention、多头注意力、前馈神经网络等核心结构,理解大语言模型生成文本背后的基本计算过程。
一、大语言模型及其文本生成机制
1.1 什么是大语言模型?
大语言模型(Large Language Model,LLM)是一类基于大规模文本数据训练、能够处理和生成自然语言的神经网络模型。"大"通常体现在模型参数规模、训练数据规模和计算资源投入等方面,并不存在适用于所有模型的统一参数门槛。

图1 大语言模型概念示意图
与传统面向单一任务训练的自然语言处理模型相比,大语言模型通常具备更强的通用性。通过大规模预训练,模型可以学习语言结构、语义关系、知识关联和上下文规律,并在此基础上形成文本理解与生成能力。经过指令微调和偏好对齐后,还能够更好地理解用户意图、遵循任务要求,并生成更符合预期的回答。
因此,大语言模型可以在同一模型框架下完成问答、文本生成、摘要、翻译、代码生成等多种任务。这些能力在实际交互中如何转化为一个个连续生成的Token,则要从大语言模型的文本生成过程说起。
1.2 大语言模型如何生成文本?
大语言模型并不是一次性生成完整回答,而是以Token 为基本单位逐步生成文本。输入内容首先通过分词器(Tokenizer)转换为若干Token。Token可以是一个汉字、一个词、词的一部分、数字或标点,具体划分方式取决于模型所采用的分词器。
以"为什么苹果会落到地面,而不是飞向天空?"为例,在完成输入处理后,模型会根据当前已有内容计算下一个 Token 的概率分布,例如"因为""由于"等都可能成为候选结果。模型依据具体的解码策略选择其中一个 Token,例如"因为"。
随后,"因为"被加入已有内容,模型再以更新后的上下文为条件继续预测,例如生成"地球";新的 Token 再次加入上下文后,模型继续预测"引力""会""使"等后续内容。如此循环,回答便由一个个 Token 逐步形成。

图2 大语言模型生成文本过程
那么模型是如何利用已有上下文,判断哪些Token更适合作为后续输出的?这就需要进一步理解支撑这一计算过程的Transformer架构。
二、Transformer的主要架构形式
Transformer并不是只有一种固定结构。根据Encoder和Decoder的组合方式以及注意力范围的不同,Transformer逐渐形成了Encoder-only、Decoder-only和Encoder--Decoder三类主要架构。三者都以注意力机制、前馈神经网络、残差连接和归一化等机制为基础,但解决问题的侧重点不同:Encoder-only更侧重理解和表示输入,Decoder-only更侧重连续生成,Encoder--Decoder则将输入编码与输出生成分开处理。

Transformer 的主要架构形式
从代表性模型来看,BERT、RoBERTa等属于Encoder-only路线;早期GPT系列以及Llama、Qwen、Gemma等生成式语言模型主要采用Decoder-only路线;经典Transformer、T5、BART等则采用Encoder--Decoder结构。
2.1 Encoder--Decoder:侧重条件生成
Encoder--Decoder是经典Transformer 最初采用的结构,其核心思想是将输入信息的编码和输出序列的生成分为两个阶段。Encoder 首先处理完整输入序列,通过多层Self-Attention 建立不同位置之间的联系,形成包含上下文信息的表示;Decoder 再结合 Encoder 提供的信息和已经生成的内容,逐步产生输出。

图3 Encoder--Decoder型结构
Encoder和Decoder之间通过Cross-Attention(交叉注意力)进行信息交互,使Decoder在生成过程中能够持续利用Encoder对输入序列形成的表示。
以机器翻译为例,输入:
"苹果会落到地面。"
Encoder 首先对完整中文句子进行编码;随后 Decoder 根据这些表示逐步生成:
"The apple falls to the ground."
因此,Encoder--Decoder更适合处理"给定一段输入,再生成另一段输出"的任务,例如机器翻译、文本摘要和序列转换等。经典 Transformer、T5、BART 都属于这一架构路线。
2.2 Encoder--only:侧重双向上下文理解
Encoder-only保留Transformer的Encoder部分,通过多层Encoder Block对完整输入序列进行处理。其核心特点是双向上下文建模:在处理某个Token时,模型通常可以同时利用其左侧和右侧的信息,从而形成包含完整上下文的表示。

图4 Encoder--only型结构
例如,对于下面两句话:
"今天苹果发布了新产品。"
"这个苹果非常甜。"
虽然都出现了"苹果",但前者指向企业名称,后者指向水果。Encoder-only模型可以综合"今天""发布""新产品"或"非常甜"等左右上下文,对"苹果"形成不同的语义表示。
这类模型的重点不是从左到右持续生成文本,而是理解输入序列中各个Token在当前上下文中的含义。BERT是其中的经典代表。在预训练阶段,BERT采用Masked Language Modeling(掩码语言建模)等方式学习上下文表示,例如将句子中的部分Token遮挡,再根据其左右信息预测被遮挡的内容。
因此,Encoder-only更适合文本分类、语义匹配、信息抽取、检索等需要对完整输入进行理解和表示的任务。可以简单理解为:其重点回答的是:"这段输入表达了什么?"
2.3 Decoder--only:侧重自回归生成
Decoder-only主要保留Transformer中适合序列生成的Decoder路线,不再设置独立的Encoder。其核心特点是因果注意力:当前位置只能利用当前及之前已经出现的Token,而不能提前访问后续内容。

图5 Decoder--only型结构
例如,当模型已经看到:
为什么苹果会落到地面,而不是飞向天空?因为地球......
在预测下一个Token时,可以利用问题以及"因为""地球"等已经出现的信息,但不能提前读取尚未生成的"引力"。
因此,其基本生成关系可以表示为:即根据前面已经出现的Token,预测当前位置的Token。新的Token生成后再加入原有序列,模型继续进行下一轮预测:这种方式称为自回归生成(AutoregressiveGeneration)。
GPT是Decoder-only技术路线的重要代表。早期GPT、GPT-2、GPT-3均采用自回归语言建模思路;Llama、Qwen、Gemma等大量生成式语言模型也采用Decoder-only Transformer。
这类架构尤其适合需要连续产生新内容的任务,例如对话、文本续写、内容生成和代码生成等。因此,Decoder-only更侧重回答:"根据已经出现的内容,接下来应该生成什么?"
三、Transformer Block的核心计算机制
当前许多生成式大语言模型采用Decoder-only架构。下面以这一架构为主线,从Token的输入表示出发,依次介绍嵌入层、注意力机制、前馈神经网络、残差连接与归一化以及输出层,梳理信息在Transformer中从输入、逐层处理到输出预测的完整计算过程。
3.1 嵌入层
在进入Transformer Block之前,经过Tokenizer处理后的Token序列需要进一步转换为模型能够计算的向量表示。Embedding层将每个Token映射为高维向量,作为后续计算的初始内容表示。需要注意的是,这一表示并不是Token在所有语境中的固定含义,具体语义还会在后续上下文计算中不断更新。例如,"苹果"既可以表示水果,也可以指代公司;在"为什么苹果会落到地面,而不是飞向天空?"这一语境中,模型需要结合整段已出现的上下文,逐步形成与当前问题相符的表示。
除了"是什么",模型还需要知道Token"在哪里"。同样一组词语如果排列顺序不同,表达的含义也可能发生变化。因此,Transformer还需要引入位置信息。对于采用加性位置表示的简化结构,第 i 个位置的初始表示可以写为:

其中,ei 表示第个 i Token的内容向量,pi表示对应的位置向量,xi 表示该位置送入Transformer的初始表示。

图6 Token初始向量表示
现代大语言模型的位置表示方式并不完全相同。例如,一些模型采用旋转位置编码(RotaryPositionEmbedding,RoPE),将位置信息融入Attention计算,而不是直接把一个位置向量加到Token表示上。
完成输入表示后,序列进入多层Transformer Block。由于生成过程受到因果约束,在预测下一Token时,序列末端位置只能利用此前已经出现的信息。例如,当上下文为"为什么苹果会落到地面,而不是飞向天空?因为地球"时,模型可以综合其中已经出现的"苹果""地面""天空""因为""地球"等信息,但不能提前读取尚未生成的内容。不同Token之间的信息如何被比较和聚合,主要由注意力机制完成。
3.2 注意力机制
3.2.1 Self-Attention(自注意力机制)
Transformer的核心在于让序列中的不同位置能够根据当前上下文建立联系。Self-Attention会为每个位置计算其与其他可见Token的相关程度,并据此对信息进行加权聚合,使原本彼此独立的Token表示逐步转化为包含上下文信息的表示。对于Decoder-only模型,这种信息交互只发生在当前位置允许看到的范围内。
以"为什么苹果会落到地面"为例,若当前关注的是"苹果",模型并不会只保留"苹果"这一词本身的信息,而是会结合"为什么""落到""地面"等上下文,判断它在当前语境中更接近"水果"而不是"公司"。这种"根据上下文重新理解当前Token"的能力,就是Self-Attention的核心作用。
为了计算这种相关性,每个位置的输入表示都会通过三组不同的线性映射,得到 Query(Q)、Key(K) 和 Value(V):

其中,X 表示当前层输入的表示矩阵;WQ、WK、WV 是三组可学习参数;Q、K、V 分别表示所有位置对应的查询向量、键向量和值向量。
Q、K、V并不是输入中原本就存在的三类信息,而是由同一组输入表示经过三组不同的线性映射得到的三种投影结果。也就是说,同一个Token在同一层中会同时生成自己的qi、ki、ki。进入下一层后,由于输入表示已经被更新,模型会重新计算新的Q、K、V;如果采用多头注意力,不同注意力头还会使用各自独立的投影参数。因此,Q、K、V会随着层数增加、注意力头不同以及上下文表示更新而不断变化。
在此基础上,模型通过Q与K的相似度计算注意力权重,再利用这些权重对V进行加权求和,其基本形式为:

其中,dk 表示 Key 的维度,分母中的平方根缩放用于控制点积结果的数值尺度,避免 Softmax 过于尖锐。

图7 Self-Attention(自注意力机制)
若模型采用RoPE(旋转位置编码),则通常是在Q、K参与相似度计算之前引入位置相关旋转,使模型在比较不同Token时能够同时感知它们的相对位置关系。
3.2.2 Masked Self-Attention(带掩码的自注意力机制)
对于普通的Self-Attention,每个位置原则上都可以与序列中的所有位置建立联系。但在Decoder-only模型中,生成过程具有严格的顺序性:当前位置在预测下一个Token时,不能提前看到未来位置的内容。因此,需要在Self-Attention中加入因果掩码(causal mask),形成Masked Self-Attention。
例如,在生成序列"因为地球引力会......"时,当模型当前只生成到"因为地球"时,它可以利用"因为""地球"等已经出现的信息,但不能提前读取尚未生成的"引力""会"等未来Token。掩码正是用来实现这一限制。加入掩码后的注意力计算可写为:

其中,M表示注意力掩码矩阵。对于普通的非因果Self-Attention,可将M视为0;而在Decoder-only的因果Self-Attention中,未来位置对应的掩码值会被设为极小值,使Softmax后这些位置的权重趋近于0,从而保证当前位置无法读取后续Token。

图8 Masked Self-Attention(带掩码的自注意力机制)
因此,Masked Self-Attention本质上是在Self-Attention 的基础上,进一步加入"只能看当前及之前位置"的约束,以满足自回归生成的要求。
3.3.3 Multi-HeadAttention(多头注意力)
单组Attention只在一组投影空间中计算Token之间的关联。Multi-HeadAttention(多头注意力)则将同一输入并行映射到多组Q、K、V,在多个注意力头中分别计算Attention,再将各头的输出拼接并进行线性映射,形成新的表示。
不同注意力头拥有各自的投影参数,因此可以从不同表示子空间学习Token之间的关联。例如,在"为什么苹果会落到地面,而不是飞向天空?"这一序列中,不同Head可能对"苹果""落到地面""天空"等位置形成不同的注意力分布,从多个角度整合上下文信息。多头注意力可以表示为:

其中,h表示注意力头数量,各个Head独立完成注意力计算,随后通过拼接(Concat)和输出映射汇总为统一表示。

图9 Multi-HeadAttention(多头注意力)
在实际大语言模型中,多头注意力还发展出Multi-Query Attention(MQA)和Grouped-Query Attention(GQA)等变体。标准Multi-HeadAttention通常为不同Query Head配置各自的Key和Value;MQA让多个QueryHead共享一组Key和Value,GQA则让若干Query Head分组共享Key和Value。这样可以减少推理阶段Key、Value的存储和计算开销,特别是降低KVCache占用,同时保留多组Query进行并行注意力计算的能力。
3.3 前馈网络
注意力机制完成不同Token之间的信息交互后,每个位置的表示还需要进一步进行特征变换,这一过程由前馈神经网络(Feed Forward Network,FFN)完成。与Attention负责不同位置之间的信息交互不同,FFN对序列中的每个位置独立使用同一组参数进行计算,通常先将隐藏表示映射到更高维的特征空间,经过非线性变换后,再映射回原来的隐藏维度。例如,在"因为地球"这一上下文中,Attention先汇集与当前预测相关的信息,FFN再对这些已经获得的表示进行进一步加工。其基本形式为:

其中,W₁、W₂和b₁、b₂为可学习参数,σ表示非线性激活函数。经典Transformer使用ReLU。

图10 前馈网络
现代大语言模型则常采用GELU、SiLU或SwiGLU等激活与门控结构。具体实现有所差异,但其作用相近:对Attention已经聚合的上下文信息进行进一步的非线性变换,增强模型对复杂特征关系的表达能力。
如果把Attention理解为"从上下文中选择并汇集相关信息",那么FFN更接近对这些已经汇集的信息进行进一步加工。二者交替出现,使模型既能够完成Token之间的信息交互,又能够对各位置的内部表示进行非线性变换。
3.4 残差连接
Transformer通常需要堆叠多层Block。如果每一层都直接用Attention或FFN的输出替换原有表示,随着层数增加,早期信息可能在连续变换中逐渐弱化,梯度也更难在深层网络中稳定传播。为此,Transformer在各子层周围引入残差连接(Residual Connection),为原始信息保留一条直接向后传递的路径。其将子层输入与变换结果直接相加:

其中,x表示子层输入,F(x)表示Attention或FFN的变换结果。残差连接使原有信息能够跨越子层直接向后传递,也有利于深层网络的训练。

图11 残差连接
不过,经过Attention、FFN和残差相加后,不同层输出的数值分布可能不断发生变化。归一化(Normalization)用于调节表示的尺度,使各层输入保持相对稳定,从而改善深层网络的训练和计算稳定性。经典Transformer原始结构采用Post-Norm,即先完成子层计算和残差相加,再进行LayerNorm;许多现代Decoder-only大语言模型则采用Pre-Norm,并常使用RMSNorm等归一化方式。不同模型的具体位置和形式可能不同,但残差连接与归一化共同承担着支撑多层Transformer Block稳定堆叠的重要作用。
经过"注意力机制→残差与归一化→FFN→残差与归一化"的反复处理,一个Block的输出继续作为下一Block的输入,隐藏表示由此逐层更新。
3.5 输出层
经过多层TransformerBlock处理后,模型得到最后一层隐藏表示。隐藏表示仍然是高维向量,并不是可以直接输出的文字。在一次自回归生成步骤中,可以将当前序列最后位置的隐藏状态记为hₜ,并通过语言模型输出头(LMHead)映射到整个词表空间,得到每个候选Token对应的logits:

其中,输出映射矩阵和偏置向量均为可学习参数,上式得到的是下一位置在词表空间中的未归一化分数。随后利用Softmax将这些分数转换为概率分布:

得到概率分布后,模型再依据具体解码策略选择下一Token。以"......因为地球"为例,"引力""的""存在"等候选Token会得到不同概率,模型可能选择"引力"作为下一Token;新Token被加入已有上下文后,模型再次执行相同过程,直至生成结束。

图11 输出层
Temperature、Top-k、Top-p等参数会影响概率分布的平滑程度、候选范围和采样方式,从而改变输出的确定性与多样性,但不会改变"基于已有上下文逐Token预测"这一基本生成机制。
至此,从Token的初始表示、上下文信息交互到下一Token概率输出的完整计算链条已经形成。多层Transformer Block并不是一次性生成答案,而是在每一步生成中持续更新表示并预测后续Token,这也为理解大语言模型表现出的"思考"过程提供了基础。
四、如何理解大模型的"思考"
当模型回答"为什么苹果会落到地面,而不是飞向天空?"时,它是否真的像人一样先"理解---思考---组织",再给出答案?从 Transformer 的计算机制看,可以从三个方面理解:
一是回答是逐步生成的。 模型并不是从预先存储的答案中直接取出结果,也不是先形成完整回答再一次性输出,而是根据当前上下文不断更新表示、预测下一 Token,并通过连续预测逐步形成回答。
二是生成能力并不等于结果一定正确。 这种机制能够支持连贯文本、知识问答和复杂推理,但仍可能受到训练数据、上下文信息和概率预测机制的影响,出现事实错误、推理偏差或"幻觉"等问题。
三是模型的"思考"不能简单等同于人的思维。 大语言模型是在大规模参数学习的基础上,通过上下文表示、信息交互和连续预测表现出复杂的问题处理能力。Transformer 描述的是这一过程背后的计算机制,并不意味着 Attention、隐藏状态更新或 Token 预测可以与人类的意识和思维过程一一对应。
因此,理解 Transformer,更重要的是理解自然语言如何被表示、上下文信息如何被关联和更新,以及这些计算如何最终转化为连续生成的 Token。
五、总结
本期围绕"大语言模型如何生成回答"展开,先介绍Token预测和自回归生成机制,再梳理Transformer的主要架构形式,并以Decoder-onlyTransformer为主线说明从输入表示、注意力计算、特征变换到输出预测的完整过程。整体上,文本先被转换为Token和向量表示,在多层TransformerBlock中不断建立上下文关联、更新隐藏表示,最终得到下一Token的概率分布;新Token加入上下文后继续预测,由此逐步形成完整回答。
作者 | 李超凡 孟婷
责编 | 元晨晨
审核 | 徐小峰