建议先看完上篇再继续看本篇目,不然很难跟上。
上篇链接:ChatGPT 提问秘笈:解析 AI 对话的科学技巧(上)
四、将其推理过程分解(避免ChatGPT编造答案)
ChatGPT和我们人类在很多方面其实相当相似。
比如,它有时不太懂常识,人也是这样;它算数可能不够准确,人也一样(谁能立刻告诉我733乘以818是多少?);它推理有时候不够好,人也是如此;有时它会编造答案,人也有这种情况;它思考有时候慢,人也是;它只能理解有限的上下文,人也一样。
我们在使用ChatGPT时,其实并没有给它真正思考的空间,它没有像人类一样能用草稿纸做计算,或者利用”工作记忆”来储存中间步骤,而是直接给出答案。但是,如果我们能让它像人类一样,将一个需要多步推理的问题,分解成一个个子问题,这将有助于提高它的答案质量。
实际上,这个方法已经被证明是有效的,为了提升ChatGPT的回答逻辑性,我们可以通过以下三种方法来改进:思维链(Chain of Thought)、提出子问题(Self-Ask)、给出多种方案(Self Consistency)。
这些方法本质上都是引导ChatGPT给出中间的推理步骤,不要直接给结果。(随着ChatGPT本身逻辑性的提高,如GPT-4已经涌现出一定的常识了,有可能直接就能得到很好的答案,而不需要额外使用这方法。)
1.思维链(Chain of Thought)
思维链的方法主要利用GPT是一个文本预测器的特性——需要尽量保持上下文的连贯性。我们可以透过改写prompt或者示例的方式引导ChatGPT给出中间的推理步骤,而不是直接给出结果。
CoT主要分为两种:
- Zero-shot-CoT:在提示词后面加上Let’s think step by step(一步一步地思考)
- Chain of Thought:展示一个相似问题的推理过程,告诉ChatGPT应该这么来。
区别是前者没有给出推理的示例(zero-shot表示0示例),后者给出至少一个示例。
Zero-shot-CoT
Zero-shot-CoT就是在prompt的后面加上”Let’s think step by step“,来引导ChatGPT展示推理过程。
由于AI没有判别能力,同时还很会胡扯——所以保险起见,你需要设计一个反馈机制,来逐步审核它的推理过程。透过在句尾加这句”让我们逐步思考.”,让它按照步骤展示它的推理过程给你看——过程中哪里没看懂,也能叫它举例。
Chain of Thought
Chain of Thought则是先展示一个相似问题的推理过程,然后让ChatGPT模仿这个过程来回答问题。
2.提出子問題(Self-Ask)
有些时候,问题的推理过程可能比较复杂,需要将问题分解成子问题。Self-Ask就是让GPT根据问题自动提出子问题的方法,要求GPT判断一个问题是否提出子问题,先解决子问题,再给出最后的答案。
一般询问:回答错误
客户咨询:
我刚在3月1日从你的Arnold系列中买了一件T恤。我看到它在打折,所以买了一件原价30美元的衬衫,并享受了40%的折扣。我看到你们的衬衫有50%的新折扣。我想知道我是否可以退回这件衬衫并有足够的商店信用来购买您的两件衬衫?指示:
你是一名客户服务代理,负责友好地响应客户的询问。允许在30天内退货。今天的日期是3月29日。目前所有T恤均有50%的折扣。您商店的衬衫价格在18美元到100美元之间。请勿编造有关折扣政策的任何信息。ChatGPT回答:
感谢您的查询。很遗憾,由于您是在3月1日购买的这件衬衫,因此不在我们的30天退货政策范围内。但是,我们目前对所有T恤均有50%的折扣,因此您可以使用相同的商店信用额度购买两件T恤。我们衬衫的价格从18美元到100美元不等。如果您有任何其他问题,请告诉我们。
而如果我们
拆解成子问题再询问:回答正确
客户咨询:
我刚在3月1日从你的Arnold系列中买了一件T恤。我看到它在打折,所以买了一件原价30美元的衬衫,并享受了40%的折扣。我看到你们的衬衫有50%的新折扣。我想知道我是否可以退回这件衬衫并有足够的商店信用来购买您的两件衬衫?
指示:
你是一名客户服务代理,负责友好地响应客户的询问。允许在30天内退货。今天的日期是3月29日。目前所有T恤均有50%的折扣。您商店的衬衫价格在18美元到100美元之间。请勿编造有关折扣政策的任何信息。
在回答询问之前必须解决哪些子问题?
ChatGPT回答:
1.确定客户是否在30天的退货窗口内。
2.计算如果客户退回衬衫,他们将获得的商店信用额度。
3.计算两件衬衫在当前50%折扣下的成本。
4.确定客户是否有足够的商店信用来购买两件衬衫。再指示:确定客户是否在30天的退货期限内。让我们一步一步来。
ChatGPT回答:
是的,客户在30天的退货期限内。客户于3月1日购买了这件衬衫,今天的日期是3月29日,在30天的退货期限内。因此,客户有资格退回T恤并获得购买的商店积分。客户可以使用商店信用以当前50%的折扣购买两件衬衫。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。