词元ID是如何转为嵌入向量? 位置嵌入的作用是什么?

一、 词元 ID 是如何转为嵌入向量的?

比如"I love AI",在经过 BPE 等分词算法,先分词成 ["I", "love", "AI"],,再变成一串数字(Token IDs)变成了 [12, 532, 981]。这是一个查词汇表的过程,这张词汇表定义了如何将每个唯一的单词和特殊字符映射到一个唯一的整数。但这只是离散的数字,神经网络无法直接处理它们,也无法理解 12532 之间的语义关系。

将它们转化为嵌入向量(Embedding Vectors),实际上是一个查字典(Lookup Table) 的过程:

  1. 词嵌入矩阵(Embedding Matrix)
    模型在内部维护着一个巨大的表格(矩阵)。这个表格的行数 等于词表的大小(Vocabulary Size,比如 10,000),列数等于嵌入向量的维度(Embedding Dimension,比如4维, 实际是 768 / 4096 等)。

假设词嵌入矩阵为:

复制代码
token_id    embedding vector
0        [0.2, 0.1, 0.9, 0.3]
1        [0.8, 0.5, 0.1, 0.4]
2        [0.3, 0.7, 0.6, 0.2]
...
12       [0.9, 0.1, 0.3, 0.8]
...
532      [0.4, 0.2, 0.7, 0.1]
...
981      [0.6, 0.3, 0.5, 0.9]
  1. 索引查找(Index Lookup)
    当模型接收到一个 Token ID(例如 12)时,它会直接去这个矩阵中提取第 12 行 的那一整排数据。
    • 输入:12 (整数)
    • 输出: [0.9, 0.1, 0.3, 0.8]

通过token iDs为 12, 532, 981 直接查表,得到下面嵌入向量:

复制代码
[0.9, 0.1, 0.3, 0.8]   ← I
[0.4, 0.2, 0.7, 0.1]   ← love
[0.6, 0.3, 0.5, 0.9]   ← AI
  1. 数学本质
    在底层数学运算中,这等价于将一个 One-hot 向量(只有一个位置是 1,其余全为 0,长度为 10000 的向量)
    这个过程的意义:
    这些浮点数向量并不是随机的。在模型预训练的过程中,这个矩阵会被不断更新。最终,语义相近的词汇(如"猫"和"狗"),它们对应的向量在多维空间中的距离会非常接近。这样,离散的数字就变成了蕴含丰富语义的连续数学表达。

二、 位置嵌入(Positional Embedding)的作用是什么?

如果你了解过传统的循环神经网络(RNN/LSTM),它们是按照顺序一个词一个词读取的,所以天生就知道词的先后顺序。

但是,现代大模型基于 Transformer 架构 ,它的核心"自注意力机制(Self-Attention)"是并行处理所有词元的。也就是说,它是一次性把一句话里的所有词一起吞进去计算的。

这就带来了一个致命问题: 对于原始的 Transformer 来说,如果没有位置信息,"I love AI" 和 "AI love I" 对它来说是完全一模一样的输入!因为词元集合相同,它失去了对语序的感知能力

位置嵌入(Positional Embedding)的作用就是为了解决这个问题:它告诉模型每个词在句子中的确切位置。

具体是如何运作的?

  1. 生成位置向量:模型会为句子中的每一个位置(第 1 个词、第 2 个词、第 3 个词......)生成一个特定规则的"位置向量"。这个向量的维度和之前的词嵌入向量维度一模一样(比如都是 4096 维)。
  2. 两者相加 :将前面查字典得到的词嵌入向量 与对应的位置嵌入向量 进行元素级别的相加(Add)
    • 最终向量= 词义信息(Token Embedding) + 位置信息(Positional Embedding)

比如:

词嵌入向量:

复制代码
I     [0.9, 0.1, 0.3, 0.8]
love  [0.4, 0.2, 0.7, 0.1]
AI    [0.6, 0.3, 0.5, 0.9]

位置嵌入向量:

复制代码
pos0  [0.1, 0.0, 0.2, 0.0]
pos1  [0.0, 0.3, 0.1, 0.2]
pos2  [0.2, 0.1, 0.0, 0.1]

两者相加:

复制代码
I     [1.0, 0.1, 0.5, 0.8]
love  [0.4, 0.5, 0.8, 0.3]
AI    [0.8, 0.4, 0.5, 1.0]
  1. 传递给模型:相加后的新向量不仅包含了"这个词是什么意思",还包含了"这个词在句子中的哪个位置",然后才送入后续的网络层进行处理。

常见的位置编码方式:

  • 绝对位置编码(Absolute PE):早期 Transformer 使用正弦和余弦函数(Sinusoidal)的数学公式硬编码生成,或者像词嵌入一样让模型自己学习每个位置的向量(GPT-2/3 的做法)。
  • 相对位置编码(Relative PE) :现在最流行的大模型(如 LLaMA、Qwen 等)更倾向于使用 RoPE(旋转位置编码,Rotary Position Embedding) 或 ALiBi。这类方法不关注词的"绝对位置是第几个",而是关注两个词之间的"相对距离有多远",这大大增强了模型处理长文本和泛化的能力。
相关推荐
phltxy8 小时前
LangChain从模型输出到RAG数据管道实战
服务器·人工智能·深度学习·语言模型·langchain
10x108 小时前
企业 AI 真正的分水岭:不是人人都在用,而是工作方式被重新设计
人工智能
收放扳机8 小时前
PCB产线的“柔性”是怎么实现的——从自动化上下料设备兼容性看产线弹性
人工智能·科技·自动化·制造·pcb工艺
天上路人9 小时前
全功能AI语音处理模组的算法集成与接口设计分析
人工智能·ai语音·麦克风·回音消除
触底反弹9 小时前
🔥 保姆级教程|SSE + BFF + 跨域三件套,从零实现 ChatGPT 流式输出(附完整代码)
人工智能·node.js·vite
嘿丨嘿9 小时前
VLA 入门(六):VLA 如何进行强化学习后训练?
人工智能·python·深度学习·机器人
触底反弹10 小时前
🔥 从零搭建 RAG 知识库:爬虫→分词→向量化→检索,一步都不能错
javascript·人工智能·面试
zhou lily10 小时前
超自动化落地:RPA+AI如何打通业务流程的“最后一公里”?
人工智能·自动化·rpa
tyqtyq2210 小时前
HarmonyOS AI 应用开发实战:简历项目经历改写系统
人工智能·学习·华为·生活·harmonyos
小柯南敲键盘11 小时前
批量图片翻译与视频字幕一站式解决高效跨境电商沟通难题
大数据·人工智能·python·音视频