以下是关于上下文窗口和 tokens 限制的详细解释:
Token 方面:
上下文方面:
目前常见模型的 token 限制:
Token 限制的影响:
查看 token 使用量:
Token 限制对 Prompt 编写的影响:理解前面的内容后,答案应在您的脑海中有雏形。
首先我们给出一些常见缩写和专业词汇的“人话”解释,它们十分基础,但理解他们至关重要。为了讨论更加聚焦,接下来的内容将主要围绕大语言模型为主进行展开(对于其他模态的大模型,我们暂且放放):LLM:Large language model的缩写,即大语言模型,前面百团大战中的各类大模型,说的都是大语言模型(极其应用)Prompt:中文译作提示词,就是我们输入给大模型的文本内容,可以理解为你和大模型说的话,下达的指令。提示词的质量好坏,会显著影响大模型回答的质量,很多时候如果你觉得大模型回答的太差了,AI味儿太浓了,很可能是你的提示词写的不够好,换言之,不是AI不行,而是你不行😌Token:就像人类有着不同的语言,大模型也有着自己的语言体系,如图9,我们发送文本给大模型时,大模型会先把文本转换为他自己的语言,并推理生成答案,而后再翻译成我们看得懂的语言输出给我们。正如人类不同语言都有最小的字词单元(汉语的字/词,英语的字母/单词),大模型语言体系中的最小单元就称为Token。这种人类语言到大模型语言的翻译规则,也是人类定义的,以中文为例,由于不同厂商的大模型采用了不同的文本切分方法,因此一个Token对应的汉字数量也会有所不同,但在通常情况下,1Token≈1-2个汉字。请注意,大模型的收费计算方法,以及对输入输出长度的限制,都是以token为单位计量的。上下文:英文通常翻译为context,指对话聊天内容前、后的内容信息。使用时,上下文长度和上下文窗口都会影响AI大模型回答的质量。上下文长度限制了模型一次交互中能够处理的最大token数量,而上下文窗口限制了模型在生成每个新token时实际参考的前面内容的范围(关于这一点,你需要看完3.2中关于GPT的讨论,方能更好理解)
从官方文档可以看到我们目前使用的模型有哪些,以及每个模型的token限制。除此之外,最直观能感受到各类模型token限制的其实是poe:在这里我们看到的16K、32K、100K就是指token上限。Claude-2-100 k模型的上下文上限是100k Tokens,也就是100000个tokenChatGPT-16 k模型的上下文上限是16k Tokens,也就是16000个tokenChatGPT-4-32 k模型的上下文上限是32k Tokens,也就是32000个token但似乎很多小伙伴不理解这个限制具体影响在哪些方面。所以我替你们问了一下GPT(真不懂你们为什么不自己问/手动狗头)从回答可以看出,这个token限制是同时对下述两者生效的:1、一次性输入2、一次对话的总体上下文长度,值得注意的是这个长度不是达到上限就停止对话,而是遗忘最前面的对话,你可以理解为鱼的记忆只有7秒,第8秒的时候他会忘记第1秒的事,第9秒的时候……(某些同学是不是恍然大悟了)
Claude-2-100 k模型的上下文上限是100k Token s,也就是100000个TokenChatGPT-16 k模型的上下文上限是16k Token s,也就是16000个TokenChatGPT-4-32 k模型的上下文上限是32k Token s,也就是32000个Token但似乎很多小伙伴不理解这个限制具体影响在哪些方面。所以我替你们问了一下GPT从回答可以看出,这个Token限制是同时对下述两者生效的:一次性输入一次对话的总体上下文长度,值得注意的是这个长度不是达到上限就停止对话,而是遗忘最前面的对话,你可以理解为鱼的记忆只有7秒,第8秒的时候他会忘记第1秒的事,第9秒的时候……(某些同学是不是恍然大悟了)三、怎么看我使用了多少Token如果我们想要直观的查看GPT是如何切分token的话,我们可以打开:[https://platform.openai.com/tokenizer](https://platform.openai.com/tokenizer)在下图可以看到实时生成的tokens消耗和对应字符数量请注意,GPT3和GPT3.5/4的token计算方式是不一样的。(GPT3用的编码是p50k/r50k,GPT3.5是cl100K_base)在这里值得注意的是,英文的Token占用相对于中文是少很多的,这也是为什么很多中文长Prompt会被建议翻译成英文设定,然后要求中文输出的原因。四、Token限制对Prompt编写有什么影响当你理解了前面的一、二、三之后,这个问题的答案应该已经在你脑子里有雏形了: