问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用AI运行AI:工具与研究综述

创作时间:
作者:
@小白创作中心

用AI运行AI:工具与研究综述

引用
CSDN
1.
https://m.blog.csdn.net/oldmao_2001/article/details/136701119

AI运行AI,顾名思义就是使用AI来统筹调用其他AI来解决复杂问题。常见的AI运行AI工具有:AutoGPT、AgentGPT、BabyAGI、Godmode等。其中,Godmode相较其他工具更加友好,可以随时调整执行计划,可以以10分钟为单位分段执行查看执行结果,且不需要魔法上网就可以访问(但需要谷歌或推特账号登录)。

Godmode使用示例

Godmode界面非常简洁,在输入框中输入你要完成的任务,模型就会自动将该任务进行切分:

用户可以根据自己的需要决定是否将子任务加入执行清单,当然在后续步骤中还可以对子任务的描述进行修订。将以上子任务都选中,开始执行后,左侧会显示子任务列表,右边显示执行状态:

可以看到,执行状态中会显示模型的执行思路和理由。

还会有执行的具体指令,可以看到,模型打算使用谷歌在油管上搜索相关视频。再下面可以对指令进行修正,例如将Hongyi改成正确的Hungyi。

下面的【Approve this plan】按钮是开始执行这个子任务,右下角的时钟按钮可以以10分钟为单位来执行这个子任务(按一次执行10分钟)。当然实际上执行效果不一定如你所愿,在上例中模型认为需要先写一个Video summarize的工具,结果写的代码无法执行,一直处于死循环状态。

概念

用AI运行AI就是将要执行的任务进行拆解,得到每个子任务后再来执行,当然每个工具拆解程度不一样,Godmode如下图所示,只拆解一次,而AutoGPT会将子任务继续拆分,这样做虽然可执行性会变高,但是拆解的任务会有重复,则会陷入循环之中。

当然,用AI运行AI有不同的实现方式,下面通过几篇论文来讲解他们的思路。

Recursive Reprompting and Revision(Re3)

注:应该是Re 3 \text{Re}^3Re3

这个模型主要用于完成故事的编写。文章本身只有10来页,但是后面的故事示例就长得离谱,共计有86页。模型总体思路如下:

先是给出故事发生的情境(Premise)

然后模型要给出计划(Plan),主要包括:地点、人物(名字、年龄,人物关系等)、故事大纲等。

然后根据故事大纲,每一点都按Draft,Rewrite,Edit的步骤走一遍。Draft是写草稿:

Rewrite主要保证草稿要有一定的连贯性和相关性。

Edit将草稿的内容与Plan中的设定做一些比较,查看是否出现偏差,例如性别、姓名之类的。当然还要保证整体连贯性。

Language Models as Zero-Shot Planners

这是一篇来自UC伯克利的文章:Language Models as Zero-Shot Planners: Extracting Actionable Knowledge for Embodied Agents

主要是让语言模型与虚拟世界的人物角色进行交互,上图中下达的指令为:获取一杯牛奶。这里涉及到两个难点:

1.如何自动根据大任务规划一系列子任务;
2.如何把子任务对应到可执行的动作。

模型整体框架如下:

第一步:动作规划

动作规划直接用LLM来完成,如上图左侧所示,先给出一个示例,告诉模型刮胡子分三个步骤,然后让大模型生成擦乳液需要什么步骤。下图给出了一些大模型生成步骤的例子:

当时GPT-3是最新的大模型,图中GPT-2表现最差,只生成了一个步骤就over了。

第二步:翻译步骤

由于生成的步骤在虚拟世界中不一定能够识别,因此需要进行将其翻译成虚拟角色可以识别的指令。做法很简单,就是将虚拟角色可以执行的指令全部列出来,将生成的步骤与指令列表做匹配 ,挑选相似度最高的来执行。例如框架图中的例子生成的步骤为:

Step 1: Squeeze out a glob of lotion

匹配到的指令为:

Step 1: Pour lotion into right hand

实验结果如下:

纵轴是步骤的正确性,横轴是步骤的可执行性。

步骤的正确性上GPT-3已经超过了人类灰色虚线,但其可执行性不行。

经过翻译后(实际上是匹配指令列表)的Translated GPT-3在正确性上有小许下界,但可执行性大大提高。

HuggingGPT

浙大的文章(但是严格说是微软的东东):HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

看文章题目就知道挺有意思。整体框架如下:

大体路线也是分解任务,执行任务,得到结果,但是在执行任务这块,这里使用了HuggingFace的外挂模型来帮忙,所以多了Model Selection这个步骤。

例子:

任务是:Please generate an image where a girl is reading a book, and her pose is the same as the boy in the image example.jpg, then please describe the new image with your voice.

一看这个任务就是精心设计的,分别涉及到人体姿势识别,图片生成,语音生成等子任务。

第一步:计划任务

从图中可以看到,每个子任务都有任务和参数,如子任务T1要做的是姿势检测,参数是example.jpg。

当然这些子任务不一定合理,例如T3和T4其实没有必要。

第二步:选择模型

先从HuggingFace找一系列候选模型,这些模型都会有Model Cards来进行描述。然后就是可以根据任务Query来匹配具体的模型。

第三步:执行任务

第四步:生成回答

将每个子任务的结果进行总结,让GPT生成最后的回答。

Language models can solve computer tasks

来自加州大学的文章:Language Models can Solve Computer Tasks,用语言模型来控制我们的电脑。

上图给出了很多例子,例如让鼠标点击灰色按钮,点赞,查询指定内容并选择某个查询结果,等等。

当然模型不可能像人一样用眼睛看屏幕,模型得到的输入是一个网页的HTML代码。模型的输出是控制鼠标、键盘完成相应动作。这里面涉及到控制鼠标、键盘的代码是用MiniWoB++(Mini World of Bits++)完成的。

从动作到具体鼠标键盘的指令是根据一段冗长的Prompt得到的(具体看原文的附录D):

例子:

任务是要使用终端删除一个后缀为.rb的文件。

第一步:计划。模型给出的计划是:

Here is a plan to solve the task using the instructions specified:

  1. Type “rm [filename]” command to delete the file ending with “.rb”.
  2. Press “enter” key

第二步:反省(这个步骤前面的模型都没有)。自己给自己下Prompt:Find problems with this plan. 得到如下结果:

This plan does not specify the filename of the file ending with the extension .rb. Without knowing the filename, the agent cannot delete the file.

可以看到,模型找到bug,要有文件名才能删除文件

第三步:改进。自己给自己下Prompt:Based on this, the improved plan for the agent to complete the task are as follows.

  1. Type “ls” command to list all files in the terminal.
  2. Type “rm [filename]” command to delete the file ending with “.rb”.
  3. Press “enter” key after typing each command to execute the command.

可以看到,这里加了一个步骤,就是先用ls查看有哪些文件。

到这里任务分解完成,但是分解后的子任务不一定能够执行,因此就进入下面粉色框框的内容。

这里是以改进结果的步骤2进行举例:

第一步:先问模型要干嘛

According to the current plan, the next proper instruction should be ‘type "rm [filename]"‘. \text{According to the current plan, the next proper }\ \text{instruction should be } \color{red}\text{type "rm [filename]".}According to the current plan, the next proper instruction should be ‘type "rm [filename]"‘.

第二步:根据当前的状态,判断要做的事情,获得State grounding

Considering the output on the webpage, the specific instruction for solving the task should be ‘type‘ instruction with "rm code.rb" command \text{Considering the output on the webpage, }\ \text{the specific instruction for solving the task should be}\ \color{red}\text{type instruction with "rm code.rb" command}Considering the output on the webpage, the specific instruction for solving the task should be‘type‘ instruction with "rm code.rb" command

第三步:生成具体可以执行的指令,获得Agent grounding

Therefore, the single instruction that matches one of the regular expressions is ‘type "rm code.rb"‘ \text{Therefore, the single instruction that matches}\ \text{one of the regular expressions is } \color{red}\text{type "rm code.rb"}Therefore, the single instruction that matchesone of the regular expressions is ‘type "rm code.rb"‘

可以看到,这个模型更加精致,不再像前面早期的模型在指令翻译上采用的匹配指令的方式。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号