3.4 贴切而全面:探索底部指令背后的潜力
在之前 GPT Prompt 优化方法的探索过程中,相信你应该已经掌握了许多实用的策略。这些方法能使 GPT 更有效地解决你的问题,同时你也能更深入且准确地理解 GPT 的运行原理。在掌握了诸多方法后,本章将介绍一种较为轻松的,严格说来并不算是优化方法的方法——底部指令。
尽管这个方法只是一个基础的概念,但它能帮助你有效理解 GPT 的底层逻辑,让你更直观地了解 GPT 的「思维」方式。
将指令放到最后
在使用 GPT 时,我们通常会提供一些素材或上下文信息。然而,在某些情况下,GPT 并不会完全遵照我们的 Prompt 执行,它可能只是将我们的 Prompt 内容作为上文来生成下文,或者从内容中间抓取一段作为执行命令。
对此,我们可以尝试将指令放到问题的末尾。即,我们首先给 GPT 提供一些素材内容,然后再在最末尾(最好能换行)提出我们想要的指令 Prompt。这样做的原因是 GPT 趋向于将根据指令的后部进行处理。这种趋势性能帮助我们更有效地控制 GPT 的输出,使其更符合我们预期的结果。
如图所示,GPT 在我们将指令放在不同位置时,输出的内容会有变化。这是由于 GPT 更侧重于对 Prompt 内容的末尾进行解析,因此,把指令放在后部时,它会更可能按照我们的需求来执行。
上述例子清晰地展示了 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 全面遵守,有时,这种策略会为你带来比直接提问更多的惊喜。
总结
通过上述文章我们了解到,通过调整在 Prompt 中的指令位置,特别是放在末尾,可以更好地控制 GPT 的表现。同时,为指令添加特殊标志和序号,也能激发 GPT 的创造力和想象力。虽然这个技巧看起来简单,但实用价值极高。在下一章中,我们将回到优化方法介绍,继续教你如何防止 GPT「答非所问」。
最后更新于