一文读懂大模型如何理解你的语言:Token与Embedding,建议收藏学习

发布时间:2025-12-12 10:14:41 作者:cxyx 来源:本站 浏览量(1) 点赞(0)
摘要:你有没有想过:当你在大模型对话框里敲下一句:「帮我写一份年终总结」,在大模型眼里到底出现了什么呢?对大模型来说,它不是在看「中文句子」,而是在看一串又一串数字。这一篇,我们就用尽量不烧脑的方式,讲清楚两个核心概念:✅ Token:AI 看世界的「字」✅ Embedding:把语言变成坐标的「翻译

你有没有想过:

 

当你在大模型对话框里敲下一句:「帮我写一份年终总结」,

在大模型眼里到底出现了什么呢?

 

对大模型来说,它不是在看「中文句子」,而是在看一串又一串数字。

 

这一篇,我们就用尽量不烧脑的方式,讲清楚两个核心概念:

 

✅ TokenAI 看世界的「字」

✅ Embedding:把语言变成坐标的「翻译器」

 

理解了这两个东西,你基本就搞懂了:

AI 到底是怎么听懂你说的话的?」

 

一、AI 其实看不到「字」,只能看到数字

先说结论:

 

大模型看到的,从来不是「文字」,而是一串被编码过的数字。

 

从人类视角看,我们输入的是:

 

「帮我写一份年终总结,突出项目成果和个人成长。」

 

从模型视角看,这句话会经历大致这么几个阶段:

 

1. 字符级别

 

:帮 / / / / / …

 

2. 切成 Token

 

:「帮我」/「写」/「一份」/「年终」/「总结」/ …

 

3. 映射成编号

 

[18293, 5021, 9304, 7216, 183, …](举例)

 

4. 转换成向量(Embedding

 

:每个编号 一个高维向量

 

5. 送进大模型

 

:后面才是注意力、推理、生成等过程

 

这一篇文章就专门聚焦在第 2 步和第 4 步:

 

文本是怎么被切成 Token 的?

这些 Token 又是怎么变成 Embedding 向量的?

 

小结:

人看的是「字和句子」,模型看到的是一串编号和一堆向量。 Token Embedding,就是把语言一步步变成这些数字的关键桥梁。

image.png


二、什么是 Token——AI 世界里的「字」

1. Token 不是字,也不是词,是「介于两者之间的单位」

在人类世界里,我们习惯这样看语言:

 

英文

 

:字母 单词 句子

 

中文

 

:汉字 词语 句子

 

在大模型的世界里,多了一个非常关键的中间层:Token

 

你可以暂时把它理解为:

 

为了让电脑「既不太细、也不太粗」地切分语言,

专门设计出来的一种**「最合适的单位」**

 

一个 Token 可能是:

 

一个完整的英文单词:hello

一个汉字:帮

半个单词:interesting

一个标点:,、。、?

甚至是一个空格:" "(空格本身在英文里也是 Token

 

严格一点说:

 

不同模型的 Token 规则不一样,

有的中文模型以「字」为主,有的会把高频词(比如「人工智能」「机器学习」)收成一个 Token

但不会像语文课那样,一个个手工标注「词语」。

 

Token 不是自然语言里的「字」或「词」,

而是大模型自己定义的「看的单位」。

 

2. 为什么需要 Token 这种「怪异的单位」?

如果我们直接用「字」或「词」,会有很多问题:

 

只用「字」:

 

英文会被切得太碎:interesting → i / n / t / e / r / e / s / t / i / n / g

模型很难学到「单词级」的规律

 

只用「词」:

 

生僻词、专有名词太多:ChatGPTDeepSeekQwen3…

词表可能大到存不下、算不动

Token 的目标,就是在这两者之间找一个平衡点:

 

高频、常见、很完整的词 尽量作为一个 Token

少见词、生造词 拆成若干 Token 来组合表示

中文则往往以「字」为基础,再把高频词组并在一起

 

三、Token 是怎么切出来的?——直白理解 BPE 思路

不同模型用的具体算法不完全一样,但都比较接近。

 

以常见的 **BPEByte Pair Encoding**思路为例,可以这样理解:

 

BPE 做的事情,其实就是:

在海量文本里统计「谁总是挨着谁」,

然后把这些高频组合打包成新的单位。


1. 第一步:先从「最细」的单位开始

以英文为例,一开始我们只认识:

 

字母:a–z

标点:, . ? !

空格、数字等

所有文本先被拆成这些最小单位,比如:

image.png

2. 第二步:合并那些「经常腻在一起」的组合

算法会在大量语料里统计:

 

哪两个字符 / Token 总是频繁一起出现?

 

比如发现:

 

i

 

n 很经常挨在一起 合并为 in

 

in

 

g 也很常见 合并为 ing

 

interest

 

整体也足够常见 可能进一步被合成为一个 Token

 

这就是 BPE 的核心:

 

不断把「最常一起出现的一对」合并成新的 Token

有点像在语料库里办「团建相亲会」:

 

总在一起手牵手出现的,就发一张「合影」当作新 Token

 

一直合到:词表大小达到预设上限,或者再合并收益不大为止。

 

补充说明:

 

现实里还有 WordPieceSentencePieceUnigram 等变体,

但核心思想都类似:

 

从小单位出发,根据统计规律,自动长出一套「刚刚好的」语言切分方式。

 

3. 对中文,大致会是这样:

中文没有天然空格,常见做法有两类(实际实现会更复杂,这里简化):

 

方法 1:按字切分 + 合并高频词组

 

初始单位:单个汉字

通过统计合并出:「年终」、「总结」、「人工智能」这类组合

 

方法 2:先做一次中文分词,再做 BPE 优化

 

用中文分词工具切出词语

再通过统计合并/拆分,适配不同场景

 

所以,一句**「帮我写一份年终总结」**可能会最终被切成:

image.png

有的是字,有的是词,全看当初训练 Token 词表的时候是怎么统计的。

 

四、从 Token 到编号:词表(Vocabulary

模型不会直接存 "帮我""年终" 这样的字符串,而是维护一张巨大的词表(Vocabulary):

 

键(key

 

Token 字面形式,比如 "帮我""年终""AI"

 

值(value

 

:一个整数编号,比如:182937216305(示意)

 

当你输入一句话时,模型会做一件看上去很「机械」的事:

 

把所有 Token 替换成它们的编号 得到一长串整数。

 

例如:

image.png

到这一步为止,模型看到的是纯数字序列。

 

但问题来了:

 

数字之间没有天然的「近义」关系:

 

18293 并不「比」18294 更接近「总结」

纯编号无法表达「语义相似度」

我们需要再走一步,把这些编号变成可以比较远近的东西。

 

这一步,就是 Embedding 要完成的任务。

 

五、什么是 Embedding——把词丢进「语义坐标系」

1. 想象一个超高维的「语义空间」

想象你有一个很大的空间(实际上维度通常是 51276810241536…):

 

某个方向表示「积极 vs 消极」

某个方向表示「时间相关 vs 空间相关」

某个方向表示「工作/学习 vs 娱乐」

……还有成百上千种抽象维度

 

每一个 Token,都会被映射到这个空间中的一个点。

 

这个点的位置,用一个向量来表示,也就是我们常说的:

 

Embedding 向量 / 语义向量

 

比如(示意):

image.png

于是:

 

「总结」会离「复盘」「报告」「汇总」比较近

「猫」会离「狗」「宠物」「猫咪」比较近

「申请加班」会离「项目」「deadline」「工作」比较近

 

注意:

 

这里的「积极/消极」「工作/娱乐」,只是为了方便理解的想象维度。

 

真正的维度是模型在训练中自己学出来的,

我们通常只能通过实验去猜某个方向大概对应什么含义。

 

核心规律:

 

距离近

 

语义相似

 

方向相似

 

语义相关

 

二维码

扫一扫,关注我们

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,版权登记,商标注册等

立即咨询 400-8050832