大模型token的漫游之旅:Word Embedding | 兼看Qwen的参数构成
上回咱们聊了token是什么,以及词表是如何构建、句子是怎么被切分的。但有个关键问题悬而未决:计算机究竟是如何“理解”这些token的?它们又是怎样参与到复杂的数学计算中去的?
今天,我们就来把这个问题讲透。本文会围绕三块内容展开:
传统词编码方法
要让计算机处理文本,首先得把文字变成数字。这事儿听着简单,做起来却有不少门道。
One-Hot编码
最直白的方法莫过于One-Hot编码。想象一下,你的词表里有一万个词,那么每个词就被表示成一个一万维的向量。这个词在自己对应的位置上标为1,其他9999个位置全是0。
举个例子,假设我们从两句话里得到一个微型词表:
- 我 爱 人工智能
- 我 爱 中国
那么词表就是:[我, 爱, 人工智能, 中国]。句子“我 爱 中国”里的三个token,就可以用下面这个表来表示:
| 我 |
爱 | 人工智能 | 中国 |
|
| 我 |
1 | 0 | 0 | 0 |
| 爱 |
0 |
1 |
0 | 0 |
| 中国 | 0 |
0 | 0 |
1 |
这种方法的优点很明显:
简单、直观、无偏
- :词表有多大,向量就有多长。面对动辄数十万上百万的词表,计算和存储都是噩梦。
维度爆炸
- :向量里几乎全是0,有效信息只有孤零零的一个1,效率极低。
极度稀疏
- :它无法表达任何词义关系。比如,“中国”和“中华”在语义上很接近,但在One-Hot编码里,它们就是两个毫无关系的向量。
语义缺失
显然,对于需要理解复杂语义的大模型来说,One-Hot编码远远不够。
稠密向量编码
于是,更聪明的办法出现了:稠密向量编码,也叫词嵌入(Word Embedding)。
思路很简单:我们不再用超长的稀疏向量,而是为每个词分配一个固定长度的、稠密的短向量,比如128维或256维。这个向量里的每个数字都不是0或1,而是一个连续的实数,例如“(0.21, -0.15, 0.64, 0.36)”。
这样一来,不管词表多大,每个词的表示维度是固定的,极大地压缩了空间。更重要的是,这些稠密向量不是随机给的,而是通过在海量文本上训练得到的。训练的目标是让语义相近的词(如“国王”和“王后”),其向量在空间中的距离也更近。
Word2Vec、GloVe等都是早期非常成功的词嵌入训练方法。它们带来的好处是革命性的:
- :能表达词与词之间的相似、类比等复杂关系。
捕获语义
- :从数万维降到数百维。
维度大幅降低
- :支持向量运算,比如经典的“国王 - 男人 + 女人 ≈ 王后”。
连续性
不过,它也有自己的局限:训练成本高、更新词表麻烦、向量的可解释性较差(很难说清某一维具体代表什么含义)。
大模型中的词编码方法
如今的大语言模型,本质上沿用了稠密向量编码的思想,但把它做成了模型内在的、可学习的一部分。
具体来说,模型初始化时,会创建一个巨大的“词嵌入矩阵”。这个矩阵的行数就是词表大小(比如15万),列数就是设定的向量维度(比如4096)。矩阵中的每一行,都对应词表里一个token的稠密向量表示。
在模型运行时,输入句子被切分成token后,每个token根据其在词表中的索引,去这个矩阵里“查表”,取出对应的行向量。这个稠密的数值向量,就是计算机真正用来“理解”和计算该token的表示。
接下来的故事就顺理成章了:这些向量经过模型中层层叠叠的神经网络(主要是Transformer模块)进行复杂的加法和乘法运算。最终,模型会输出一个向量,这个向量会与词嵌入矩阵中的每一行进行计算(比如点积),衡量相似度。相似度最高的那些行所对应的token,就会以较高概率被选为模型的输出。
而我们常说的调节生成效果的参数,如top_k、top_p,其实就是在这个选择概率的环节上施加约束和控制。
Qwen-7B的参数分析:词表
理论讲完了,咱们看个实例。这是Qwen-7B模型配置文件里关于词表的部分关键参数:
{
"vocab_size": 151646,
"hidden_size": 3584,
...
}
这里有两个关键数字:
vocab_size: 151646:词表大小,约15.2万个token。hidden_size: 3584:隐藏层维度,在这里也即是每个token嵌入向量的维度。
我们来算一笔账:整个词嵌入矩阵的参数总量 = 151646 * 3584 ≈
5.43亿
要知道,Qwen-7B模型总参数才约70亿,光是这个词表就占用了超过5.4亿参数,占比接近8%!如果用FP16精度加载,光这个词嵌入矩阵就要吃掉超过1GB的显存。在大规模分布式训练中,如何高效地管理和优化这部分巨大的参数,本身就是一个非常关键的工程问题。
至此,我们从数字上理解了token是如何被表示的。但这只是万&里长征第一步。接下来,这些稠密的向量将走入大模型的核心——注意力机制(Attention),在那里上演真正精彩的交互与融合。我们将在下一篇文章中,揭开Attention的神秘面纱,看看它到底是什么,又包含了多少参数。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名