你是否曾在使用 AI 辅助写作时,沉浸于创作中不自觉地敲下长篇大论,期待它能无缝接上你的思路,却发现结果出乎意料?
或者,在向 AI 寻求健康咨询,详细叙述了你的病症和生活习惯,期望得到详尽的指导,结果却是一个方向偏离的回答?
如果这些场景听起来似曾相识,那么可能因为你不了解大模型上下文原理。
关于 Token 的原理,在 02 基础概念 - 什么是 Token? 中我已经详细说明了。
过去有很多小伙伴问到:到底怎么验证大模型的上下文长度呢?尤其是大模型更新时。
又有小伙伴会问:即使超过上下文限制,我还是希望大模型记住某些关键信息,该怎么办呢?
这篇文章,主要是提供给大家验证大模型上下文长度的方法、以及解决方案。
这边以 GPT3.5 为例,我们来验证下目前网页端的上下文长度是多大。
需要注意的是,网页端的上下文长度和 API 的长度有所区别。
验证大模型 Token 上限的步骤
1、首先准备大量文本内容。
文字内容不限。目前官方 GPT3.5 的 API 最大长度为 16385 tokens,所以准备接近对应数量的文本即可。
如何检测 token 数量呢,之前再 02 基础概念 - 什么是 Token? 也提到过,可以使用网址:https://platform.openai.com/tokenizer 进行验证 token 长度。
2、在文本的最开端标记关键词,用于验证大模型是否出现遗忘。
3、由于大模型每次输入的长度限制,需要分段将文本输入给大模型。(需要注意的是:上下文长度计算时,不仅仅将用户提供的文本纳入计算范围,大模型回答的结果也会自动累计)
4、测试关键词的回答是否正确。当回答的结果符合预期,则代表当前对话的文本数量在上下文长度的范围内。
5、当回答正确后,需要点击 Edit Message 进行编辑并提供文本,用于覆盖关于关键词的提问,再点击 Send。
目的是为了继续验证上下文的长度。
6、再继续测试,如果发现可以得到预期的答案,则继续回到第 5 步。直到大模型出现以下的遗忘信号为止。
7、这时候再修改上一步发送给大模型的文本长度,多次测试,找到接近遗忘的临界点。再将关键词以及当前窗口的所有文本放入网站:https://platform.openai.com/tokenizer,检测 Token 数量。
测试发现,目前网页端的 GPT3.5 的 Token 上下文长度为 8190 左右。
怎么解决呢?
目前 ChatGPT 提供了两种方式,可以帮助我们解决关键信息持久存储的问题:
5、自定义指令 和 记忆功能 的效果稍微有些区别,设定自定义指令的信息后,仅仅针对新窗口才能生效。
总结
本次演示了 GPT3.5 网页端的上下文测试方法,关于其他大模型测试的方法雷同,如果某些大模型网站修改不了已经发送的文本,那么需要多开窗口,进行反复验证。
之后,我们通过 ChatGPT 记忆功能、自定义指令功能 展示了如何让大模型记住关键信息的方案。
大家可以用起来~