Stephan Profile picture
独立开发者 | 长期投资、低频量化交易者 | 分享我自己关于 #AI #crypto 的一点偏见 | 从不带单、不给任何中心化机构背书 | 所有推文不作为投资建议,请为自己的认知买单

Feb 25, 2023, 8 tweets

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.

Keep scrolling