Self Discover框架,万万想不到AI Agent还能这样推理

0 评论 1793 浏览 2 收藏 10 分钟

前面我们分享了Basic Reflection这种偏重反思的AI Agent设计模式,在面对复杂的问题时,就需要更强大的Self-discover设计模式来进行。这篇文章,作者的分享一定不能错过。

在上篇文章《AI大模型实战篇:Basic Reflection,AI Agent的左右互搏之术》中,风叔结合原理和具体源代码,详细介绍了第一种偏重反思的AI Agent设计模式,即Basic Reflection。

Basic Reflection 的思路非常朴素,使用成本较低,但是在实际应用中,Basic Reflection面对一些比较复杂的问题时,需要Generator具备更强大的推理能力。

在这篇文章中,沿着“更强大的推理能力”这条优化路线,风叔将介绍Self-discover设计模式。这个设计模式非常有意思,相信看到最后,大家会发现令人惊奇的结果。

一、Self Discover的概念

Self-Discover 是由Google的研究人员提出的一种AI Agent框架,可实现自动发现和构建推理结构,以解决各种推理任务。这种方法的核心是一个自发现过程,它允许大型语言模型在没有明确标签的情况下,自主地从多个原子推理模块(如批判性思维和逐步思考)中选择,并将其组合成一个推理结构。

Self-Discover框架包含两个主要阶段,自发现特定任务的推理结构、应用推理结构解决问题。如下图所示:

阶段一:自发现特定任务的推理结构

主要包含三个主要动作:选择(SELECT)、适应(ADAPT)和实施(IMPLEMENT)。

选择:在这个阶段,模型从一组原子推理模块(例如“批判性思维”和“逐步思考”)中选择对于解决特定任务有用的模块。模型通过一个元提示来引导选择过程,这个元提示结合了任务示例和原子模块描述。选择过程的目标是确定哪些推理模块对于解决任务是有助的。

适应:一旦选定了相关的推理模块,下一步是调整这些模块的描述使其更适合当前任务。这个过程将一般性的推理模块描述,转化为更具体的任务相关描述。例如对于算术问题,“分解问题”的模块可能被调整为“按顺序计算每个算术操作”。同样,这个过程使用元提示和模型来生成适应任务的推理模块描述。

实施:在适应了推理模块之后,Self-Discover框架将这些适应后的推理模块描述转化为一个结构化的可执行计划。这个计划以键值对的形式呈现,类似于JSON,以便于模型理解和执行。这个过程不仅包括元提示,还包括一个人类编写的推理结构示例,帮助模型更好地将自然语言转化为结构化的推理计划。

阶段二:应用推理结构

完成阶段一之后,模型将拥有一个专门为当前任务定制的推理结构。在解决问题的实例时,模型只需遵循这个结构,逐步填充JSON中的值,直到得出最终答案。

二、Self Discover的实现过程

下面,风叔通过实际的源码,详细介绍Self Discover模式的实现方法,具体的源代码地址可以在文章结尾处获取。在手机端阅读源码的体验不太好,建议大家在PC端打开。

第一步 定义Select、Adapt和Implement

第一步要做的事情,是前面所讲的阶段一,定义好select、adapt和implement这三个过程。

首先,定义select。给Select的prompt是,“对于给定的任务,找出最相关的reasoning module,即确定通过什么方法来解决任务”

然后,定义adapt。给Adapt的prompt是,“在不需要给出完整解决方案的情况下,让大模型调整上一步得到的reasoning module,以更好地适应任务。”

接下来,定义implement。给Implement的prompt是,“在不需要给出完整解决方案的情况下,利用上一步得到的优化后的reasoning module,创建一个可执行的推理结构。”

第二步 执行推理结构

第二步要做的事情,就是前面所讲的阶段二,应用这个推理结构获得最终答案

第三步 提出问题,开始推理

第三步就是将这个过程进行推理实现,如下面的代码所示,这一步非常关键,大家可以逐条仔细看:

这段代码非常简单。首先,我们提出了39种reasoning modules,即推理的具体方法,大家也可以自己提炼出一些推理方法,通过prompt告知给Agent。

然后,我们提出一个具体的推理任务:“Lisa 有 10 个苹果。她给了朋友 3 个苹果,然后从商店买了 5 个苹果。Lisa 现在有多少个苹果?”

然后大模型会自动选出最合适的推理方法。实践中发现,大模型选择了方法9和10。

接下来,针对目标任务,大模型自动优化推理方法的描述。

然后,大模型自动给出了具体的推理结构。

至此,Self Discover的原理和流程就介绍完了。

风叔在尝试这个case之前,完全没想到大模型还能在给定的推理方法中,自主选择最合适特定的问题的推理方法,并完成推理结构和推理语言的输出,这项能力确实是让风叔眼前一亮。通过这种推理方式,未来Agent就能解决更加多样化的问题,因为任何类型的问题,总能有其对应的推理和思考方式。

大家可以关注公众号【风叔云】,回复关键词【SD源码】,获取self discover设计模式的完整源代码,然后自己尝试一些更复杂的提问,看看大模型的回答效果。

总结

整个Self-Discover的关键在于,它允许模型在没有人类干预的情况下,自主地生成适合特定任务的推理结构。这样不仅提高了模型的推理能力,而且提高了推理过程的可解释性。通过这种方式,模型能够更有效地处理复杂和多样化的任务。

本篇文章提到的例子,虽然结构很清晰,但不足之处在于没有使用Tools。对于需要使用搜索工具、数学工具等外部工具的场景,我们也可以让大模型在adapt环节给出适合解决目标任务的外部工具,然后在后续过程中执行。

在下一篇文章中,风叔将介绍另一种优化Basic Reflection的方式,增加强化学习,Reflexion。

本文由人人都是产品经理作者【风叔】,微信公众号:【风叔云】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于 CC0 协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!