游乐游手机版
首页/AI热点日报/热点详情

大模型为何使用Token而非UTF8编码的深层解析

类型:热点整理2026-07-04
先从一个基础问题说起:大模型处理文本,底层的语言单位到底是什么?答案是Token,而不是我们熟悉的UTF8字符。很多人会疑惑:UTF8已经统治了文本编码界这么多年,为什么大模型非要搞一套自己的编码方式?这篇文章就来聊聊Token到底是个什么东西,它凭什么能取代UTF8,以及它背后又有哪些不得不正视的

先从一个基础问题说起:大模型处理文本,底层的语言单位到底是什么?答案是Token,而不是我们熟悉的UTF8字符。很多人会疑惑:UTF8已经统治了文本编码界这么多年,为什么大模型非要搞一套自己的编码方式?这篇文章就来聊聊Token到底是个什么东西,它凭什么能取代UTF8,以及它背后又有哪些不得不正视的短板。

为什么大模型要使用Token?为什么不使用UTF8?

Token,也常被称作词元,是大语言模型理解和生成语言的最小单位。当你向一个大模型提问时,系统会先把你的文字切分成一串Token,喂给模型,模型再预测下一个Token是啥,最后把这些Token重新拼成可读的文本输出给用户。这个过程听起来简单,但背后涉及一个核心问题:为什么大模型不直接拿现成的UTF8来用,非得另起炉灶,重新发明一套Token机制?

token的本质

Token本质上是词的整数表示。如果把自然语言处理看作翻译系统,Token就是连接人类语言和机器数字世界的那座桥。比如“我”对应数字1,“大模型”对应3,“技术”对应4。你输入“我爱技术”,模型看到的就是[1, 2, 4];反过来,模型输出[1, 2, 3],翻译乘人话就是“我爱大模型”。整个过程,本质上是在做一种编码—解码的映射。

那么,既然有UTF8这种成熟的文本编码标准,为什么大模型还要费劲地去搞Token?答案很简单:因为大模型的任务不一样。字符编码(比如UTF8)的目的是存储和传输符号,它只管把每个字符编成二进制,不关心字符的语义。而大模型的目标是理解自然语言背后的含义和关系。单独的字符,比如“苹”和“果”,拆开来看毫无意义;只有组合在一起形成“苹果”,才可能指代水果或者科技公司。大模型如果直接从字符学起,等于要从零摸索字符到语义的映射,效率极低,而且很难理解词语之间的关联和上下文依赖。

1. 大模型关注语义而不是字符的组成

这一点直接决定了Token存在的必要性。字符编码对所有文字一视同仁,但大模型需要区分“苹果”在不同上下文里的含义,需要知道“跑”和“跑步”之间的关系,需要理解“人工智能”是一个完整概念而不是两个字词的简单拼接。这些任务从根本上要求模型以语义单元为基本单位来操作,而不是以字符为单位。

2. token的编码效率更高

Token将一个词(甚至一个短语)作为基本单元进行编码,能大幅降低序列长度。拿“词元是人工智能领域的自然语言中的一个概念”这句话来说,中文一共20个字,但用Qwen2.5的编码器切分后,Token数量只有10个。按一个Token占用3字节计算,只需要30字节;如果用UTF8编码,一个汉字占3字节,20个字就是60字节。序列长度直接降低了一半,这对模型的影响可不是一星半点。

3. token能提高计算的效率

序列长度降下来,直接影响自注意力机制的计算量。注意力矩阵的大小和序列长度的平方成正比,序列越短,模型的计算复杂度越低,训练和推理速度越快。Token编码带来的这种效率提升,是大模型能大规模落地的重要推手之一。

token的缺点

Token有没有短板?当然有,而且还不止一个。

1. 没有统一标准

不同模型使用不同的Tokenizer(分词器),导致同样的输入文本会被编码成截然不同的数字序列。下表展示了“词元是人工智能领域的自然语言中的一个概念”这句话在GPT-4o、GPT-3.5、Qwen2.5和DeepSeek-R1四种模型下的Token编码结果:

模型名称token数

tokens

gpt-4o

13

31892, 6753, 3221, 47243, 60319, 89497, 1616, 116258, 108329, 58159, 22912, 49062, 41276

gpt-3.5

25

6744, 235, 24186, 21043, 17792, 49792, 45114, 118, 27327, 19817, 228, 35722, 253, 9554, 37026, 61994, 73981, 78244, 16325, 9554, 48044, 162, 25451, 26203, 113

Qwen2.5

10

99689, 23305, 20412, 104455, 104799, 99795, 102064, 101047, 46944, 101290

DeepSeek-R1

9

4055, 1673, 389, 33574, 29919, 4377, 7831, 60754, 9574

表2 不同模型对“词元是人工智能领域的自然语言中的一个概念”的编码结果

这种不兼容直接限制了模型的通用性和可移植性。你没法把一个模型训练好的Token序列直接拿到另一个模型上用。而对于多语言模型,设计一个能优雅兼容中、英、日、法等不同语言字符集、词汇结构及语法规则的Tokenizer,更是复杂得多。

2. tokenizer的粒度会影响模型的性能

粒度决定了Tokenizer把一个词切得多细。比如“人工智能”这个词,可以保留成一个整体Token,也可以切成“人工”和“智能”两个Token。粒度小,对拼写错误、形近字和词形变化(比如词根和词缀)处理更好,但序列长度会变长,计算成本上升。粒度大,序列短,计算效率高,模型也更容易学到词语级别的大语义关系,但对“run”“running”“ran”这样的词形变化处理不灵,低频词和罕见词的效果也会打折扣。

3. 词表大小会影响模型性能

词表小,模型参数量低,存储和计算开销小,训练和推理都快,部署起来也方便。但代价是很多词汇会变成未登录词(OOV),直接导致模型信息缺失,语义理解能力受限,连近义词、专业术语可能都分不清。词表大,能覆盖更多词汇,理论上有助于理解复杂语义,但同时参数量激增,模型体积变大,训练和推理变慢,对计算资源的要求更高。更麻烦的是,过大的词表容易让模型从训练数据中过拟合,泛化能力反而下降。尤其是那些低频词,训练数据中间出现的次数太少,模型根本学不扎实。

总结

Token的出现不是偶然,它解决了大模型关注语义单元、提升编码效率和计算效率的核心需求。但Token也不是没有代价的:缺乏统一标准、粒度需要取舍、词表大小要平衡,这些因素都直接影响模型的性能和可用性。说到底,Token是一把双刃剑,用得好能让模型事半功倍,但想用好它,实际场景中得反复打磨和权衡。

来源:https://www.53ai.com/news/LargeLanguageModel/2025032645601.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。