3.6 贴切而全面:注释复杂的 Prompt

在上一章中,我们拓展了填空法的适用面,让大家了解到填空法不仅可以提升 GPT 回答时的质量,还可以通过 Prompt 的拆分在语句中插入明确要求或问题,加强 GPT 的语义联想能力,使 GPT 生成更符合语境和连贯一致的内容。

在学到各种各样的优化方法以后,GPT 能做「好」的工作也越来越多了。在实际操作中,我们往往面临复杂的需求,需要通过各种不同类型和顺序的流程步骤来解决。虽然每一步都可以利用我们之前介绍的各种优化方法,或是他们的组合来实现;但当我们的问题复杂到一定程度的时候,Prompt 也会变得更加冗长和混乱,这使得即使是在拆分 Prompt 或使用多次提问的情况下,GPT 也难以抓住所有的关键点和需求。

那么有聪明的读者可能已经想到,又该是我们借助生活经验的时刻了。对于有编程或撰写文章大纲经验的朋友来说,他们应该已经意识到了一个方法,利用「注释」帮助 GPT 更好地理解复杂的分块内容。

用注释解释 Prompt 功能

有时,我们的需求和问题可能较为复杂,如果我们希望让 GPT 更好地满足我们的全面要求,那么在编辑发送给 GPT 的 Prompt 时就需要详细列出更多要点。这将导致 Prompt 变得越来越长且越来越复杂。

当提示长到一定程度时,许多服务(如 OpenAI 和 Claude)会试着先概括并简化提示,然后再进行理解。

由于 GPT 在训练时接受了大量的不同编程语言代码,所以它对各种编程思维方式和格式有很好的理解能力(还记得我们的核心观点吗?格式大于内容)。因此,对于长且复杂的提示,我们可以采用另一种更为省力且有效的优化方式:模仿编程语言的注释方法。

注释的使用技巧

就像是我们日常的编程注释或者大纲,注释的目的是帮助模型将复杂的需求分解为更小的、更易于处理的部分。这种方法特别是在处理需要长篇幅和多步骤的问题时,可以提高 GPT 的性能。下面是一些具体的例子和用法:

  • 简述你的目标

  • 分步描述你的需求

  • 解释特殊的需求或限制

  • 提供更多的背景信息

简述你的目标

一个简单的用法就是用注释的方式在 Prompt 开头或者某个部分表明这个 Prompt 的用途,例如「扩写」「续写」「分类」「生成」「总结」「转换格式」「翻译」「排序」「知识收集」等,或者这个 Prompt 的预期结果,从而为 GPT 提供方向指导。例如,如果你正在创建一个新的软件项目,并且你想要一个高级别的软件架构,你的 Prompt 可以这样开始:

分步描述你的需求

如果你的问题需要多个步骤来解决,你可以使用注释来明确每个步骤的目标。当我们使用其他优化方法时,比如分步和思维链,也可以使用注释的格式来加强这个方法的引导性。例如,如果你在计划一个新的广告活动,你可以这样组织你的 Prompt:

解释特殊的需求或限制

如果你有特殊的需求或限制,你可以使用注释来明确这些信息。例如,如果你需要 GPT 使用特定的方法或遵循特定的规则来解决问题,你可以添加如下注释:

提供更多的背景信息

使用举例,提供素材等等方法来提供背景信息,可以使用注释来添加这些信息,例如:

GPT-3.5 简单提供素材直接提问的效果
GPT-3.5 注释方法效果对比

其实不仅是在开头或者结尾,只要是我们想要约束 GPT 的地方,都可以使用这个方法。注释建议单独一行,多行注释建议参考不同编程语言的多行注释方式,特别是将 Prompt 拆分为多段或者多次提问时。

一个有趣的特性是,只要与编程语言有关的格式,GPT 都特别愿意去遵守,并且优先级很高。比如大家可以试试把有层级的内容按照 Python 那样用 Tab 缩进,或者用特定数量的空格也可以。

【小提示】

我们在编写 Prompt 时,如果是要用到列举或者分隔的地方,建议用 | 英文分隔符号或者英文逗号代替中文逗号,因为在 GPT 中中文的逗号经常不被识别为分隔符

值得注意的使用细节

在上面的内容中,大家可以看到我在每个例子上都用了不同的注释格式。实际上你可以使用任何热门编程语言的注释格式,比如 /* */ 或者 // 等等,不过推荐包围式的注释,也就是 /*......*/"""......""" 等。其它注释符号数量太少,容易被误认为其他内容,包围式注释也更加明确注释的范围。

【举一反三】其它格式也适用

虽然我们在本章主要讨论的是编程中的格式,但实际上,只要某些特定形式的格式在 GPT 的训练集中被大量使用,它们同样可以产生相应的效果。例如,公式、Markdown 文本、正则表达式以及 json/yaml 等就是常见的应用实例。比如,当我们生成一篇文章,可以留出 Markdown 格式的空白,这样,GPT 就能准确理解我们想要的内容。

Markdown 文本辅助回答

注释适合的问题类型

注释方法可以用于各种类型的复杂问题。它在处理需要明确指示、具有多个步骤、需要多种技巧和方法结合解决的问题时尤其有效。以下是一些注释方法表现出色的问题类型:

  • 复杂的问题:如果你的问题涉及到很多步骤或者需要满足很多条件,注释方法能帮助你清晰地表达每个步骤或条件,让 GPT 更好地理解你的需求。

  • 具有特殊要求的问题:如果你对问题和回答有特别的格式要求,或者需要 GPT 遵循某些特定的规则,注释方法能帮你把这些要求清晰地表达出来。

  • 需要背景知识的问题:如果你的问题需要一些背景知识,你可以用注释方法来提供这些知识。这样 GPT 在回答你的问题时就可以考虑到这些背景信息。

  • 需要分解的问题:如果你的问题比较复杂,需要分解成多个小问题来解决,注释方法能帮助你把大问题分解成多个小问题,然后按照你设定的顺序逐一解决。

  • 指导性的任务:有些工作需要按照特定的顺序或者步骤来完成,注释法可以在分步的基础上提供明确的指导。

请注意,尽管注释方法在应对复杂问题时极其有效,但并非所有问题都需要采用这种方法。对于简洁的问题,可能只需直接提问便足够。因此,使用注释方法时,一定要根据具体需求和问题的性质来做决定。

总结

使用编程格式的注释补足了我们在长难 Prompt 上的优化方法空缺,能够解决更加贴近生活实际的复杂需求和问题。在接下来的章节中我们将来学习如何让 GPT 排除我们不想要的答案。

最后更新于