ITPub博客

首页 > 数据库 > 数据库开发技术 > 通往AGI之路:提示词基础技巧入门 4

通往AGI之路:提示词基础技巧入门 4

原创 数据库开发技术 作者:雨飞AI笔记 时间:2023-10-13 23:01:28 0 删除 编辑

大家好,我是雪飘雨飞。在上一篇专栏的文章中,我们提到了提示词书写是将复杂的任务拆分为简单的子任务,今天我们就继续学习后面的技巧,就是给 GPT 时间去「思考」。


之前的文章地址如下,欢迎查阅:

通往AGI之路:提示词基础技巧入门

通往AGI之路:提示词基础技巧入门 2
通往AGI之路:提示词基础技巧入门 3


一、给 GPT 时间去思考


今天,我们介绍第四个技巧,给 GPT 时间去思考。如果被要求将 17 乘以 28 ,你可能不能立即知道答案,但仍然可以花时间计算出来。类似地,GPT 在试图立即回答问题时会产生更多的推理错误,而不是花时间考虑答案。在要求回答之前要求给出推理的连续,可以帮助GPT更可靠地推理出正确的答案。


策略1:在急于得出结论前指导模型自行解决问题


有时候,当我们要让模型评估一个数学问题的解决方案时,我们直接指示模型从基本原理出发进行推理得出结论,可能会得到更好的结果。最明显的方法是让模型简单地判断学生的解决方案是否正确。


系统
判断学生的答案是否正确
用户

问题陈述:我正在建设一个太阳能发电装置,需要帮助计算财务方面的问题。

  • 土地成本是每平方英尺100美元。

  • 我可以以每平方英尺250美元的价格购买太阳能电池板。

  • 我谈判了一个维护合同,每年我需要支付固定成本10万美元,以及每平方英尺10美元的额外费用。第一年运营的总成本是多少,以平方英尺的数量为函数表示。

学生的解决办法:设x为装置的面积(平方英尺)。

  1. 土地成本:100x美元

  2. 太阳能电池板成本:250x美元

  3. 维护成本:10万美元 + 100x美元 总成本:100x美元 + 250x美元 + 10万美元 + 100x美元 = 450x美元 + 10万美元


助手
学生的回答是正确的


但是学生的解决方案实际上是错误的!我们可以通过先提示模型自己生成解决方案来让模型成功地发现这一点。当然,下面这个例子摘自 OpenAI 的示例教程,不同的代码可能执行的结果有所差别,请自己进行实验并验证。


系统
首先自己解决这个问题。然后比较你的解决方案和学生的解决方案,并评估学生的解决方案是否正确。在你自己完成问题之前不要决定学生的解决方案是否正确。
用户

问题陈述:我正在建设一个太阳能发电装置,需要帮助计算财务方面的问题。

  • 土地成本是每平方英尺100美元。

  • 我可以以每平方英尺250美元的价格购买太阳能电池板。

  • 我谈判了一个维护合同,每年我需要支付固定成本10万美元,以及每平方英尺10美元的额外费用。第一年运营的总成本是多少,以平方英尺的数量为函数表示。

学生的解决办法:设x为装置的面积(平方英尺)。

  1. 土地成本:100x美元

  2. 太阳能电池板成本:250x美元

  3. 维护成本:10万美元 + 100x美元 总成本:100x美元 + 250x美元 + 10万美元 + 100x美元 = 450x美元 + 10万美元

助手

假设 x 是安装面积的平方英尺。

  1. 土地成本:100x

  2. 太阳能电池板成本:250x

  3. 维护成本:100,000 + 10x 总成本:100x + 250x + 100,000 + 10x = 360x + 100,000

学生的解答是错误的。他们在计算维护成本时犯了一个错误,使用了100x而不是10x。第一年运营的正确总成本是360x + 100,000。



策略2:使用内心独白或一系列的疑问来隐藏模型的推理过程


前面的策略表明,模型在回答特定问题之前,有时候有必要对问题进行详细的推理。对于某些应用,模型的推理过程可能不适合与用户分享。例如,在辅导应用中,我们可能希望鼓励学生自己解决问题,但是模型关于学生解决方案的推理过程可能会向学生揭示答案。


内心独白是一种可以用来缓解这个问题的策略。内心独白的思想是指示模型将对用户隐藏的部分输出放入一个结构化的格式中,以便解析它们变得容易。然后,在向用户呈现输出之前,对输出进行解析,只有部分输出对用户可见。


系统

按照以下步骤回答用户的查询。

步骤 1 - 首先自己解决问题。不要依赖学生的解决方案,因为可能是错误的。将此步骤中的所有内容均用三引号括起来 (""")。

步骤 2 - 将您的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。将此步骤中的所有内容均用三引号括起来 (""")。

步骤 3 - 如果学生犯了错误,请确定您可以给学生什么提示,而不是直接给出答案。将此步骤中的所有内容均用三引号括起来 (""")。

步骤 4 - 如果学生犯了错误,请向学生提供来自上一步的提示(不用三引号)。代替写“步骤 4 - ...”,写“提示:”。


助手

问题陈述:我正在建设一个太阳能发电装置,需要帮助计算财务方面的问题。

  • 土地成本是每平方英尺100美元。

  • 我可以以每平方英尺250美元的价格购买太阳能电池板。

  • 我谈判了一个维护合同,每年我需要支付固定成本10万美元,以及每平方英尺10美元的额外费用。第一年运营的总成本是多少,以平方英尺的数量为函数表示。

学生的解决办法:设x为装置的面积(平方英尺)。

  1. 土地成本:100x美元

  2. 太阳能电池板成本:250x美元

  3. 维护成本:10万美元 + 100x美元 总成本:100x美元 + 250x美元 + 10万美元 + 100x美元 = 450x美元 + 10万美元



另一种方法是通过一系列查询来实现,其中除了最后一个查询外,所有查询的输出都对最终用户隐藏。


首先,我们可以要求模型自行解决问题。由于这个初始查询不需要学生的解决方案,可以省略它。这有一个额外的好处,即模型的解决方案不会受到学生尝试的解决方案的影响。


用户
<插入问题的描述>


接下来,我们可以让模型利用所有可用信息来评估学生解决方案的正确性。


系统
比较你的解决方案与学生的解决方案,并评估学生的解决方案是否正确。
用户

问题描述 """<插入问题描述>"""

你的解决方案 """<插入上文模型产生的回答>"""

学生的解决方案 """<插入学生的解决方案>""" 


最后,我们可以让模型使用自己的分析能力以帮助性导师的角色构造一个回复。


系统
作为一名数学导师,如果学生犯了错误,可以通过提示的方式而不是直接透露答案来帮助他们。如果学生没有犯错误,可以给予他们一些建议。
用户

问题描述 """<插入问题描述>"""

你的解决方案 """<插入上文模型产生的回答>"""

学生的解决方案 """<插入学生的解决方案>"""

分析 """<插入之前步骤生成的模型分析结果>"""



策略3:分段总结长文档并递归构建完整摘要


假设我们正在使用一个模型来列出与特定问题相关的摘录。在列出每个摘录之后,模型需要决定是继续写下一个摘录还是停止。如果源文件很大,模型往往会停得太早,无法列出所有相关的摘录。在这种情况下,通过提示模型进行后续查询,以找到之前漏掉的任何摘录,可以获得更好的性能表现。


系统

您将获得一个由三引号分隔的文档。您的任务是选择与以下问题有关的摘录:“人工智能的历史中发生了哪些重大的范式转变。”

确保摘录包含解释它们所需的所有相关上下文 - 换句话说,不要提取缺少重要上下文的小片段。以JSON格式提供输出,格式如下:

[{"excerpt": "..."}, ... {"excerpt": "..."}]


用户
"""<插入文档>"""
助手
[{"excerpt": "模型输出的摘要"}, ... {"excerpt": "模型输出的摘要"}]
用户
有更多相关的摘录吗?注意不要重复摘录。同时确保摘录包含解释它们所需的所有相关上下文-换句话说,不要提取缺少重要上下文的小片段。



END

好了,今天的分享就到这里,希望对你有所帮助。

你的每一个【点赞】,都是鼓励我进步的勇气,点个【在看】,加油吧!





原文作者:雨飞AI笔记;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-08-27

  • 博文量
    563
  • 访问量
    325046