GPT-4如何使用多种工具来解决更复杂的任务?

最佳答案 匿名用户编辑于2023/04/12 09:19

下面分享一些例子,说明GPT-4能够依靠自己的能力 来理解手头的任务,识别所需的工具,以正确的顺序使用它们,并对它们的输出作出适当的反应。

黑客攻击。我们告诉GPT-4它可以在一个为数字取证和渗透测试而设计的Linux发行 版上执行命令,并让它负责入侵本地网络上的一台计算机。在没有任何信息的情况下,它能够制定并执行 一个计划,即扫描网络中的设备,确定一个目标主机,运行一个尝试普通密码的可执行程序,并获得对该机 器的root权限。虽然机器很容易被入侵,但我们注意到GPT-4精通Linux命令,能够运行适当的命令,解释其 输出,并进行调整,以解决其目标。ChatGPT拒绝执行这项任务,理由是它有可能是非法的。

通过命令行指令管理一个动物园。GPT-4在其训练数据中可能已经看到了前一个例子的近似拷贝。为 了检查它在一个肯定没有见过的任务上的工具使用情况,我们创造了一个新的场景,其中包括自然语言理解 和大量的命令行使用。在这个场景中,我们让GPT-4扮演一个动物园管理员的角色,完成一个文件中指定的 六个任务序列。为了完成这些任务, GPT-4必须操作代表不同动物、区域和动物园信息的文件和文件夹,这就要求它既要了解手头的任务(例 如,弄清楚哪些动物被错放在 "热带雨林 "中),又要了解适当的命令。 尽管挑战的范围很广(完成所有任务需要100多条命令),GPT-4能够解决几乎所有任务。它唯一的失败 是在回复邮件时编造内容,而不是从文件中读取指定的内容,这个问题通过对提示的简单调 整得到解决。虽然GPT-4经常显示出聪明才智(例如,手动运行广度优先搜索来浏览目录), 但它经常运行不正确的命令,例如删除一个名称中有空格的文件(例如,"Polar Bear.txt")而不加引号。 然而,考虑到系统的反应("找不到......"),它能够在没有人工干预的情况下自我纠正。有趣的是,GPT-4 在随后的带空格的文件中也犯了同样的错误(并且总是应用同样的修正),尽管它可以预测错误的命令会有 什么错误信息。我们的假设是,一旦建立了错误模式,它就会在其余的生成中重复这个模式,就像模拟一个 犯同样错误的用户一样。

管理日历和电子邮件。我们说明了GPT-4如何结合使用多种工具来管理用户的日历和电子邮 件。用户要求GPT-4协调与另外两个人的晚餐,并将其定在用户有空的那一天。GPT-4使用可用的API来检 索用户的日历信息,通过电子邮件与其他人协调,预订晚餐,并将细节信息发送给用户。在这个例子中, GPT-4展示了它结合多种工具和API的能力,以及对自由形式的输出进行推理,以解决一个复杂的任务(例 如,"星期二或星期三晚上 "与 "从星期一到星期四的任何一天 "以及用户在星期二很忙的事实相结合,得出星 期三是唯一可行的选择)。ChatGPT(未显示)无法完成同 样 的 任 务 , 而 是 写 了 一 个 函 数 , 其 中 "joe@microsoft.com "向 "luke@microsoft.com "发送了一个单一的日期,并检查响应是否包含标记 "是"。当 其函数的输出被赋予时,ChatGPT也无法做出回应。

浏览网页获取信息。GPT-4使用搜索引擎和SUMMARIZE函数(下载网页并调用 自身来总结手头的问题)来浏览网页并回答问题。在这两种情况下,GPT-4能够识别相关的搜索结果,以便 更深入地查看,总结这些结果,并提供准确的答案,即使问题包含一个错误的前提。虽然先前版本的LLMs 也可以被教导浏览网络[NHB +21],但我们注意,GPT-4能够做到这一点,不需要任何微调或演示。

使用不寻常的工具,一个失败的案例。 我们要求GPT-4使用一个非常不寻常的API来解决 一个简单的任务。GPT-4没有适应不寻常的函数,而是把它们当作通常的版本来调用,也就是说,它把反向 获取字符当作获取字符来调用,把反向连接当作简单连接来调用。ChatGPT产生了同样的功能,只是它不 检查单词的长度是否大于或等于3。然而,当用户说有错误时,GPT-4能够发现并修复它们,而ChatGPT( 未显示)在同样的提示下不能发现或修复自己的错误。