ChatGPT和GPT-4等大型语言模型 (LLM) 已成为提高工作效率和更好地理解各种主题不可或缺的工具。从教育到软件开发,再到内容写作,LLM在众多领域崭露头角,它们在提炼和生成供人类使用的信息方面有着近乎神奇的能力。不过,尽管LLM的能力令人印象深刻,但它们在提供准确答案或执行需要精确知识的特定任务时,却常常比较吃力。例如,对于复杂的数学问题或者晦涩难懂的题目,往往会给出错误或不够充分的答案。出现这些局限性的主要原因是,LLM通常是使用过时的数据进行训练,以预测句子中下一个在统计上最有可能出现的单词,而不是通过推理找出正确答案。为了克服这些挑战并提高LLM的准确性,研究人员和开发人员正在创建工具,并更新了模型与工具互动的方式,以建立人工智能 (AI) 驱动的代理,使其能够与世界互动,获取更丰富的信息和专业知识。
LLM回答各种问题的能力近乎神奇。事实上,由于它们非常好用,人们已经越来越多地将其融入日常生活,以提高工作效率和加深对题目的理解;LLM将这些互动视为传统搜索引擎更加简洁明了的浓缩版。LLM正在进入教育领域,学生可以用它们更好地解释概念;LLM也在涉足软件开发领域,程序员可以用它们编写和理解代码片段。许多内容创作者和专业写作人士也在使用它们来完成摘要、文档写作和头脑风暴等任务。然而,底层AI在这其中的几种应用中却举步维艰,原因通常在于回答问题或完成特定的任务需要非常精确的知识。一些常见的例子包括,LLM无法给出数学问题的正确答案,或者对于一些非常冷门的问题,比如家乡小镇的历史或一些鲜为人知的名人,给出的多个答案往往大相径庭。
正如前面所说,之所以会出现这些错误,是因为LLM是使用互联网的大范围数据进行训练的,其目的是生成词链中下一个在统计上最有可能出现的词(图1)。基本上,它们已经记住了这些信息,但记忆方式极为粗糙 — AI的知识更像是许多主题的粗略近似。在训练模型的所有数据中,某项信息的代表性越低,模型正确再现该信息的可能性就越小。例如,这些LLM在看过许多文本数据点(如 1+1 = 2)后,会学习加法或减法的模糊表示,通常能用统计上可能的响应给出正确答案。但是,对于像649 152这样更复杂的输入(它们以前可能从未见过),给出的答案往往是错误的,原因可能是训练所使用的数据早于所需的答案,或所需的信息来自不为公众所知的来源(如网站数据库)。答案不准的例子可能包括酒店或航班的价格不准确,或者是给出了一年前正确但现在不正确的答案。为了规避这些限制,让AI能够在各式各样的应用中做出更准确的响应,我们正在设计一些工具,让LLM能够与周围的世界互动,以获取更丰富的信息和更对口的专业知识。
图1:LLM本身被训练成预测下一个在统计上最有可能出现的单词 — 由于拥有大量的训练数据,它们在这项任务中取得了成功。(图源:作者)
在LLM的世界里,工具是外部应用,模型以特定的方式与之交互,从而得出或验证特定的答案。最初的工具包括计算器、代码运行器和搜索引擎,但随着应用编程接口 (API) 插件、数据库和矢量存储连接等新工具的加入,以及图像到文本提取器等其他机器学习程序的出现,这些工具的数量与日俱增。前面提到的失败案例(如模型无法正确计算公式或对冷门问题回答错误)可以分别通过计算器或搜索引擎等工具来解决。为了正确回答问题,模型将利用可访问的工具,而不是完全依赖于它所学到的知识。当模型需要做一些计算、运行一些代码来保证准确性,利用用户数据回答问题,或响应用户通常利用网站提出的请求时,就会用到这些工具。
虽然这些工具看似简单,人类很容易理解并知道如何与之交互,但无论界面如何,AI模型都需要用代码封装现有工具(如计算器或网站API)并使之交互。特别是,工具需要受软件约束,其输入和输出可通过代码完成(图2)。例如,可以使用网站的API来代替用户界面,这样无需点击按钮或选中复选框,就能确保纯文本输入被发送到工具。工具信息的另一个重要部分是关于何时使用工具的说明,这一点很重要,因为它可以让模型了解工具的用途,以及有关何时不能使用该工具的具体说明。如果工具被过度使用,后者可能会有帮助。
图2:AI工具看起来就像软件功能,具有基于代码的输入、输出和使用说明。(图源:作者)
仅仅将面向人类的现有工具改写或包装成适合AI使用的工具是不够的。还要更新LLM用来决定何时与工具交互的提示流。这一过程将模型变成一个代理,它知道如何通过结合输入、提示指令和可使用的工具来生成正确的答案。与LLM的典型交互方式是编写一条供模型执行的特定指令,通常会举例说明对于特定类型的输入,响应应该是什么样的。开发这些指令的过程被称为“提示工程”。在教AI使用工具时,将扩展“提示工程”以包含模型为完成任务而应做出的一连串决定。使用像LangChain这样的软件库(在Python、JavaScript和其他编程语言中提供),用户可以将LLM(例如GPT-4)、一套工具(如计算器、代码编译器)与代理结构结合起来,构建可以使用工具的AI应用。更重要的是,它允许增加内存和响应链功能,从而实现更强大的能力。
例如,要回答“我们去年的收入除以销售量是多少?”这样的问题,就需要这种支持链式逻辑、使用多种工具的代理。首先,除法计算需要一个计算器,还需要一个查询程序与公司的数据库进行交互。其次,由于这是一个多步骤的问题,因此在提示代理时,必须观察它需要采取哪些步骤,比如查询去年的收入和销售量。根据这些观察结果,代理的内部提示将决定一项行动 — 例如,“使用查询工具搜索答案”。然后根据需要多次重复这一过程,直至获得最终答案。在这个案例中,有关去年收入和销售量的信息会触发代理的观察,即应该将二者相除来找到答案。而这反过来又会触发将二者输入计算器工具这个操作。由于没有更多的步骤发生,代理将认为它已经得到了最终答案,并将其提供给用户(图3)。将这一系列观察、操作和响应串联在一起,意味着LLM驱动的代理可以完成比单独使用LLM更为复杂的任务。
图3:具有特定提示流的代理能让LLM与工具进行交互。(图源:作者)
虽然ChatGPT和GPT-4等LLM彻底改变了检索和生成信息的过程,但对于需要精确知识的任务来说,它们仍有一定的局限性。不过,研究人员和开发人员通过将工具纳入LLM生态系统找到了解决方案。这些工具包括计算器、搜索引擎、API和数据库连接等,允许LLM与外部应用交互并获取更丰富的信息。利用这些工具,LLM可以克服自身的局限性,为各种应用提供更准确的回复。
要教会LLM有效地使用工具,就要更新它们的提示流,将它们变成智能代理。这将提示模型就何时与工具互动做出明智的决定,并将它们的输入、提示指令和对工具的访问相结合,生成正确的答案。未来,随着LLM的不断发展及其工具功能的扩展,会有更多令人印象深刻的应用和进步。通过挖掘LLM驱动的、可访问各种工具的代理的潜力,我们可以在提高生产力、解决问题和探索知识等方面解锁新的可能。LLM与工具之间的协同作用正在为人类与AI之间更智能、更高效的互动铺平道路。
作者简介
Becks是Rogo的全栈AI负责人,Rogo是一家总部位于纽约的初创公司,旨在构建一个平台,让任何人都可以在没有数据科学背景的情况下分析自己的数据并从中获得经验。在业余时间,她还与Whale Seeker合作,这是另一家运用AI对鲸鱼进行检测的初创公司,旨在让工业发展与这些温和的巨兽和谐共存。她从事深度学习和机器学习领域的工作,致力于研究新的深度学习方法并直接应用这些方法来解决现实世界的问题、构建渠道和平台来训练和部署人工智能模型,以及为初创公司的人工智能和数据战略提供咨询服务。