当你在使用ChatGPT写长文章,比如写一篇10万字的连载小时,这时候你会发现在同一个对话内,ChatGPT会失忆,会忘记之上相关的内容。哪导致这个失忆的原因是什么呢?
上下文长度限制!
上下文长度是指LLM在处理一个任务时,能够接收或考虑的输入文本的最大长度。通常用token(词元)来衡量,一个token大致相当于一个英文单词、一个汉字或一个标点符号。不同的LLM可能有不同的上下文长度限制,这取决于它们的模型结构、训练数据和优化方法。
上下文长度限制是一个固定的参数,这意味着在一个给定的对话中,它只能记住或参考一定数量的前面的输入和输出。ChatGPT的上下文最大长度是4096个token,而GPT-4的上下文最大长度分别是8192个token和32768个token,取决于使用的模型版本。Claude则宣布支持了100k个token的上下文最大长度,是目前最大的主流LLM。
在使用ChatGPT撰写长篇连载文章的时候,有一些策略可以帮助你在这个限制内最大化你的输出:
精简输入:尽量减少不必要的输入,以节省上下文空间。例如,如果你正在写一篇文章,尽量避免过多的闲聊或无关的问题。
示例:假设你正在写一篇关于全球变暖的文章。你可以直接输入:“请写一篇关于全球变暖的文章,包括其定义、原因、影响和解决方案。”而不是输入一系列不相关的问题或指令,如:“你知道全球变暖吗?我想知道全球变暖的定义。你能告诉我全球变暖的原因吗?等等。”
分段写作:如果你的文章超过了上下文长度限制,你可以尝试将其分成几个部分。每次只输入一部分,然后将GPT-4的输出保存下来,然后再输入下一部分。
使用摘要:如果你正在处理一个长对话或故事,你可以创建一个摘要或概述,包含所有重要的细节和情节点,然后在每次输入时使用这个摘要。这样,即使某些信息超出了上下文窗口,模型也能通过摘要获取关键信息。
示例:假设你正在写一篇关于历史事件的长篇文章。你可以创建一个摘要,如:“这是一篇关于二战的文章,主要讨论了珍珠港事件、诺曼底登陆和广岛和长崎的原子弹爆炸。”然后,在每次输入时,你可以引用这个摘要,以确保模型记住你正在写的文章的主题和主要事件。
总分法(列提纲分章节写):在开始写作之前,先制定一个详细的提纲,将文章分为几个部分或章节。然后,每次只让模型写一部分,这样可以确保模型在写每一部分时都能保持在上下文长度限制内。
示例:假设你正在写一篇关于气候变化的文章。你可以创建一个提纲,如:“1. 引言;2. 气候变化的证据;3. 气候变化的影响;4. 应对气候变化的策略;5. 结论。”然后,你可以先让模型写“引言”,保存输出,然后再让模型写“气候变化的证据”,以此类推。
拆除不同的conversation:如果你的文章包含多个部分或主题,你可以尝试将它们分解成不同的对话。每个对话都专注于一个特定的主题或部分,这样可以确保模型在处理每个主题或部分时都能保持在上下文长度限制内。
示例:假设你正在写一篇关于健康饮食的文章,包含营养素、食物选择和饮食计划三个部分。你可以先创建一个对话专门讨论营养素,然后创建另一个对话讨论食物选择,最后创建一个对话讨论饮食计划。
重复关键信息:如果你的对话超过了上下文长度限制,GPT-4可能会忘记一些早期的信息。在这种情况下,你可以在每次输入时重复一些关键信息,以确保GPT-4记住它。
示例:假设你正在写一篇关于太阳系的文章,你已经讨论了水星、金星和地球,现在你要讨论火星。你可以在输入时重复一些关键信息,如:“我们已经讨论了太阳系的前三颗行星:水星、金星和地球。现在,让我们讨论第四颗行星——火星。”这样,即使前面的信息超出了上下文窗口,模型也能记住你正在讨论的主题。
直接指导:你可以直接告诉GPT-4你想要的输出的类型和格式。例如,如果你想要一个详细的文章,你可以指定:“请写一篇详细的文章关于...”。
示例:假设你正在写一篇关于太阳能的文章。你可以直接输入:“请写一篇详细的文章关于太阳能的工作原理、优点和缺点,以及其在未来能源解决方案中的角色。”这样,模型就会知道你想要的输出的类型和格式,从而能够生成你需要的内容。
请注意,这些策略可能需要一些实验和练习才能得到最佳效果
欢迎关注“AI演进”并加入AI演进社群