LLMs使用工具

MRKL系统(Modular Reasoning, Knowledge and Language,发音为"miracle")是一种神经符号结构,将LLMs(神经计算)和外部工具(如计算器、符号计算等)结合起来,用于解决复杂问题。

MRKL系统由一组模块(例如计算器、天气API、数据库等)和一个路由器组成,负责将自然语言查询“路由”到适当的模块。

一个简单的MRKL系统示例是使用计算器应用程序的LLM。在这个单模块系统中,LLM充当路由器的角色。当询问"100*100是多少?"时,LLM可以从提示中提取数字,并指示MRKL系统使用计算器应用程序来计算结果。这可能如下所示:

100*100是多少?CALCULATOR [100*100]

MRKL系统将看到单词CALCULATOR,并将100*100插入计算器应用程序中。这个简单的想法可以很容易地扩展到各种符号计算工具。

考虑以下其他应用示例:

  • 一个聊天机器人,能够从用户的文本中提取信息,形成SQL查询,回答有关金融数据库的问题。
苹果公司股票现在的价格是多少?当前价格为DATABASE[SELECT price FROM stock WHERE company = "Apple" AND time = "now"]。
  • 一个聊天机器人,能够从提示中提取信息,使用天气API检索信息回答有关天气的问题。
纽约的天气怎么样?天气是WEATHER_API[New York]。
  • 或者更复杂的依赖多个数据源的任务,例如下面这个例子:

1.png

示例

在该系统中,您使用了Dust.tt来复现原始论文中的示例。该系统可以接收数学问题,例如"20乘以5的6次方等于多少?",然后提取其中的数字和运算符号,并将其格式化为计算器应用程序可以理解的形式,例如"20 * 5^6"。然后,该系统将重新格式化的方程式发送给Google的计算器应用程序,并获得结果。

请注意,原始论文中对路由器(LLM)进行了提示调整,但是在您的例子中没有进行提示调整。这意味着您的系统可以根据输入的数学问题进行灵活处理,而无需预先指定路由器如何处理特定类型的问题。

现在,我们可以一起看看您的示例MRKL系统是如何工作的:

首先,我在Dust的数据集选项卡中制作了一个简单的数据集。

2.png

然后,我切换到Specification选项卡,并使用data块加载了数据集。

3.png

接下来,我创建了一个llm块,用于提取数字和运算符号。请注意,在提示中,我告诉它我们将使用Google的计算器。我使用的模型(GPT-3)可能已经预先训练了一些关于Google计算器的知识。

4.png

然后,我创建了一个code块,其中运行一些简单的JavaScript代码来删除补全结果(completion)中的空格。

5.png

最后,我创建了一个search块,将重新格式化的方程式发送给Google的计算器。

6.png

下面我们可以看到最终的结果,全部都是正确的!

7.png

标签: prompt教程, prompt基础, prompt进阶, prompt应用, prompt核心, prompt提示, 提示工程, 提示工程师, prompt提示工程, prompt基础教程, prompt进阶教程, prompt高级教程, prompt核心教程, prompt代码教程, prompt菜鸟教程, prompt命令教程, prompt使用教程