Transformer 与生成过程:模型怎样写出下一个 Token

# Transformer 与生成过程:模型怎样写出下一个 Token

本篇目标

从输入向量、位置、自注意力和前馈网络出发,理解 Transformer 怎样计算下一个 Token,并解释幻觉为什么是生成机制中的自然风险。

看懂 Transformer理解自回归生成区分训练与推理解释幻觉来源

# 先记住一句话

Transformer 会反复让 Token 交换上下文信息,再计算下一个 Token 的概率;生成结果是一连串概率选择,不是从数据库中取出一段现成答案。

# Transformer 是什么

Transformer 是一种以注意力机制为核心的神经网络架构。它擅长处理序列中相隔很远的关系,并且训练时可以并行处理多个位置,因此成为现代 LLM 的主要基础架构。

用于文本生成的模型通常包含多层重复结构:

Token ID
  ↓ Embedding:变成向量
加上位置信息
  ↓
多层 Transformer Block
  ├─ Self-Attention:从上下文汇总相关信息
  ├─ Feed-Forward Network:对每个位置继续变换
  ├─ Residual Connection:保留并叠加已有信息
  └─ Normalization:稳定数值和训练过程
  ↓
Logits:下一个 Token 的原始分数
  ↓ Softmax 与采样策略
选出下一个 Token
1
2
3
4
5
6
7
8
9
10
11
12
13

Embedding 在这里指把 Token ID 映射成模型内部向量,不要和用于语义检索的句子 Embedding 混淆。两者都使用向量,但用途和训练目标不同。

# 位置信息为什么必不可少

注意力本身主要比较内容关联,如果没有位置信息,模型难以区分 “小明批评小王” 和 “小王批评小明” 的顺序差异。

模型会通过位置编码或旋转位置等机制把顺序信息加入计算。具体实现随模型架构变化,但共同目标是让模型知道 Token 的相对或绝对位置。

# Self-Attention 怎样汇总上下文

每个 Token 会生成 Query、Key 和 Value:

  1. 用当前 Token 的 Query 与其他 Token 的 Key 计算相关分数;
  2. 将分数归一化为权重;
  3. 按权重汇总其他位置的 Value;
  4. 得到包含上下文关系的新表示。

Multi-Head Attention 会并行使用多组注意力头。不同头可以学习语法、指代、位置或其他关系,但不能简单认为某个头永远只负责一种人类可命名的规则。

# 为什么还需要前馈网络

注意力负责在 Token 之间交换信息,前馈网络(Feed-Forward Network)则对每个位置的表示进行更复杂的非线性变换。可以粗略记成:

注意力:从其他位置取回什么信息
前馈网络:拿到信息后怎样继续处理
1
2

残差连接让新结果和旧表示相加,使深层网络更容易训练;归一化用于控制数值尺度。真实模型的层结构可能不同,但这套职责划分有助于建立心智模型。

# 自回归生成是怎样循环的

自回归(Autoregressive)表示模型每次生成一个新 Token,并把它追加到上下文,再预测下一个:

输入:数据库连接池应该
预测:长期

输入:数据库连接池应该长期
预测:复用

输入:数据库连接池应该长期复用
预测:,
1
2
3
4
5
6
7
8

模型不会先在内部写完一整篇文章再一次性返回。流式输出只是把已经生成的增量更早发送给客户端,并没有改变逐 Token 生成的基本过程。

# Logits、概率和采样

最后一层会为词表中的候选 Token 产生一组原始分数,称为 Logits。Softmax 将它们转换成概率分布,解码策略再决定选哪个 Token。

  • 每次选最高概率项更稳定,但不代表完全确定;
  • 按概率采样可以增加多样性,也会增加波动;
  • Temperature 和 Top P 会改变候选分布;
  • 模型、上下文和服务实现变化也会影响结果。

因此低 Temperature 不能保证业务上的绝对确定性,关键分类和计算仍应由程序校验。

# 训练时模型学到了什么

预训练通常让模型根据上下文预测缺失或后续 Token,从大量数据中学习语言、知识和代码模式。之后还可能经历:

  • Instruction Tuning:学习按照人类指令完成任务;
  • Preference Alignment:根据偏好数据调整回答风格和安全行为;
  • Domain Fine-tuning:强化某个领域或固定任务的表现。

这些阶段改变模型参数。RAG、Prompt 和工具调用主要改变推理时输入或可用能力,并不会自动修改基础模型权重。

# 幻觉为什么会发生

模型必须继续生成时,会选择在当前上下文下看起来合理的 Token。以下情况容易产生无依据内容:

  • 问题需要模型没有看到的实时或私有事实;
  • 上下文缺少证据,或证据之间互相冲突;
  • 用户要求了过于确定的答案,却没有允许模型表达未知;
  • 长链路前面已经选错,后续内容沿错误方向继续生成;
  • 训练数据中的模式和当前事实不一致。

缓解方式包括提供可信证据、要求引用、允许拒答、使用结构化输出、调用真实工具,并用评测覆盖事实和失败场景。它们能降低风险,但不能把概率模型变成绝对正确的数据库。

# 高频面试题与回答

1. Transformer 为什么适合大语言模型?参考答案

它通过注意力机制直接建立序列中不同位置的关系,训练时又能并行处理多个 Token,比传统逐步处理序列的结构更适合扩大数据量和模型规模。现代实现还会针对长上下文和推理效率继续优化。

2. 自注意力和普通固定权重有什么区别?参考答案

自注意力会根据当前输入动态计算不同 Token 之间的相关程度,同一个词在不同句子里关注的位置可以不同。它不是给每个词预先分配一个永远不变的重要度。

3. 模型生成文本为什么有随机性?参考答案

模型每一步得到的是候选 Token 的概率分布,解码策略可能从多个候选中采样。即使把随机性调低,模型服务和上下文变化仍可能造成差异,所以关键业务结果不能只依赖自然语言输出。

4. 为什么 Prompt 不能让模型永久学会新知识?参考答案

Prompt 只进入本次推理的上下文,不会更新模型参数。它能让模型临时使用提供的信息;要跨请求继续使用,应由应用保存并重新注入,或者通过 RAG、工具、记忆系统和微调等机制解决。

# 接下来学什么

下一篇学习 模型 API、消息角色与结构化输出,把模型生成原理接入真实应用调用链。

# 参考资料