Self Discover框架,万万想不到AI Agent还能这样推理
在上篇文章《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就能解决更加多样化的问题,因为任何类型的问题,总能有其对应的推理和思考方式。
总结
整个Self-Discover的关键在于,它允许模型在没有人类干预的情况下,自主地生成适合特定任务的推理结构。这样不仅提高了模型的推理能力,而且提高了推理过程的可解释性。通过这种方式,模型能够更有效地处理复杂和多样化的任务。
本篇文章提到的例子,虽然结构很清晰,但不足之处在于没有使用Tools。对于需要使用搜索工具、数学工具等外部工具的场景,我们也可以让大模型在adapt环节给出适合解决目标任务的外部工具,然后在后续过程中执行。
在下一篇文章中,风叔将介绍另一种优化Basic Reflection的方式,增加强化学习,Reflexion。
作者:风叔产品总监,公众号:风叔云
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!