【ChatGPT入门喂饭级系列教程(六)】Token 是什么?
在我们开始探索 ChatGPT 的世界之前,让我们先来了解一下什么是“token”。这个概念对于理解 ChatGPT 至关重要。
二、什么是 Token?想象一下,你正在阅读一本书,但是这本书的每个字都是单独剪切出来的。在 ChatGPT 的世界里,这些单独的字就像是“token”。
简单来说,token 是将文本分割成更小部分的一种方式。这些小部分可以是单个字、词或者短语。就像搭积木一样,ChatGPT 通过这些 tokens 来理解和生成语言。
三、Token 在 ChatGPT 中的作用理解语言:ChatGPT 通过分析这些 tokens,就像孩子学习语言一样,逐渐理解单词的意义和如何将它们组合起来。
生成回复:当你向 ChatGPT 提问时,它会将你的问题分解成 tokens,然后再组合新的 tokens 来构造回答。
提高效率:使用 tokens 可以让 ChatGPT 更快地处理和理解大量的文本,就像通过拼图块快速构建图像一样。
GPT 实际是将我们输入的文字转换成 token,然后通过 GPT 模型预测需要输出的 token,最后再将 token 转换成文字,然后再输出给我们。
也就是说 GPT 只能理解 token,所以 GPT 会转化一下。
四、Token 的类型在 ChatGPT 中使用的 Token 类型与传统 自然语言处理 中的字级 Token 、词级 Token 和子词Token 的概念有所不同(这里感谢小七姐的指正,之前我误以为 ChatGPT 的 Token 是三种)。
ChatGPT 使用基于 BPE 算法 的 Tokenization 方法,实际上较复杂,感兴趣的可以跳转:https://zhuanlan.zhihu.com/p/620426699
因为是入门的科普,这里进行简化理解,可以简单按照 自然语言处理 中的分类来理解(但实际上不是,这里大家一定要注意):
字级 Token:最小单位,例如中文中的每一个字。
可以看到上面每一个汉字都是一个 Token。
词级 Token:一些语言(如英语)中的单词。
中国虽然是两个汉字,但是是一个 Token。
上面( red)空格+red 四个字符算作一个 token
子词 Token:把复杂的词分解成更简单的部分,这在处理不常见的词时特别有用。
上面虽然是两个汉字,但是拆解下来是 3 个 token,因为 “师” 被算为两个 token 的组合。
那么 token 到底有什么用呢?我们为什么需要知道这些?
首先这里给大家一个 token 简单转化关系为:100 tokens ~= 75 单词 或者 ~= 100 个汉字。
一)GPT tokens 是如何计算的?首先 OpenAI token 的计算包含两部分。用户输入给 GPT 模型的 token 数和 GPT 模型生成返回文本的 token 数。
例如,你提问耗费了 100 token(约 100 个汉字),GPT 根据你的输入,生成文本(也就是回答)了 200 token(约 200 个汉字),那么一共消费的 token 数就是 300 。
二)GPT tokens 限制最大多少?首先看下 GPT-3.5 和 GPT-4.0 两个模型对应的支持最大的 tokens 数据:
官网地址:https://platform.openai.com/docs/models/gpt-4-and-gpt-4-turbo
GPT-3.5 的 token 的限制大约在 4096 左右,大约相当于 3072 个英文单词,或者 4096 左右个汉字 。
GPT-4 的 token 的限制大约在 8192 左右,大约相当于 6144 个英文单词,或者 8192 左右个汉字 。
三)当超过最大 tokens 会怎么样?当对话的长度超过模型的最大 token 限制时,模型会开始"忘记"之前的对话内容。这是因为模型无法同时保留超过其最大 token 数量的信息。
在实践中,这意味着模型会丢弃较早的部分对话内容,以便为新的输入腾出空间。
例如,想象一个小孩子在听一个很长的故事。如果故事非常长,孩子可能会忘记故事开始时的内容。同样,当对话长度超过了模型的处理能力时,模型就会像孩子一样忘记对话的早期部分。
这种现象在长对话或复杂交互中尤其明显。因此,对话的管理和结构对于保持连贯性和相关性非常重要。
四)如何查看我们使用了多少 token 呢?官网地址:https://platform.openai.com/tokenizer
上图文字我专门去除了英文,可以看出来,基本上是 1 比 1,我输入的有 331 个汉字,转换消耗 tokens 为 337 个 token。
再看下英文的情况:
上图我大概输入了 700 个字母,算出来有 149 个 token,大约就是 4 个字母 ~= 一个 token。
六、结论Token 限制对提示词编写有显著影响,特别是在长对话或连续多轮对话中。理解并考虑到 token 限制可以帮助有效地管理和构建对话,以下是一些具体的影响:
1. 有效记忆长度的把握:了解模型的 token 限制有助于预测和控制对话的有效记忆长度。这意味着在长对话中,你会意识到模型可能会忘记早期的交流内容。因此,避免在超过 token 限制时继续提问与最初的问题相关的内容,因为模型可能已经"忘记"了这些信息。
2. 简洁明了的表达:基于奥卡姆剃刀原理(即在解释事物时不应不必要地增加更多假设),建议在对话中使用简洁、直接的表达方式。这意味着避免冗长或不必要的话语,以减少 token 的消耗,并保持对话的清晰和焦点。
3. 重要信息的重复:在连续多轮对话中,如果某些信息非常重要,可以在不同时间点简要重复这些信息,以帮助模型保持对重要细节的记忆,特别是在长对话中。
4. 合理分段:在长文本或复杂问题的情况下,合理分段信息可以帮助模型更有效地处理和回应。这可以通过分解长问题或在长对话中定期总结已讨论的要点来实现。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。