Transformer、Attention、Token:大模型为什么能对话
大模型并不是在“理解语言”之后才会对话,它先是在 Token 级别学会预测,再通过 Attention 与 Transformer 结构获得惊人的表达能力。
很多人第一次接触大模型时都会有一种直觉:它好像真的在思考。但从技术角度看,它的基础动作其实更朴素——预测下一个 token。
Section 01先说结论:对话能力不是凭空出现的
大模型的对话能力,并不是因为它先学会了“聊天”,再去做语言模型。相反,它的训练目标非常简单:在给定上下文的情况下,预测下一个 token。
奇妙之处在于,当这个目标被做得足够大、足够深、足够稳定时,模型会在语言规律里长出很多超出预期的能力:总结、翻译、问答、改写、推理、甚至多轮对话。
所以理解大模型,不能只看它“在说什么”,而要看它“是怎么一步步算出来的”。
Section 02Token:模型真正处理的最小单位
我们看到的是句子,模型处理的是 token。一个 token 可能是一个字、一个词的一部分,甚至一个标点。模型并不是直接理解整段文字,而是在 token 序列上工作。
为什么要切成 token
自然语言太复杂,直接按整句处理既不稳定也不高效。把文本切成 token 后,模型可以:
- 统一输入形式
- 处理不同语言
- 在固定长度的序列上做计算
- 通过统计关系学习语言结构
你可以把 token 理解为模型的“最小积木”。句子是人类的表达单位,token 是模型的计算单位。
token 不等于词
很多人第一次接触这里会误解:一个 token 不一定是一个完整的词。英文里常见词可能会被切成多个子词,中文里一个字也可能就是一个 token。
这件事很重要,因为它决定了模型看到世界的方式并不是人类的方式。人类按词义理解句子,模型按 token 序列进行计算。
Section 03Embedding 与位置编码:让 token 有“意义”和“顺序”
如果只有 token 编号,模型什么也学不到。它还需要知道每个 token 的含义,以及它在句子中的位置。
Token Embedding
Token Embedding 会把离散 token 映射到连续向量空间里。这样模型才能对不同 token 的语义关系进行计算。
Position Encoding
语言不仅有内容,还有顺序。
“我打你”和“你打我”在语义上完全不同,但 token 集合几乎一样。模型必须知道 token 的先后顺序,才能理解句法和语义关系。位置编码就是为了解决这个问题。
换句话说:Embedding 告诉模型“这是什么”,位置编码告诉模型“它在哪”。
Attention 如何把当前 token 与上下文关联起来
Section 04Attention:模型为什么能关注上下文
Attention 机制解决的核心问题是:当一句话变长时,模型如何知道当前 token 应该重点看前面的哪些部分。它给了模型一种按相关性分配注意力的能力。
直觉理解
你可以把 Attention 想成“每个词在回答问题时,会自动去看它最相关的上下文”。
比如:
这里“他”指谁?模型需要根据上下文决定。Attention 的作用,就是在众多上下文 token 中,动态找出更相关的部分。
为什么 Attention 这么重要
没有 Attention,模型只能以很固定的方式看上下文。加入 Attention 后,模型可以根据当前任务动态调整关注焦点,这使得它对长距离依赖的处理能力大幅提升。
这也是为什么 Attention 一直被认为是 Transformer 的核心。
Section 05Transformer:把注意力机制组织成通用结构
Transformer 不是单独一个技巧,而是一整套围绕 Attention 构建起来的结构设计。它让模型可以高效处理长序列,并逐步形成语言中的语义关系、结构关系和上下文依赖。
Transformer 解决了什么
在 Transformer 之前,序列模型常常依赖循环结构,训练并行性差,长距离依赖也难处理。Transformer 的优势在于:
- 可以并行处理序列
- 更擅长捕捉远距离依赖
- 适合大规模训练
- 更容易扩展到更大的模型
不是只有一个 Attention
很多人会把 Transformer 简化成“Attention 模型”,但实际上它包含很多层级和组件:
- 输入嵌入
- 位置编码
- 多头注意力
- 前馈网络
- 残差连接
- LayerNorm
这些结构组合在一起,才形成了稳定的大模型骨架。
多头注意力是什么意思
多头注意力不是“多个脑袋同时胡乱看”,而是让模型在不同子空间里并行学习不同类型的关系。有的头关注语法,有的头关注指代,有的头关注主题,有的头关注局部模式。
这就像不同的观察角度:从一个角度看不清的东西,换个角度可能就清楚了。
大模型对话能力的基本机制
从文本输入到输出下一个 token,真正发生的是一条连续的机制链。
用户输入的句子先进入模型上下文。
文本被拆成模型可处理的离散单位。
模型判断当前 token 应重点关注哪些上下文。
多层结构逐步压缩并重组语言关系。
模型生成当前最可能的下一个 token。
Section 06为什么“预测下一个 token”会产生对话能力
当训练数据足够大、结构足够强、参数足够多时,预测任务不再只是机械补全。为了把下一个 token 预测得更准确,模型会被迫压缩大量语言规律、事实模式和表达结构。
语言能力是被逼出来的
这是大模型最反直觉的地方:你让它做一个非常简单的任务,它却在训练过程中被迫学会很多复杂能力。
因为要预测下一个 token,模型必须同时学会:
- 词语之间的搭配规律
- 句法结构
- 指代关系
- 主题延续
- 常识模式
- 多轮上下文一致性
所以,对话能力不是额外加进去的,而是预测任务在大规模训练下自然涌现的结果。
为什么它会看起来像“理解”
因为对话本身就是语言规律高度集中的场景。一个模型只要足够擅长延续上下文,它就会表现得像在理解。
但这里要保持冷静:它表现出“像理解”的行为,不代表它拥有和人类相同的理解方式。它更像是在巨量文本统计规律上形成了强大的表示能力。
Section 07训练和推理不是一回事
很多人会把“模型为什么会说话”混成“模型在回答时怎么想的”。这两件事不同。
训练阶段
模型在大量文本上学习如何预测下一个 token。它在这个过程中形成参数记忆、语义表示和上下文依赖。
推理阶段
当你真正和模型对话时,它不是在“重新训练”,而是在基于当前上下文一步步生成 token。每一步生成都会影响下一步的上下文,所以看起来像连续思考。
这种一步接一步的生成方式,是对话体验的核心。
Section 08为什么模型会犯错
因为它本质上仍然是概率模型。它并不是从知识库里逐条检索事实,而是在上下文里生成最可能的 token。
这带来两个结果:
- 它能说得很流畅
- 它也可能说得很像真的,但实际上是错的
所以使用大模型时,不能只看语言是否自然,还要看是否需要外部事实校验、检索补充或结构化约束。
Section 09一个更实用的理解方式
你可以把整个流程理解成这样:
- 文本被切成 token
- token 变成向量
- 向量加上位置信息
- Attention 计算相关性
- Transformer 多层处理上下文
- 模型输出下一个 token
- 重复这个过程,形成完整回答
这条链条并不神秘,但它足够强大,足以让模型在大量场景里表现得像一个会说话的系统。
Section 10结语
Token 是输入单位,Attention 决定关注关系,Transformer 提供整体框架。理解这三者之间的关系,就能更冷静地看待大模型:它既不是魔法,也不是简单的字符串拼接。
它是一套在大规模训练中逐渐学会语言结构的系统。理解它的工作方式,才能更清楚地判断它该被怎样使用、在哪里可靠、在哪里需要外部约束。