我们来继续看下如何使用思维链,也就是CoT(Chain of Thought)

其概念可以囊括为:如果生成一系列的中间推理步骤,就能够显著提高大型语言模型进行复杂推理的能力。

这里我们以一个示例举例

图片

如果我们像图右一样给出了解题的具体思路,就可以帮助模型生成了正确的答案。

再比如假设我们正在开发一个AI花店助手,它的任务是帮助用户选择他们想要的花

那么我们可以首先给AI助手一个示例

遇到生日派对送花的情况,我先考虑玫瑰和百合两种花朵,然后查看鲜花的库存,最后根据库存决定推荐哪种花。

而这个过程的加入,让AI的推理过程更加清晰,也使得生成的销售列表更加符合用户的需求。

在LangChain之中,Agent的核心概念就是进行提示工程,使用COT能有效地帮助我们。

在正式讲解COT之前,我们还可以简单说下其中Zero-Shot CoT的概念

图片

比如上面Zero-shot-Cot的讲解,其实也没做什么新的设定,就是告诉了模型,你要一步步的来,就能得到好的答案。

OK,回到COT的使用,在代码之前,我们先梳理下整体思维逻辑

  1. 你是一个为花店电商公司工作的AI助手,你的目标是帮助客户根据他们的喜好做出明智的决定。
  2. 给与一些示例:
我会按部就班的思考,先理解客户的需求,然后考虑各种鲜花的涵义,最后根据这个需求,给出我的推荐。

同时,我也会向客户解释我这样推荐的原因。

示例 1:

人类:我想找一种象征爱情的花。

AI:首先,我理解你正在寻找一种可以象征爱情的花。在许多文化中,红玫瑰被视为爱情的象征,这是因为它们的红色通常与热情和浓烈的感情联系在一起。因此,考虑到这一点,我会推荐红玫瑰。红玫瑰不仅能够象征爱情,同时也可以传达出强烈的感情,这是你在寻找的。

示例 2:

人类:我想要一些独特和奇特的花。

AI:从你的需求中,我理解你想要的是独一无二和引人注目的花朵。兰花是一种非常独特并且颜色鲜艳的花,它们在世界上的许多地方都被视为奢侈品和美的象征。因此,我建议你考虑兰花。选择兰花可以满足你对独特和奇特的要求,而且,兰花的美丽和它们所代表的力量和奢侈也可能会吸引你。

与此同时,我们先创建一个SystemMessagePromptTemplate声明AI角色的定位

system_prompt_role = SystemMessagePromptTemplate.from_template(role_template)

然后是一个示例

system_prompt_cot = SystemMessagePromptTemplate.from_template(cot_template)

之后就是用户的输入

human_template = “{human_input}”

human_prompt = HumanMessagePromptTemplate.from_template(human_template)

然后利用Chat模型的模板组合为一个提示

chat_prompt = ChatPromptTemplate.from_messages([system_prompt_role, system_prompt_cot, human_prompt])

这样就可以进行相关的使用

prompt = chat_prompt.format_prompt(human_input=”我想为我的女朋友购买一些花。她喜欢粉色和紫色。你有什么建议吗?”).to_messages()

在这种提示下,我们就可以让AI模型一步步的进行提示搜索。

在之后,就是Tree of Thought-思维树(ToT)框架

ToT是一种解决复杂问题的框架,它在需要多步骤推理的任务中,引导语言模型搜索一棵由连贯的语言序列(解决问题的中间步骤)组成的思维树。

图片

其如果要解决一个数学推理任务,先把它分解为3个思维步骤,并为每个步骤提出多个方案,并保留最优的5个候选方案。然后在多条思维路径中搜寻最优的解决方案。

在这种模式下的模型,可以进一步提高搜索策略的性能,并让模型在解决新问题或面临未知情况时有更好的表现。

比如我们提供一个鲜花运营方面的示例。

假设一个顾客在鲜花网站上询问:“我想为我的妻子购买一束鲜花,但我不确定应该选择哪种鲜花。她喜欢淡雅的颜色和花香。”

AI(使用ToT框架):

思维步骤1:理解顾客的需求。

顾客想为妻子购买鲜花。

顾客的妻子喜欢淡雅的颜色和花香。

思维步骤2:考虑可能的鲜花选择。

候选1:百合,因为它有淡雅的颜色和花香。

候选2:玫瑰,选择淡粉色或白色,它们通常有花香。

候选3:紫罗兰,它有淡雅的颜色和花香。

候选4:桔梗,它的颜色淡雅但不一定有花香。

候选5:康乃馨,选择淡色系列,它们有淡雅的花香。

思维步骤3:根据顾客的需求筛选最佳选择。

百合和紫罗兰都符合顾客的需求,因为它们都有淡雅的颜色和花香。

淡粉色或白色的玫瑰也是一个不错的选择。

桔梗可能不是最佳选择,因为它可能没有花香。

康乃馨是一个可考虑的选择。

思维步骤4:给出建议。

“考虑到您妻子喜欢淡雅的颜色和花香,我建议您可以选择百合或紫罗兰。淡粉色或白色的玫瑰也是一个很好的选择。希望这些建议能帮助您做出决策!”

这就是ToT的基本使用方法。

那么总结一下,我们介绍了Chain of Thought(CoT,即“思维链”)和Tree of Thoughts(ToT,即“思维树”)这两个概念

CoT是通过给与一些中间推理过程,来增强模型的推理能力

ToT则是进一步扩展了CoT思想,利用连贯的语言序列来组成思维树来解决复杂问题。

发表评论

邮箱地址不会被公开。 必填项已用*标注