Definition
input embedding 这一层,说白了就是把离散输入变成模型能接的向量。
Transformer 真正接收的不是原始字符串,而是形如
的一串向量表示。
其中:
- 是序列长度
- 是表示维度
所以从架构上看,Transformer 关心的不是“文本原本长什么样”,而是进入 block 之前有没有被整理成向量序列。
Input path
文本输入最常见的一条链路可以先记成:
text -> tokenizer -> token ids -> embedding lookup -> vectors -> transformer layers如果往细里拆,大致有这几层:
-
tokenizer granularity
- 按 word、subword、byte、char 或别的粒度切
-
vocab / token-id mapping
- 哪些 token 合法、每个 token 对应哪个 id
-
token embedding lookup
- 把 token id 映射成向量
-
position information integration
- 把顺序信息带进去
-
transformer layers
- 后面的 attention、MLP、残差、归一化等计算
这几层经常一起被说,但其实不是同一个东西。
Standard form
最常见的文本做法,还是先得到 token ids,再查 embedding table。
设 embedding table 为:
其中:
- 是 vocabulary size
- 是 embedding dimension
输入 token ids 如果是:
那么 lookup 之后会得到:
堆起来以后就是:
这才是 Transformer block 真正接到的输入。
边界先分清
1. 它不是 tokenizer
- tokenizer 负责把文本切成 token,并映射成 ids
- embedding layer 负责把 ids 变成向量
这两步经常被一起说成“embedding”,但其实不是一回事。
tokenizer 机制细节见:Tokenizer in Modern LLMs。
2. 它不等于 position handling
- token embedding 负责“这是什么 token”
- position handling 负责“它在序列里的位置”
经典 Transformer 里常见 positional embedding / encoding;现代 LLM 里也可能通过 RoPE 这类方式把位置信息带进 attention。
3. 它也不等于整个输入前处理
有些口头说法会把 tokenizer、embedding、position handling 都统称成 embedding。 交流时这么说有时省事,但学习时很容易混层。
几个容易混的点
1. “Transformer 直接吃文本”
不是。Transformer 吃的是向量序列,不是原始字符串。
2. “有了 embedding 就有顺序信息了”
不是。token embedding 解决的是离散 token 如何进入连续向量空间;顺序通常还要单独处理。
3. “embedding 方法是固定唯一的”
也不是。最常见的是 token embedding lookup,但 Transformer 本身并不绑定唯一输入来源。只要最后是向量序列,就可以送进后续层。
4. “不认识的输入一定会变成 <unk>”
这更像旧式 NLP 课上的简化说法。现代 LLM 更常见的是继续拆,通过 subword 或 byte-level 路线把它变成可表示的 token 序列。
为什么单独记这个
1. 它其实是在划 Transformer 的输入边界
如果 tokenizer、embedding、position handling 这几层一开始没分开,后面读 attention、RoPE、context length 时很容易全混在一起。
2. 它也连着 vocab size 和 sequence length
不同 tokenizer 和 vocab 设计会改变 token 数量;token 数量又会直接影响 attention 成本和上下文占用。
3. 它也是多模态输入的共同抽象
从更高层看,Transformer 不是只服务文本。图像 patch、音频片段或者别的模态单元,只要最后能表示成向量序列,也能进入同类架构。
Minimal mental model
先记住这一句就够了:
Transformer does not consume raw text; it consumes vector sequences.对文本任务,把它展开就是:
text -> tokenizer -> token ids -> embedding lookup -> vectors -> transformer layers其中:
- tokenizer 负责离散化
- embedding lookup 负责向量化
- position handling 负责顺序信息
- transformer layers 负责后续建模