Token 是怎么来的?
很多人第一次看到 Token会认为是不是程序员提前规定好的例如:你好. 编号是:1234其实不然。现代大语言模型中的 Token大多数都是通过算法自动学习出来的。训练模型之前工程师会先收集互联网上的海量文本。例如小说新闻论文GitHubStack Overflow技术文档然后统计,哪些字符经常一起出现,举个例子:中华人民共和国每天都会出现几十万次。那么算法就会认为中华人民共和国应该作为,一个整体。而不是七个汉字。同样,程序代码里面public static void经常一起出现。模型也可能把其中一部分组合成更大的 Token。这种自动合并过程就是现代 Tokenizer 的核心思想之一。它并不是理解了语言。而是根据统计规律把经常一起出现的字符组合成一个 Token。2.5 为什么不同模型 Token 数量不同很多人第一次使用 API 时会发现,同一段文字,每个模型消耗的token可能不太一样.GPT120 Token。Claude110 Token。Qwen95 Token。为什么答案很简单,因为它们使用的是不同的 Tokenizer,也就是说,大家使用的是不同的一套积木。有的人喜欢大积木,有的人喜欢小积木。举个例子。一句人工智能正在改变世界模型 A可能拆成人工智能 正在 改变 世界四个 Token。模型 B可能拆成人工 智能 正在 改变 世界五个 Token。模型 C甚至可能人 工 智 能 ……更多 Token。因此Token 数量不能直接比较模型性能。它只是Tokenizer 的设计不同,当然Tokenizer 设计的好,对模型的准确性还是帮助很大的。2.6 Token 和 Token ID到了这里,模型已经有了一堆 Token。例如你好 世界 苹果 今天 ....但是,模型仍然不能直接处理这些 Token。因为Token 本质还是字符串。计算机真正喜欢的是整数。于是每一个 Token,都会获得一个唯一编号。例如TokenToken ID你好1542世界825苹果21698今天471于是你好 世界在真正送进模型之前,已经变成1542 825注意,这里的编号没有任何数学意义。1542 不比 825 更高级。它只是字典里的编号。很像我们常见的新华字典苹果 在第100页并不代表苹果这个词比香蕉更重要。2.7 本章总结这一章我们回答了一个看似简单却非常重要的问题为什么大语言模型眼里没有字、没有单词只有 Token现在我们应该建立起下面这张知识地图用户输入文本 │ ▼ Tokenizer切分 │ ▼ Token │ ▼ Token ID │ ▼ 下一章 大模型绕不开的核心--Transformer这一章我们需要记住三个关键内容Token 不是字也不是单词而是模型为了高效表示语言而构建的基本处理单元。不同模型拥有不同的 Tokenizer因此同一段文本在不同模型中的 Token 数量可能完全不同这也是不同 API Token 计费存在差异的重要原因。Token ID 只是 Token 在词表中的编号本身不携带语义信息。真正让模型理解苹果北京程序员这些概念的并不是编号而是下一章将讲到的内容——Embedding词向量。