Skip to content
On this page

⏳ 给GPTs一些“思考”时间

技巧:在匆忙得出结论之前,指导模型自行解决问题

有时候,当我们明确指示模型在得出结论之前先利用第一原理进行推理,我们会获得更好的结果。例如,假设我们想让一个模型评估学生解决数学问题的答案。最显而易见的方法是简单地询问模型学生的解决方案是否正确。

⚙️ 系统:
确定学生的解决方案是否正确

👤 用户:
问题陈述:我正在建造一个太阳能发电装置,需要帮助计算财务。
- 土地成本为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能电池板
- 我谈判了一份维护合同,每年将花费我固定的10万美元,并额外支付每平方英尺10美元

作为面积大小的函数,第一年运营的总成本是多少。

学生解答:
设x为安装面积(单位:平方英尺)。
1.土地成本:100x
2.太阳能电池板成本:250x
3.维护费用:100,000 + 100x
总成本: 100x + 250x + 100,000 + 100x = 450x+ 100,000

🤖 助手:
该学生的答案是正确的。

但是学生的解决方案实际上是错误!我们可以通过提示模型先生成自己的解决方案来成功地让模型注意到这一点。

⚙️ 系统:
先自己解决问题,然后再将你的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。在自己完成问题之前,不要判断学生的解决方案是否正确。

👤 用户:
问题陈述:我正在建造一个太阳能发电装置,需要帮助计算财务。
- 土地成本为每平方英尺100美元
- 我可以以每平方英尺250美元的价格购买太阳能电池板
- 我谈判了一份维护合同,每年将花费我固定的10万美元,并额外支付每平方英尺10美元

作为面积大小的函数,第一年运营的总成本是多少。

学生解答:
设x为安装面积(单位:平方英尺)。
1.土地成本:100x
2.太阳能电池板成本:250x
3.维护费用:100,000 + 100x
总成本: 100x + 250x + 100,000 + 100x = 450x+ 100,000

🤖 助手:
设x为安装面积(平方英尺)。
1. 土地成本:100x
2. 太阳能电池板成本:250x
3. 维护费用:100,000 + 10x
总成本:100x + 250x + 100,000 + 10x = 360x + 100,000
学生的解答是错误的。他们在维护费用计算中犯了一个错误,使用了100x而不是10x。第一年运营的正确总成本为360x+ 100,000。

技巧:使用内心独白或一系列查询隐藏模型的推理过程

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

内部独白是一种可以用来缓解这个问题的策略。内部独白的想法是指示模型将那些需要隐藏不让用户看到的输出部分放入一个结构化格式中,以便易于解析它们。然后在向用户呈现之前,对输出进行解析,并仅使其中一部分可见。

⚙️ 系统:
按照以下步骤回答用户的问题。

第一步 - 首先自己解决问题。不要依赖学生的解决方案,因为它可能是错误的。将此步骤中所有工作都放在三重引号(""")之间。

第二步 - 将你的解决方案与学生的解决方案进行比较,并评估学生的解决方案是否正确。将此步骤中所有工作都放在三重引号(""")之间。

第三步 - 如果学生犯了一个错误,请确定您可以给予他们什么提示而不泄露答案。将此步骤中所有工作都放在三重引号(""")之间。

第四步 - 如果学生犯了一个错误,请向他们提供来自上一步提示。请勿使用“第四步...”,而应写成“提示:”。

👤 用户:
问题陈述: <插入问题陈述>
学生解决方案: <插入学生解决方案>

或者,我们可以通过一系列查询来实现这一点,在其中除了最后一个之外的所有查询都将其输出隐藏不向终端用户显示。

首先,我们可以要求模型自行解决问题。由于此初始查询不需要学生的解决方案,因此可以省略它。这提供了额外的优势,即模型的解决方案不会受到学生尝试的解决方案的影响。

👤 用户:
<插入问题陈述>

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

⚙️ 系统:
将您的解决方案与学生的解决方案进行比较,并评估学生的方案是否正确。

👤 用户:
问题陈述:“”“<插入问题陈述>”“”
您的解决方案:“”“<插入模型生成的解决方案>”“”
学生的解决方案:“”“<插入学生的解决方案>”“”

最后,我们可以让模型使用自己的分析来构建一个有帮助的导师角色的回复

⚙️ 系统:
你是一名数学导师,如果学生犯了错误,以不透露答案的方式给他们提供提示。如果学生没有犯错,只需给予鼓励性的评论。

👤 用户:
问题陈述:"""<插入问题陈述>"""
你的解决方案:"""<插入模型生成的解决方案>"""
学生的解决方案:"""<插入学生的解决方案>"""
分析:"""<插入先前步骤中生成的模型分析结果>"""

技巧:询问模型是否在之前的迭代中漏掉了什么

假设我们正用一个模型来从某个文档中提取出与问题相关的摘录。在列出每个摘录后,模型需要确定它是否应该开始写另一个或者停止。如果源文档很大,则模型通常会过早地停止并不能列出所有相关的摘录。在这种情况下,通过提示模型进行跟进查询以查找先前漏掉的任何摘录,可以获得更好的效果。

⚙️ 系统:
你将获得一个由三重引号分隔的文档,请选择与以下问题相关的摘录:“人工智能历史上发生了哪些重大的范式转变。”
确保摘录包含解释所需的所有相关上下文 - 换句话说,不要提取缺少重要上下文的小片段。以下方JSON格式输出:
[{"excerpt": "..."},
...
{"excerpt": "..."}]

👤 用户:
"""<插入文档>"""

🤖 助手:
[{"excerpt": "the model writes an excerpt here"},
...
{"excerpt": "the model writes another excerpt here"}]

👤 用户:
是否有更多相关的摘录?请注意不要重复摘录。同时确保摘录包含解释所需的所有上下文 - 换句话说,不要提取缺少重要上下文的小片段。