logo
2

Prompt 技巧宝典(二):链式思考(CoT)提示

上节内容,主要介绍零样本、少样本的方式让大模型给出对应的推理结果 Prompt 技巧宝典(一):样本提示,但是在更复杂的推理场景中,少样本提示不足以获得某些类型的推理问题和可靠响应。本节内容介绍解决复杂推理场景的一个技巧:链式思考提示。
链式思考(Chain of Thought,CoT)提示是一种帮助用户和人工智能更高效、深入地交流的方法。通过逐步展开问题并在每个回答中保留之前问题的背景信息,链式思考可以使对话变得更具内容丰富和连贯。这种方法尤其适用于处理复杂或多层次的问题。
链式提示其本质上就是扩大语言模型的能力,解决语言模型的的局限性问题。例如:
在零提示或少量提示情况下,大多数场景LLM是能够正确推理的,因此如果实际的场景中,能够零样本提示完成,那么久不应该考虑链式思维提示,总之我们应该简单化,避免复杂化。
但是当我们使用零样本提示或少量样本提示,发现LLM的局限性后,我们可以考虑使用链式思考的提示。如下:
这个案例中,我们发现文心一言的一些局限性或者不稳定性,并调整多次提示词,但是文心回答的结果错误率非常高。此时这种场景说明,少样本提示已经不可靠。我们必须考虑使用链式提示。【笔者注:最新更新的文心4.0大模型已经能解决上述问题,本节提供一种处理思路。】
通过链式的提示词,文心能够顺利完成正确的推理。
这种方法的重要前提是:零样本提示或少样本提示文心无法正常推理或完成你的目标。
其原理就是将复杂的问题进行拆解,拆解到文心能够正确推理或者完成你的目标即可。
链式思考提示还有一个非常巧妙的使用场景:文本后处理
对于文心生成的文本内容,我们在实际的工程中是需要对内容做一些处理的,因为文心返回的内容是不固定的。他有可能多了“好的,以下是***”,“好的,我是****,接下来我将”,“好的,以下是总结的内容”等等。这种情况下,我们可以通过链式提示让文心提供结构性的内容,而我们则在工程上提取对应的内容。例如:
我们通过链式思考提示,让文心提供“Final Answer:”的内容,最终我们再单独提取出Final Answer的内容,在客户端进行展示。
这种提示词,是非常精妙的用法。
当然,上面的这个提示词除了链式思考外,还增加了Action,在下文的ReAct框架中,我们将介绍Action的提示技术。
评论
用户头像