干货:如何让GPT写长文?(突破上下文长度最大限制)

2024-01-21 13:28

本文主要是介绍干货:如何让GPT写长文?(突破上下文长度最大限制),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当你在使用ChatGPT写长文章,比如写一篇10万字的连载小时,这时候你会发现在同一个对话内,ChatGPT会失忆,会忘记之上相关的内容。哪导致这个失忆的原因是什么呢?

上下文长度限制!

上下文长度是指LLM在处理一个任务时,能够接收或考虑的输入文本的最大长度。通常用token(词元)来衡量,一个token大致相当于一个英文单词、一个汉字或一个标点符号。不同的LLM可能有不同的上下文长度限制,这取决于它们的模型结构、训练数据和优化方法。

上下文长度限制是一个固定的参数,这意味着在一个给定的对话中,它只能记住或参考一定数量的前面的输入和输出。ChatGPT的上下文最大长度是4096个token,而GPT-4的上下文最大长度分别是8192个token和32768个token,取决于使用的模型版本。Claude则宣布支持了100k个token的上下文最大长度,是目前最大的主流LLM。

在使用ChatGPT撰写长篇连载文章的时候,有一些策略可以帮助你在这个限制内最大化你的输出:

  1. 精简输入:尽量减少不必要的输入,以节省上下文空间。例如,如果你正在写一篇文章,尽量避免过多的闲聊或无关的问题。

    示例:假设你正在写一篇关于全球变暖的文章。你可以直接输入:“请写一篇关于全球变暖的文章,包括其定义、原因、影响和解决方案。”而不是输入一系列不相关的问题或指令,如:“你知道全球变暖吗?我想知道全球变暖的定义。你能告诉我全球变暖的原因吗?等等。”

  2. 分段写作:如果你的文章超过了上下文长度限制,你可以尝试将其分成几个部分。每次只输入一部分,然后将GPT-4的输出保存下来,然后再输入下一部分。

  3. 使用摘要:如果你正在处理一个长对话或故事,你可以创建一个摘要或概述,包含所有重要的细节和情节点,然后在每次输入时使用这个摘要。这样,即使某些信息超出了上下文窗口,模型也能通过摘要获取关键信息。

    示例:假设你正在写一篇关于历史事件的长篇文章。你可以创建一个摘要,如:“这是一篇关于二战的文章,主要讨论了珍珠港事件、诺曼底登陆和广岛和长崎的原子弹爆炸。”然后,在每次输入时,你可以引用这个摘要,以确保模型记住你正在写的文章的主题和主要事件。

  4. 总分法(列提纲分章节写):在开始写作之前,先制定一个详细的提纲,将文章分为几个部分或章节。然后,每次只让模型写一部分,这样可以确保模型在写每一部分时都能保持在上下文长度限制内。

    示例:假设你正在写一篇关于气候变化的文章。你可以创建一个提纲,如:“1. 引言;2. 气候变化的证据;3. 气候变化的影响;4. 应对气候变化的策略;5. 结论。”然后,你可以先让模型写“引言”,保存输出,然后再让模型写“气候变化的证据”,以此类推。

  5. 拆除不同的conversation:如果你的文章包含多个部分或主题,你可以尝试将它们分解成不同的对话。每个对话都专注于一个特定的主题或部分,这样可以确保模型在处理每个主题或部分时都能保持在上下文长度限制内。

    示例:假设你正在写一篇关于健康饮食的文章,包含营养素、食物选择和饮食计划三个部分。你可以先创建一个对话专门讨论营养素,然后创建另一个对话讨论食物选择,最后创建一个对话讨论饮食计划。

  6. 重复关键信息:如果你的对话超过了上下文长度限制,GPT-4可能会忘记一些早期的信息。在这种情况下,你可以在每次输入时重复一些关键信息,以确保GPT-4记住它。

    示例:假设你正在写一篇关于太阳系的文章,你已经讨论了水星、金星和地球,现在你要讨论火星。你可以在输入时重复一些关键信息,如:“我们已经讨论了太阳系的前三颗行星:水星、金星和地球。现在,让我们讨论第四颗行星——火星。”这样,即使前面的信息超出了上下文窗口,模型也能记住你正在讨论的主题。

  7. 直接指导:你可以直接告诉GPT-4你想要的输出的类型和格式。例如,如果你想要一个详细的文章,你可以指定:“请写一篇详细的文章关于...”。

    示例:假设你正在写一篇关于太阳能的文章。你可以直接输入:“请写一篇详细的文章关于太阳能的工作原理、优点和缺点,以及其在未来能源解决方案中的角色。”这样,模型就会知道你想要的输出的类型和格式,从而能够生成你需要的内容。

请注意,这些策略可能需要一些实验和练习才能得到最佳效果

欢迎关注“AI演进”并加入AI演进社群

这篇关于干货:如何让GPT写长文?(突破上下文长度最大限制)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629696

相关文章

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

poj 3723 kruscal,反边取最大生成树。

题意: 需要征募女兵N人,男兵M人。 每征募一个人需要花费10000美元,但是如果已经招募的人中有一些关系亲密的人,那么可以少花一些钱。 给出若干的男女之间的1~9999之间的亲密关系度,征募某个人的费用是10000 - (已经征募的人中和自己的亲密度的最大值)。 要求通过适当的招募顺序使得征募所有人的费用最小。 解析: 先设想无向图,在征募某个人a时,如果使用了a和b之间的关系

poj 3258 二分最小值最大

题意: 有一些石头排成一条线,第一个和最后一个不能去掉。 其余的共可以去掉m块,要使去掉后石头间距的最小值最大。 解析: 二分石头,最小值最大。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <c

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 2594 二分图最大独立集

题意: 求一张图的最大独立集,这题不同的地方在于,间接相邻的点也可以有一条边,所以用floyd来把间接相邻的边也连起来。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <sta

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了