L

[LLM] 大模型处理Token流程

RoLingG 其他 2026-06-30

大模型处理Token流程

Token
  │
  ▼
Embedding
  │
  ▼
Layer1
  │
  ▼
Layer2
  │
  ▼
...
  │
  ▼
LayerN

Embedding——把文字变成计算机能够理解的向量

大语言模型本身并不认识:

Go
Rust
Python

对于模型来说,这些只是字符串。

因此第一步就是:把 Token 转换成数字向量(Embedding)。

例如:

Go

经过 Embedding 后,可能变成:

[0.21, -0.83, 1.52, ..., 0.44]

这个向量可能有:

  • 768 维
  • 2048 维
  • 4096 维

具体取决于模型。

这里的每一个数字都没有固定的人类意义,它们共同表示了这个 Token 的语义特征。

因此,Embedding 就是把离散的 Token 映射到连续的向量空间。这一步通常也叫:向量化


Layer——不断加工这个向量

很多人第一次看到:

Layer1
  ↓
Layer2
  ↓
Layer3

都会觉得:

为什么不直接算一次?

原因其实和人类思考问题很像。

假设一句话:

Go supports goroutines.

第一次阅读时,我们可能只能知道:"Go" 是一个词。

再读一遍,知道:"goroutines" 和 "Go" 有关系。

继续分析,知道:"supports" 表示支持关系。

再进一步,理解:整句话是在描述 Go 的并发能力。

模型也是类似的。

每经过一层,它都会对当前向量进行进一步加工,让它包含更多、更丰富的语义信息。

因此,Layer 的作用并不是重新表示 Token,而是不断丰富 Token 的表示能力。


一层 Layer 里面到底做了什么?

虽然 Transformer Layer 内部有不少组件,但核心可以理解为两步。

第一部分:Attention

Attention 会回答一个问题:

当前 Token 应该关注哪些历史 Token?

例如:Go supports goroutines. ,计算:goroutines 时,模型可能会重点关注:Go ,而不是:supports

于是,Attention 会根据 Query、Key、Value,计算出 Attention Weight,然后融合其它 Token 的信息。

这一过程让模型能够理解:Token 与 Token 之间的关系。


第二部分:Feed Forward Network(FFN)

Attention 得到新的向量之后,并不会直接输出。还会经过一个前馈神经网络(Feed Forward Network)

它可以理解成:对刚刚融合的信息进一步加工。

例如,Attention 已经知道:

Go
↓
goroutines

关系很强。

FFN 则进一步提取:

  • 是否属于编程语言?
  • 是否与并发相关?
  • 是否与上下文一致?

最终输出新的向量。

因此,一层 Layer 实际上就是:

输入向量
↓
Attention(理解上下文关系)
↓
FFN(提取更高层语义)
↓
输出新的向量

为什么需要很多层?

你也许会有疑问:一层 Attention 不够吗?

实际上,不同层负责的信息并不一样。

虽然没有绝对界限,但大量研究发现:

前面的层更关注:

  • 拼写
  • 词法
  • 局部关系

中间层开始理解:

  • 短语
  • 语法
  • 句法结构

后面层逐渐形成:

  • 语义
  • 推理
  • 知识关联

也就是说:模型是在不断"抽象"。

这和 CNN 很类似:

  • 前几层识别边缘。
  • 中间识别眼睛。
  • 最后识别人脸。

Transformer 也是:每一层都建立在上一层的基础上,不断形成更高层次的语义表示。

PREV
[每日算法] 基本计算器
NEXT
[LLM] 粗浅理解大模型 Promot Cache

评论(0)

发布评论