【ChatGPT入门喂饭级系列教程(六)】Token 是什么?

扁担AI自媒体 6个月前 (09-09) 阅读数 10 #推荐
一、引言

在我们开始探索 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. 合理分段:在长文本或复杂问题的情况下,合理分段信息可以帮助模型更有效地处理和回应。这可以通过分解长问题或在长对话中定期总结已讨论的要点来实现。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

扁担AI自媒体

扁担AI自媒体

专注职场智慧与书籍精华,分享实用攻略与好书。