3.4 贴切而全面:探索底部指令背后的潜力

在之前 GPT Prompt 优化方法的探索过程中,相信你应该已经掌握了许多实用的策略。这些方法能使 GPT 更有效地解决你的问题,同时你也能更深入且准确地理解 GPT 的运行原理。在掌握了诸多方法后,本章将介绍一种较为轻松的,严格说来并不算是优化方法的方法——底部指令。

尽管这个方法只是一个基础的概念,但它能帮助你有效理解 GPT 的底层逻辑,让你更直观地了解 GPT 的「思维」方式。

将指令放到最后

在使用 GPT 时,我们通常会提供一些素材或上下文信息。然而,在某些情况下,GPT 并不会完全遵照我们的 Prompt 执行,它可能只是将我们的 Prompt 内容作为上文来生成下文,或者从内容中间抓取一段作为执行命令。

对此,我们可以尝试将指令放到问题的末尾。即,我们首先给 GPT 提供一些素材内容,然后再在最末尾(最好能换行)提出我们想要的指令 Prompt。这样做的原因是 GPT 趋向于将根据指令的后部进行处理。这种趋势性能帮助我们更有效地控制 GPT 的输出,使其更符合我们预期的结果。

如图所示,GPT 在我们将指令放在不同位置时,输出的内容会有变化。这是由于 GPT 更侧重于对 Prompt 内容的末尾进行解析,因此,把指令放在后部时,它会更可能按照我们的需求来执行。

GPT-3.5 不同指令顺序的效果对比

上述例子清晰地展示了 GPT 对底部指令的倾向性。虽有三个相似的「写故事」指令,但 GPT 基本只执行了最后一个,对「小明学会开车和成为歌手」这样的内容则一概未提。

底部指令的原理

实际上,我们在前面的文章中一直在使用这个方法,许多人默认使用 GPT,甚至认为 GPT 会自然地把最后的语句当作指令。然而,这种观念实际上源自 GPT 的基础逻辑,并不适用于所有情况。

GPT 的运作原理基于预测下一个词,特别是在处理长句时,它倾向于更加关注最近的词,即句尾的部分。这是因为在训练阶段,GPT 通过预测下一个词进行学习,而下一个词更有可能与最近的词有所关联。因此,将指令放在句尾会让 GPT 在生成文本时更专注于这些指令,从而更准确地生成期望的内容。

需要强调的是,这并不意味着前面的内容会被忽略。GPT 仍会尽其所能理解整段文本的内容和结构。然而,在面对多个指令时,它更可能优先考虑句尾的指令。前文中的例子也说明了这一点,GPT 会考虑句首的内容,但实际上根据情况选择是否满足所有中间的指令。

这种方法是一种直观的策略,通过适应 GPT 的运作逻辑,我们可以更好地优化 Prompt。

然而,对于较短的 Prompt,尽管句尾指令仍有一定效果,但这种方法可能不如在长 Prompt 中效果明显。在短 Prompt 中,由于指令与其他内容的距离较近,模型更可能将整个 Prompt 作为一个整体处理,而非仅仅关注句尾的指令。

底部指令对 GPT 创意和想象力的作用

如果我们的 Prompt 比较长,而 GPT 对我们的指令响应不够理想,除了修改和优化 Prompt 内容之外,我们还可以尝试调换指令的位置,或者给指令加上特殊的标志。例如,我个人就喜欢用 {{}} 来标注指令。

在更换或额外添加特殊指令后,你可能会惊喜地发现,这种简洁的技巧可以产生出预料之外的效果。处理被特殊符号包围的后置指令时,GPT 通常会更准确地执行,从而产生更接近我们预期的结果。

另外如果你的需求要求不同的指令,需要放在不同的位置,并且需要 GPT 同时考虑执行所有的指令,那么可以给指令加上序号,然后再最后一行再指定需要执行的指令序号。可以看到,给指令加上序号,在最后要求执行所有指令后,GPT 巧妙的满足了我们三个要求,生成了一个还挺有创意的故事。

GPT 生成的故事丰富度有那么点意思

这个机制非常适用于辅助 GPT 生成创新类型的内容。你可以在内容中加入一些看似无关的指令,要求 GPT 全面遵守,有时,这种策略会为你带来比直接提问更多的惊喜。

总结

通过上述文章我们了解到,通过调整在 Prompt 中的指令位置,特别是放在末尾,可以更好地控制 GPT 的表现。同时,为指令添加特殊标志和序号,也能激发 GPT 的创造力和想象力。虽然这个技巧看起来简单,但实用价值极高。在下一章中,我们将回到优化方法介绍,继续教你如何防止 GPT「答非所问」。

最后更新于