1、什么是Token?

8abe32e1-a232-4e56-af59-e6d82df9f11a.png

在生成式人工智能的上下文中,Token(词元)指的是文本处理过程中的最小语义单元,通常是特殊定义下一些字符的集合。这些字符包括字母、数字、标点符号以及特殊字符,如换行符等。Token通常由一个数字来表示,它们是大型语言模型或基础模型消费文本的方式。您向模型提供词语,它会将它们转换为Token。作为一般规则,一个Token通常包含四个英文字符(这大约相当于一个单词的 ¾),或者一个汉字,因此一百个Token大约等于75个英文单词,或者 40~50 个汉字(均包含标点符号)。

例如,一个由英文单词"Hello World!"组成的句子将被分解为三个Token:Hello、World和感叹号,而中文短语"你好,世界!"包含五个Token。

值得注意的是,Token的数量会根据语言和字符的不同而变化,确切的Token计数还因不同模型的标记化过程(第3节)而异。

Token的其他不同含义:

在Web3/Crypto领域,Token具有更广泛的含义,它指的是基于区块链技术发行的数字资产,可以代表实物或虚拟资产,并具有一定的价值。

在密码学领域,Token通常指的是硬件或软件设备,用于生成和存储安全令牌或密码。

2、Token的作用

Token在生成式人工智能中起着重要的作用。它们是模型理解和处理文本的基本单位。通过将文本转换为Token序列,模型可以更好地处理和理解大量的语言数据。Token还可用于限制输入和输出的文本长度,每个模型都有一个预设的Token上限。因此,在构建自己的应用系统时,您需要注意Token的数量限制,以确保输入和输出都在可接受的范围内。同时,Token的数量还会影响模型的性能和效果。不同的模型可能具有不同数量的Token,这将直接影响模型的词汇表和生成结果的丰富程度。较大的词汇表会使模型生成的文本更加丰富多样,但相应地会增加推理请求的价格。因此,在选择使用哪种模型时,需要权衡词汇表大小和价格之间的关系。

3、Tokenization的过程

Tokenization是将文本由字符转换为Token的过程。每个模型都有自己的Tokenization模型,用于完成这个转换过程。例如,GPT(Generative Pre-trained Transformer)模型使用字节对编码(Byte Pair Encoding)来进行Tokenization。这个过程将文本按照一定的规则划分成多个Token,并将它们映射到相应的Token表示。这样一来,模型就可以更好地理解和处理文本。需要注意的是,Tokenization过程是双向的,模型可以将Token序列转换回字符序列,以便生成文本输出。因此,每个模型都有自己独特的Tokenization模型,这会影响模型在不同输入和输出方面的表现。

4、语言模型的Tokenization模型

不同的语言模型有不同的Tokenization模型。对于生成式人工智能模型,Tokenization模型对于模型的结果和性能非常重要。例如,大型的GPT模型通常具有较大的词汇表,其中包含数万个Token。与之相比,较小的模型词汇表则较少,例如只有几千个Token。词汇表的大小直接影响着模型生成结果的丰富程度和多样性。使用较大的词汇表,模型可以生成更加精细和准确的文本,但相应地也会导致推理请求的价格增加。因此,在选择适合自己需求的语言模型时,需要权衡词汇表大小和预算之间的关系。

5、Token数量的限制

生成式人工智能模型对于输入和输出文本的Token数量都有一定的限制。这是为了保证模型的效率和稳定性。例如,GPT模型对于输入和输出Token数量都有一个最大限制,通常为4096个Token。如果超过了这个限制,您需要对输入进行适当的调整,以确保模型的正常运行和输出的合理性。如果您的问题或请求超过了Token数量限制,您可以将其分割成更小的部分进行处理,或者将问题简化为更简洁的形式。需要注意的是,不同的模型具有不同的Token数量限制,因此在构建自己的应用系统时要了解所使用模型的具体限制。

6、不同模型的Token数量差异

不同的生成式人工智能模型对于Token数量有不同的要求和限制。这取决于模型本身的设计和目标应用场景。例如,GPT模型有多个变体,其中包括DaVinci和Ada等。这些变体具有不同数量的词汇表和Token数量。以DaVinci为例,它的词汇表约有6万个Token,而Ada则只有5万个Token。使用较大的词汇表可以使模型生成的文本更加丰富多样,但与此同时,单次推理请求的价格也会相应增加。因此,在选择模型时,需要考虑Token数量的差异以及预算的限制。

7、如何确定文本中的Token数量

OpenAI 提供了一个标记化工具用以了解语言模型如何对一段文本进行标记,以及该段文本中的标记总数。

如果您不确定文本中包含多少个Token,您可以使用VS Code进行计数。比如一个名为"GPT-3 & Codex Tokenizer Counter Statusbar"的插件,它非常简单易用。只需在文本中编写内容,您就可以在右下角的状态栏中看到Token计数。通过实时跟踪Token数量,您可以更好地控制和管理您的输入和输出。这对于确保文本长度在可接受范围内非常有帮助。

8、Token的应用

目前很多大模型无论展示能力,还是收费定价,都是以 Token 为单位,而且是按输入、输出双向计费的。

👍

本文由 cds 整理发布,参考 CC-BY-SA 3.0 协议共享,欢迎转载、引用或改编。
感谢您的支持,以共同推动STEM公益教育!

楼主残忍的关闭了评论