AI提示工程(PE)小技巧系列第二篇:如何让ChatGPT写长文
在使用免费版的ChatGPT过程中,如果我们想要针对一个主题让ChatGPT写一篇长文的话,经常会发现几轮问答下来它的连贯性就不好了。好像ChatGPT对上下文的“记忆力”不太好。以下是原因及一些解决方法👇
#AI #ChatGPT #promptengineering
原因
ChatGPT有最大token数量的限制,token的定义如下图。
免费版API中,最大token上限是2048。也就是说一个API账号,能够“记住”的最大上下文信息是2048个token。对于记忆顺序,我猜大致是记新忘旧的。
注意,在对话过程中,用户的输入+ChatGPT的回答内容都会计算token。
那么,如果需要让ChatGPT写长文,我们需要做的就是保障在2048个token内,有我们需要的所有必要信息。
方法1:迭代法
就是在每轮提问时,把上次他的回答带上。
这样做适合文章整体长度不太长,但单次回答又没有完成的情况。如下图所示:
迭代法适合整体长度不太长的文章,但如果文章长度过长就不行了(需要迭代的前文长度都超过2048个token)
方法2:总分法
此时,可以将文章分为几段,且将段落提纲、必要的上下文信息放在每次提问中。然后在每次提问时让他写其中一段内容,如下图:
如果总分法使用的token也不够了,可以再拆分一下conversation(理论上,只要整体框架完整,且各个章节间相对独立的话,是可以无限拆分的)。
比如,对于“环境问题概述”这部分单独拆分一个conversation出来(注意,标题也有变化):
备注:
1.ChatGPT Plus的text-davinci-003模型,支持的上限是4096个token,是免费版的一倍。如果需要更多,可以考虑用大招Fine-tuning(当然也是要收费的)。
2.这里有一个估算token数量的网站:gpttools.com/estimator
3.中文能够容纳的token数量比英文要少,我实验大概在800个汉字左右对应2000个token(不绝对,还包括各种标点符号等)
以上,主要讨论了如何让ChatGPT写长文,实质问题是如何解决与AI对话的连贯性问题。
多说一句,我并不支持用这种方法学术造假,我认为AI的用处是提升生产力,但不能代替思考和创新。
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.