Chamelon LLM: NEW Revolutionary Framework for Integrated LLM's
paper: [2304.09842] Chameleon: Plug-and-Play Compositional Reasoning with Large Language Models (arxiv.org)
代码: https://github.com/lupantech/chameleon-llm
译者序
我第一遍看完,觉得文章的方法和 langchain 没区别。
然后我重新看,看的时候在想:这篇文章的方法,和langchain 的区别是啥?我作为langchain应用的开发者,能从中借鉴到什么技巧?
我想到的“和 langchain的不同之处”包括:
-
有一个 planner, 生成 "plan for using tools"
例如:
虽然 langchain 也有"Plan and Execute"功能, 但是生成的 plan 里每一步是文字目标,不是 tool。例如:
我不确定这两种方式哪个好
对 planner 生成的plan做启发式验证
但文章中的方法不够聪明,作者会验证“plan的最后几步必须是x,y,z,否则视为无效plan”。这不如把x, y, z 这3个tools合并成一个,省去验证启发式验证的规则是针对每种数据集单独写的;验证不通过时,使用的默认plan也是针对每种数据集单独写的。
-
跑测试时,针对不同的数据集写不同的prompt。
以“Knowledge Retrieval 为例,不同的数据集有不同的 in-context example:
说实话,我怀疑这两点是最重要的。虽然这种 “chose benchmark-specific prompt
examples” 听起来有点投机取巧,但也许未来我们可以想一些更聪明的办法,自动生成适合数据集(适合用户query) 的 examples。
以下是正文翻译:
Abstract
大型语言模型(LLMs)在各种自然语言处理任务中取得了显著进展,并具有新兴能力。然而,它们面临着固有的局限性,例如无法访问最新信息,使用外部工具或进行精确的数学推理。在本文中,我们介绍了Chameleon,一种即插即用的组合推理框架,用于增强LLMs以帮助解决这些挑战。Chameleon综合了各种工具,包括LLM模型,现成的视觉模型,网络搜索引擎,Python函数和针对用户兴趣定制的基于规则的模块。建立在LLM之上作为自然语言规划器,Chameleon推断出要组合和执行的适当工具序列以生成最终响应。我们展示了Chameleon在两项任务上的适应性和有效性:ScienceQA和TabMWP。值得注意的是,使用GPT-4的Chameleon在ScienceQA上达到了86.54%的准确率,比最佳发表的少量拍摄模型显着提高了11.37%;使用GPT-4作为底层LLM,Chameleon比最先进的模型增加了17.8%,从而在TabMWP上获得了98.78%的总体准确率。进一步研究表明,使用GPT-4作为规划器展示出更一致和合理的工具选择,并能够根据指令推断潜在约束,与其他LLMs(如ChatGPT)相比。
Introduction
近期在大型语言模型(LLMs)中观察到了显著的进展,这些模型在各种自然语言处理任务中表现出色,例如 GPT-3 [4],PaLM [7],LLaMA [56],ChatGPT [35] 和最近提出的 GPT-4 [36]。LLMs 表现出了新的能力,包括上下文学习、数学推理和常识推理 [48]。这些模型能够在零样本设置中解决多种任务 [20] 或在少量示例的帮助下解决问题 [49],并且它们在规划和决策方面具有巨大潜力,类似于人类 [14]。然而,LLMs 也有固有的局限性,例如无法访问最新信息 [21]、使用外部工具 [43] 或进行精确的数学推理 [38, 30]。
为了解决 LLMs 的这些局限性,一个活跃的研究方向是通过访问外部工具和资源来增强语言模型,并探索外部工具和即插即用模块化方法的集成。例如,在网络搜索引擎和外部知识资源的帮助下,LLMs 能够访问实时信息并利用领域特定知识 [34]。为了增强数学推理能力,最近的工作使用 LLMs [5] 生成复杂程序来利用强大的计算资源,并更有效地执行逻辑推理任务 [47, 9, 6, 33, 15, 37]。另一条最近的研究方向,如 ViperGPT [45]、Visual ChatGPT [51]、VisProg [11] 和 HuggingGPT [44] 包含了一系列基础计算机视觉模型,以使 LLMs 具备执行视觉推理任务的能力。
尽管取得了重大进展,但当前工具增强型 LLMs 在处理现实世界查询时仍然面临着关键挑战。大多数现有方法要么仅限于少量工具 [33, 6, 47, 15, 37, 43],要么依赖于领域特定工具 [34, 52, 11, 51, 45],因此不易推广到不同类型的查询。考虑图1中的示例:“这则广告中使用了哪种主要说服力?”要回答这个问题,需要:1)推断出存在一个包含文本上下文的广告图像并调用文本解码器来理解语义;2)检索背景知识以澄清“说服力”的定义以及各种类型之间的差异;3)根据输入查询和前面步骤中的中间结果生成解决方案;4)最终以任务特定格式产生答案。另一方面,在回答“哪种动物的皮肤适应寒冷地区生存”时,可能需要调用其他模块,例如图像字幕生成器来解读图像,以及用于检索领域知识以理解科学术语的网络搜索引擎。
为了解决这些挑战,我们引入了Chameleon,一种即插即用的组合推理框架,它利用大型语言模型的能力。Chameleon能够合成程序来组合各种工具来应对广泛的查询。虽然它不需要任何训练,但Chameleon使用LLMs的上下文学习能力来生成这些程序。与现有方法[43 , 34 , 52 , 11 , 51, 45]不同,它采用了多种类型的工具,包括LLMs、现成的计算机视觉模型、网络搜索引擎、Python函数和针对特定定制任务的基于规则的模块。Chameleon建立在LLM之上作为自然语言规划器。通过对每个工具的描述和工具使用示例的提示,规划器可以推断出一个合适的工具序列来组合和执行,以生成用户查询的最终响应。与以前生成领域特定程序[34 , 45, 11]的工作不同,Chameleon生成类似自然语言的程序,这些程序更不容易出错、易于调试、对编程经验有限的用户友好,并且可以有效地扩展到使用新模块。在执行程序中每个模块时,该模块处理查询并缓存上下文,返回由模块本身确定的结果,并更新查询和缓存上下文以供后续模块执行。将模块组合为顺序程序,后续模块的执行可以利用先前缓存的上下文和更新后的查询。
我们展示了Chameleon在两项任务上的适应性和有效性:ScienceQA [27]和TabMWP [28]。ScienceQA是一个多模态问答基准测试,涵盖多种上下文格式和各种科学主题,而TabMWP是一个涉及多种表格上下文的数学基准测试。这两个基准测试是评估Chameleon协调不同类型和领域中各种工具能力的良好测试平台。值得注意的是,使用GPT-4作为底层LLM时,Chameleon在ScienceQA上取得了86.54%的准确率,比最佳发表过的少量样本模型提高了11.37%。在TabMWP上,使用GPT-4作为底层LLM时,Chameleon比CoT GPT-4提高了7.97%,比最先进的模型提高了17.8%,在TabMWP上总体准确率达到98.78%。进一步的研究表明,与其他大型语言模型(LLMs)如ChatGPT相比,使用GPT-4作为规划器能够更一致、更合理地选择工具,并能够根据指令推断潜在的约束。
总之,我们的贡献如下:(1)我们开发了一个即插即用的组合推理框架——变色龙,有效地利用大型语言模型来解决其固有的局限性并应对广泛的推理任务。(2)我们成功地整合了各种工具,包括LLMs、现成的视觉模型、网络搜索引擎、Python函数和基于规则的模块,以构建一个多功能、适应性强的人工智能系统来回答现实世界的查询。(3)我们展示了该框架在两个不同的基准测试——ScienceQA和TabMWP上的适应性和有效性,显著提升了现有技术水平。
2 Related Work
2.1 Large Language Models
近年来,大型语言模型(LLMs)的发展取得了巨大的进展,这一点从BLOOM [42]、PaLM [7]、Flan-T5 [8]、LLaMA [46]、GPT-3 [4]、ChatGPT [35]和GPT-4 [36]等模型中得到了证明。这些LLMs表现出了新兴的能力,包括在上下文中学习、数学推理和常识推理。像GPT-3和GPT-4这样的LLMs能够在零射击设置中或在少数例子的帮助下解决各种任务。链式思维(CoT)方法[49]指导LLMs通过生成中间推理步骤来分解复杂问题,然后得出最终答案。另一个活跃的研究领域是结合外部验证[39, 32]和人类反馈[35],使LLMs能够更可靠地执行并更好地与人类偏好保持一致。此外,最近的一项研究重点关注指令学习,要么通过生成高质量的指令数据[40],要么通过使用指令来提升语言模型,例如Flan-T5 [8]、LLaMA [46]、LLaMA-Adapter [56]和LLaVA [24]。我们提出的变色龙建立在这些工作的基础上,引入了一种通用方法,能够实现跨任务泛化,利用示范中的在上下文中学习,并整合外部工具的各种能力来解决复杂的推理问题。
2.2 Compositional Reasoning
Neural modular and compositional approaches have been explored to automatically perform desired sub-task decomposition, enhancing interpretability and adaptability across various reasoning tasks.
Early work [2, 3] posits that complex reasoning tasks are fundamentally compositional and proposes neural module networks (NMN) to decompose them into subtasks. However, these methods rely on brittle off-the-shelf parsers and are limited by module configurations. Some later work [16, 13, 12] takes a step further by predicting instance-specific network layouts in an end-to-end manner, without relying on parsers, using reinforcement learning [50] and weak supervised learning. In visual reasoning, models comprising a program generator and an execution engine have been proposed to combine deep representation learning and symbolic program execution [16, 53]. In the domain of mathematical reasoning, an interpretable problem solver has been developed to incorporate theorem knowledge as conditional rules and perform symbolic reasoning step by step [26].
神经模块和组合方法已经被探索用来自动执行所需的子任务分解,增强各种推理任务的可解释性和适应性。早期的工作[2, 3]认为复杂的推理任务本质上是组合的,并提出神经模块网络(NMN)将它们分解成子任务。然而,这些方法依赖于脆弱的现成解析器,并受到模块配置的限制。一些后来的工作[16, 13, 12]更进一步,通过使用强化学习[50]和弱监督学习,在端到端的方式中预测实例特定的网络布局,而不依赖于解析器。在视觉推理中,已经提出了由程序生成器和执行引擎组成的模型,将深度表示学习和符号程序执行结合起来[16, 53]。在数学推理领域,已经开发了一个可解释的问题求解器,将定理知识作为条件规则并逐步执行符号推理[26]。
Our work takes inspiration from neural module networks, yet it offers several distinct advantages. First, Chameleon does not require expensive supervision in the form of task-specific programs. Instead, it generates sequential programs, consisting of modules, that are easy to generalize to various domains and tasks, allowing for the extension to new modules in a plug-and-play manner. Second, Chameleon does not require any training, but uses the in-context learning capabilities of LLMs to generate programs prompted by natural language instruction and demonstrations.
我们的工作受到神经模块网络的启发,但它提供了几个独特的优势。首先,变色龙不需要以任务特定程序的形式进行昂贵的监督。相反,它生成由模块组成的顺序程序,易于推广到各种领域和任务,并允许以即插即用的方式扩展到新模块。其次,变色龙不需要任何训练,而是利用LLMs的在上下文中学习能力,在自然语言指令和演示的prompt下生成程序。
2.3 Tool-Augmented Language Models
Despite impressive performance of LLMs, they suffer from inherent limitations, such as the inability to access up-to-date information [21], utilize external tools [43], or perform precise mathematical reasoning [38, 30]. To address these shortcomings, there has been a growing interest in exploring the use of external tools and modular approaches to augment LLMs. These augmented LLMs can access real-time information aided by web search engines [34] and leverage domain-specific knowledge from external resources [54]. Some work leverages the Python interpreter to generate complex programs to employ powerful computational resources, and execute logical reasoning tasks more effectively [47, 9, 6, 33, 15, 37]. For example, Toolformer [43] constructs tool-use augmented data to train language models to select five tools. In the realm of visual tools, various approaches have been proposed to enhance the capabilities of large language models in handling visual tasks[52, 51, 45, 11, 44], augmented with Hugging Face models [44], Azure models [52], visual foundation models [51].
尽管LLMs的表现令人印象深刻,但它们也存在一些固有的局限性,例如无法访问最新信息[21],使用外部工具[43]或进行精确的数学推理[38, 30]。为了解决这些缺点,人们越来越多地探索使用外部工具和模块化方法来增强LLMs。这些增强型LLMs可以借助网络搜索引擎[34]访问实时信息,并利用外部资源[54]中的领域特定知识。一些工作利用Python解释器生成复杂程序,以使用强大的计算资源并更有效地执行逻辑推理任务[47, 9, 6, 33, 15, 37]。例如,Toolformer [43]构建了增强工具使用的数据,来训练语言模型选择五种工具。在视觉工具领域,已经提出了各种方法来增强大型语言模型处理视觉任务的能力[52, 51, 45, 11, 44],并与Hugging Face模型[44]、Azure模型[52]、视觉基础模型[51]等进行了增强。
We compare Chameleon with other tool-augmented language models in Table 1. Many of these approaches are either constrained to a small set of tools or limited to task-specific tools, which reduces their capabilities across various skill dimensions and hampers their generalizability to new tasks. A recent line of work relies on large amounts of supervision [43, 21] and focuses on generating commands [34] and programs [45, 11] to infer the choice of tools.However, this approach needs to carefully tailor prompts to specific tasks and particular tools, and is neither flexible nor adaptive. In contrast, Chameleon instructs LLMs with natural language instructions that simply describe the roles of each rule and provide a few calling examples, eliminating the need for additional training or tool-specific prompts when learning to compose different tools. More importantly, Chameleon offers users flexibility in terms of tool types and sources, updating the underlying LLMs, adding new tools, and adapting to new tasks by updating the instructions. Our work shares the same spirit of AutoGPT [41], an autonomous GPT-4 agent with the artificial general intelligence (AGI) ambition to incorporate numerous tools to achieve user-defined goals. While AutoGPT is still under development, our work is the first to instantiate the idea and verify its effectiveness on well-studied benchmarks.
我们在表1中将Chameleon与其他工具增强语言模型进行比较。其中许多方法要么仅限于一小组工具,要么仅限于特定任务的工具,这降低了它们在各种技能维度上的能力,并妨碍了它们对新任务的泛化能力。最近一系列研究依赖大量监督[43, 21]并专注于生成命令[34]和程序[45, 11]来推断工具选择。然而,这种方法需要仔细地将 prompts 定制为特定任务和特定工具,既不灵活也不适应性。相反,Chameleon使用自然语言指令指导LLMs,简单地描述每条规则的作用并提供一些调用示例,从而在学习组合不同工具时无需额外培训或特定于工具的提示。更重要的是,Chameleon为用户提供了工具类型和来源、更新底层LLMs、添加新工具以及通过更新指令来适应新任务的灵活性。我们的工作与AutoGPT [41]的精神相同,它是一个自主的GPT-4代理,具有人工通用智能(AGI)的雄心壮志,可以结合众多工具来实现用户定义的目标。虽然AutoGPT仍在开发中,但我们的工作是第一个实例化这个想法并在经过充分研究的基准测试中验证其有效性。
3. General Framework: Chameleon
Distinct from previous approaches, our Chameleon method is capable of synthesizing the composition of various tools to accommodate a wide range of problems. It employs a natural language planner, P, to generate a sequential program to select and compose modules stored in an inventory, M. Then, the program is executed to generate the answer.
与以往的方法不同,我们的Chameleon方法能够综合各种工具的组成来适应各种问题。它采用自然语言规划器P来生成一个顺序程序,以选择和组合存储在库存M中的模块。然后,执行该程序以生成答案。
我们将规划器形式化如下:给定输入查询x0,模块库存M和约束G,自然语言规划器P选择一组可以顺序执行以解决问题的模块。在我们的工作中,规划器P是一个LLM,被提示在少量拍摄设置中生成一系列模块名称(详见附录)。模块库存M由一组预先构建的模块组成:{Mi},每个对应于各种类型的工具(表2)。从P采样的T长度计划表示为p = M1 , . . . , MT ,其中Mt ∈ M。正式地,计划p如下生成:
p ← P(x0;M; G), (1)
其中G是计划生成的约束,x0是输入查询(问题陈述)。给定生成的计划,每个步骤的相应模块随后按顺序执行。在评估时间步长t的模块Mt时,执行输出yt通过计算:
yt ← Mt(xt−1; ct−1),(2)
其中xt−1是当前模块Mt的输入,ct−1是从历史模块收集的缓存信息。
4 Applications of Chameleon
We demonstrate the applications of Chameleon on two challenging reasoning tasks: ScienceQA
[27] and TabMWP [28]. The module inventory is introduced in subsection 4.1, and the specific
designs for these two tasks are presented in subsection 4.2 and subsection 4.3, respectively.
我们在两个具有挑战性的推理任务上展示了Chameleon的应用:ScienceQA [27]和TabMWP [28]。模块库存在4.1小节中介绍,这两个任务的具体设计分别在4.2小节和4.3小节中介绍。
4.1 Module Inventory
To accommodate various problem-solving capabilities over a diverse range of problems, it is necessary for our system to leverage a rich module inventory containing various external tools. In this section, we give a high-level description of the module inventory we used and defer the descriptions of detailed implementations to specific experiments. The complete module inventory, denoted as M, is presented in Table 2. Each tool within the inventory is defined as follows:
为了适应各种问题的各种解决问题能力,我们的系统必须利用丰富的模块库存,包含各种外部工具。在本节中,我们给出了我们使用的模块库存的高层次描述,并将详细实现的描述推迟到具体实验。完整的模块库存,表示为M,在表2中呈现。库存中的每个工具定义如下:
知识检索(Mkr):检索额外的背景知识对于帮助系统解决复杂问题至关重要。在这里,“知识检索”模块旨在以生成方式获得特定领域的知识,即提示LLMs为给定查询生成相关背景信息,如[45]所做。通常,此模块有助于提供有用的任务上下文以解决来自专业领域(如科学和数学)的问题。例如,如果一个问题是关于税表表格,那么该模块可以生成有关税收程序的知识,为手头任务提供宝贵的上下文。
Bing搜索(Mbs):与生成式“知识检索”类似,“Bing搜索”的目标是提供更广泛覆盖面的任务相关知识。与生成式“知识检索”模块不同,“Bing搜索”模块在需要更广泛信息或查询需要来自多个来源的最新信息时表现出其优势。我们使用搜索引擎API实现此模块,根据输入查询返回相关搜索结果。返回的结果可以由系统内其他模块解析并利用,以从多种来源收集更丰富的上下文信息,更有效地支持解决问题。
查询生成器(Mqg):通常,原始问题不包含任何用于从搜索引擎检索任务相关信息的定制查询。因此,查询生成器旨在根据给定问题创建搜索引擎查询,然后将其用作“Bing搜索”模块的输入。
在大多数情况下,在“Bing搜索”之前使用“查询生成器”模块是一个很好的策略。换句话说,与搜索引擎工具结合使用,生成更有针对性的查询通常有助于提高检索信息的召回率和精度。
图片标题生成器(Mic):此模块旨在为图像生成标题,可用于为给定问题提供额外的上下文。通常情况下,“图片标题生成器”在问题需要对图像进行语义理解时使用。通过利用预训练的图像字幕模型,“图片标题生成器”模块为输入图像生成字幕。
文本检测器(Mtd):此模块旨在识别给定图像中的文本。通常情况下,“文本检测器”在问题需要从包含图表、表格、地图或其他视觉元素的图像中提取文本信息时使用。通过有效地检测各种格式的文本,此模块有助于分析和理解基于图像的内容。
行查找(Mrl):在问题涉及表格上下文的情况下,定位相关单元格以回答问题通常是必要的。具有众多单元格的大型表格可能会分散系统在试图理解数据时的注意力。 “行查找”模块通过返回简化版本的表格来解决这一挑战,仅保留与问题相关的行。此模块接受问题和表格作为输入,并输出简化表格。如果所有行都相关,则返回原始表格。
列查找(Mcl):与“行查找”模块类似,“列查找”模块旨在通过关注相关列来处理涉及表格上下文的问题。此模块通过仅保留与问题相关的列来简化表格。如果所有列都相关,则保留原始表格。
表格转换器(Mtv):由于LLM是我们系统的基础,因此将结构化表格转换为文本可能会增强各种下游模块对表格信息的理解,如[31]所示,用于开放域问答。因此,引入该模块将表格转换为易于理解的描述,以供“程序生成器”和“解决方案生成器”等下游模块使用。当表格行数和列数较少且特定于领域时(例如茎叶图或函数表),通常会使用此模块。通过将表格数据转换为自然语言,此模块促进了后续模块更好地理解和处理。
程序生成器(Mpg):最近的研究表明,程序辅助方法能够改善大型语言模型[47,9,6,33,15,37]的逻辑和数学推理能力。 “程序生成器”模块根据问题和上下文生成可以有效解决给定问题的Python程序。当问题和上下文涉及复杂计算时(例如对多个数字进行算术运算),或当问题需要复杂逻辑运算时(例如“if-else”语句),此模块特别有用。
程序验证器(Mpv):最近的研究强调了验证生成对减少幻觉[39,32]的贡献。因此,“程序验证器”旨在确保“程序生成器”生成的程序有效且无错误。 “程序验证器”检查语法错误、逻辑错误和其他可能在程序执行期间出现的潜在问题,提高生成解决方案的整体可靠性和准确性。
程序执行器(Mpe):此模块执行“程序生成器”生成的程序并产生结果,弥补了程序生成和最终解决方案推导之间的差距。
Solution Generator (Msg): The “Solution Generator” module aims to generate a detailed solution to the input query, taking into account all the information stored in the cache. Employing a chain-of-thought prompting approach [49], this module ensures coherent and well-structured responses based on the available information. The planner relies on this module only if this module is powerful enough to solve the problem independently, especially for simple problems.
解决方案生成器(Msg): “解决方案生成器”模块旨在为输入查询生成详细解决方案,考虑缓存中存储的所有信息。采用链式思维提示方法[49],此模块根据可用信息确保响应连贯且结构良好。仅当此模块足够强大以独立解决问题时,规划器才依赖于此模块,特别是对于简单问题。
答案生成器(Mag):这个特定于任务的模块使用基于规则的方法从“程序执行器”或“解决方案生成器”生成的结果中提取并规范化答案。通常情况下,“答案生成器”模块作为我们的变色龙推理管道的最后一个模块,确保根据前面的步骤提供简洁、适当的响应。
4.2 Science Question Answering
科学问答(ScienceQA [27])是一个多模态问答基准,涵盖了各种科学主题和不同的背景。如图1所示,回答ScienceQA中的问题需要使用各种知识、工具和技能,例如图像字幕、文本检测、外部知识检索、在线资源搜索和基于多个线索的视觉推理。在生成使用工具的程序时,我们将搜索空间限制在整个库存的相关部分,如表3所列。
Programs are deemed invalid if the modules “Solution Generator” and “Answer Generator” are not the final two elements. Invalid programs are then set to the default program, consisting of a sequence of “Solution Generator” and “Answer Generator”, which refers to the chain-of-thought prompting baseline [49]. The constructed prompt for the natural language planner is displayed in Figure 6. The prompts for LLM-based modules, such as “Knowledge Retrieval”, “Query Generator”, and “Solution Generator” are shown in Table 7, Table 8, and Table 9, respectively.
如果模块“解决方案生成器”和“答案生成器”不是最后两个元素,则程序被视为无效。然后将无效程序设置为默认程序,由“解决方案生成器”和“答案生成器”的序列组成,它指的是链式思维提示基线[49]。自然语言规划器的构造提示显示在图6中。LLM-based模块(如“知识检索”、“查询生成器”和“解决方案生成器”)的提示分别显示在表7、表8和表9中。
4.3 Tabular Mathematical Reasoning
TabMWP [28] is a mathematical reasoning task on tables. There are diverse tabular contexts, including schedules, prices, tax forms, plots, and function relations. As the examples shown in Figure 2, this task requires AI systems to understand tables of various forms from different domains and perform
precise numerical/symbolic computations. Similar to ScienceQA, we again constrain the program search space to focus on two types of tools, particularly, 1) tools can help LLMs better digest tabular information, e.g., “Row Lookup”, “Column Lookup”, and “Table Verbalizer”; 2) tools can perform faithful symbolic computations, such as “Program Generator”, “Program Verifier”, and “Program
Executor”. The full list is shown on the right side of Table 3.
TabMWP [28] 是一个关于表格的数学推理任务。有各种各样的表格背景,包括时间表、价格、税表、图表和函数关系。正如图2中所示的例子,这个任务要求人工智能系统理解来自不同领域的各种形式的表格,并进行精确的数值/符号计算。与ScienceQA类似,我们再次将程序搜索空间限制在两种工具上,特别是1)可以帮助LLMs更好地消化表格信息的工具,例如“行查找”、“列查找”和“表格口语化”;2)可以执行忠实的符号计算的工具,例如“程序生成器”、“程序验证器”和“程序执行器”。完整列表显示在表3右侧。
The generated programs adhere to additional constraints, such as the inclusion of “Answer Generator”, the placement of “Program Generator” prior to “Program Verifier”, and the positioning of “Program Generator” before “Program Executor”. If these conditions are not met, the programs are regarded as invalid and set as a sequence of “Program Generator”, “Program Verifier”, “Program Executor”, and “Answer Generator”. This program corresponds to the program-of-thought prompting baseline [6] with added program verification.
生成的程序遵守额外的约束条件,例如包含“答案生成器”,在“程序验证器”之前放置“程序生成器”,并在“程序执行器”之前定位“程序生成器”。如果这些条件没有满足,那么这些程序被视为无效,并设置为“程序生成器”、“程序验证器”、“程序执行器”和“答案生成器”的序列。这个程序对应于带有程序验证的思维提示基线[6]。
5 Experiments
我们在两个复杂推理任务ScienceQA [27]和TabMWP [28]上进行实验,以评估我们的Chameleon在有效性和适应性方面的表现。
5.1 实验设置
规划器实现。构建基于LLM的规划器时,我们选择ChatGPT的gpt-3.5-turbo引擎和GPT-4的gpt-4引擎。生成的程序的最大长度设置为128,并且温度设置为0,以实现最确定性的生成。
Modules implementations. The “Bing Search” module calls the Bing Search API1 and returns the top three responses for the text query. For the “Image Captioner” module, we use the captioning model 2
to generate textual descriptions for input images. The maximum length of generated captions is set to 16, the number of beams is 4, and the maximum number of output tokens is 512. The “Text Detector” tool is based on the github model 3 to extract the text contents with coordinates in the image. The “Row Lookup” module is enabled only when there are more than three rows and 18 table cells, in order to accelerate inference. Similarly, the Column Lookup” module is enabled with two or more columns and 18 or more table cells. On ScienceQA, the Answer Generator” module extracts the answer snippet from the result provided by the Solution Generator” and selects the most similar option from the given choices. For TabMWP, the “Answer Generator” is used to normalize answers with two-place precision for questions with numerical answers and select the most similar option for multiple-choice questions. For more details, please refer to our code implementations at https://github.com/lupantech/chameleon-llm.
模块实现。 “Bing搜索”模块调用Bing搜索API1并返回文本查询的前三个响应。 对于“图像字幕器”模块,我们使用字幕模型2为输入图像生成文本描述。 生成的字幕的最大长度设置为16,光束数为4,输出令牌的最大数量为512。 “文本检测器”工具基于github模型3来提取图像中带坐标的文本内容。 只有当行数超过三行且表格单元格超过18个时才启用“行查找”模块,以加快推理。 同样,“列查找”模块在两列或更多列且18个或更多表格单元格时启用。 在ScienceQA上,“答案生成器”模块从“解决方案生成器”提供的结果中提取答案片段,并从给定选项中选择最相似的选项。 对于TabMWP,“答案生成器”用于将具有数值答案的问题的答案归一化为两位精度,并为多项选择题选择最相似的选项。 有关更多详细信息,请参阅我们在https://github.com/lupantech/chameleon-llm处的代码实现。
5.2 Experimental Results
ScienceQA。表4展示了现有基线和我们的Chameleon的结果,关键发现在图3(a)中突出显示。采用ChatGPT [35]作为基础LLM,我们的Chameleon实现了79.93%的总体准确性,比Chain-of-Thought(CoT)[49]提示的ChatGPT提高了1.62%。值得注意的是,Chameleon是CoT的一般形式,其中生成的程序是“解决方案生成器”和“答案生成器”的序列。Chameleon受益于额外工具的使用,例如“知识检索”,“Bing搜索”,“图像字幕器”和“文本检测器”。当建立在GPT-4 [36]之上时,我们的模型达到了86.54%的准确性,比GPT-4 CoT [27]高出2.55%,比GPT-3 CoT高出11.37%,在少量拍摄设置中创造了新的艺术状态。
TabMWP。结果显示在表5中,关键模型在图3(b)中突出显示。对于精细调整和少量提示模型,Chameleon都观察到了类似显着的改进。值得注意的是,CoT和Program-of-Thought(PoT)[6]都可以看作是Chameleon的特殊情况。具体来说,CoT不使用任何工具,而PoT仅依赖于我们库存中的符号编程工具,例如“程序生成器”,“程序执行器”和“答案生成器”。Chameleon(ChatGPT)分别比ChatGPT CoT和ChatGPT PoT提高了11.25%和3.79%,证明了我们丰富工具集的优势。通过使用GPT-4更新底层LLM,我们的Chameleon进一步获得了5.50%的收益,准确性达到98.78%。值得注意的是,我们的Chameleon(GPT-4)不仅超过了以前表现最佳的模型(Codex PoT-SC [6])17.0%,而且还超过了人类表现8.56%。
5.3 Qualitative Analysis
生成程序统计。变色龙利用基于LLM的自然语言规划器生成程序,即使用模块(工具)的序列。我们在表6中报告了由我们的变色龙生成的唯一程序数量的统计数据以及相应工具序列的平均长度。在ScienceQA和TabMWP上,使用GPT-4作为基础LLM生成的不同程序较少,即更一致的程序,而不是使用ChatGPT,即使在规划模型中给出完全相同的提示。我们的结果与[36]中的发现一致,该发现观察到GPT-4比其他LLM(如ChatGPT)具有更好地理解长上下文、与人类指令对齐和执行高级推理的能力。
工具使用规划。我们可视化了Chameleon(ChatGPT)和Chameleon(GPT-4)在ScienceQA(如图4所示)和TabMWP(如图5所示)上生成的程序中调用和未调用关键工具的比例。有趣的是,ChatGPT和GPT-4表现出不同的规划行为。通常,ChatGPT对使用或不使用某些工具有很强的偏见,这受到上下文示例中偏见的极大影响。例如,在ScienceQA上,ChatGPT在72%的查询中调用“知识检索”,但只在3%的情况下调用“必应搜索”;同样,ChatGPT严重依赖“行查找”(59%),但较少调用“列查找”(5%)。然而,当确定使用或不使用哪种工具时,GPT-4表现得更客观、更理性。例如,在回答ScienceQA上的科学问题时,GPT-4更频繁地调用“知识检索”(81% vs. 72%)并比ChatGPT更多地调用“必应搜索”(11% vs. 3%)。更令人印象深刻的是,GPT-4通过观察工具使用语言描述始终同时调用“查询生成器”和“必应搜索”,而ChatGPT缺乏这种推理能力。
我们通过图8和图9分别展示了Chameleon(GPT-4)在ScienceQA和TabMWP上生成的程序的模块转换图。这些图中的转换概率是根据这两个数据集的测试集上观察到的工具转换计算得出的。这些图表明,GPT-4规划器能够在少量样本的情况下做出良好的工具序列决策。例如,在ScienceQA上,Chameleon通常决定依赖知识检索器或Bing搜索,但很少两者都使用。在TabMWP上,我们观察到两种主要模式:要么通过解决方案执行器模块,要么通过程序验证器和执行器。
5.4 Case Study
图1中可视化了Chameleon(GPT-4)在ScienceQA上的三个示例。Chameleon(GPT-4)能够通过生成组合各种工具的程序并顺序执行它们以获得正确答案来适应不同的输入查询。例如,要回答第一个问题,“这个推力的方向是什么?”,系统调用图像字幕模型从图像中提取语义信息,并使用知识检索模型收集多模态推理的背景知识。在第二个示例中,自然语言规划器推断需要文本检测器工具来理解广告的上下文。在第三个示例中(附录中的图10提供了更多细节),查询问:“哪种动物的皮肤适应寒冷地方的生存?”,涉及与动物生存相关的科学术语。因此,规划器决定依靠Bing搜索引擎获取特定领域的知识,从众多在线资源中受益。
我们的Chameleon对于各种查询的适应性和多功能性也在TabMWP上得到了观察,如图2中的示例所示。第一个示例涉及税表上的数学推理。Chameleon(1)调用知识检索模型回忆有助于理解此类特定领域表格的基础知识,(2)以更易读的自然语言格式描述表格,并(3)最终依靠程序辅助工具进行精确计算。在第二个示例中,系统生成与知识检索模型提供的背景知识紧密对齐的Python代码。第三个示例要求系统在给定输入查询时在大型表格上下文中定位单元格。Chameleon调用行查找模型以帮助准确定位相关行并通过LLM模型生成语言解决方案,而不是依靠基于程序的工具。
6 结论
总之,我们引入了一种新颖的即插即用的组合推理框架,Chameleon,它利用大型语言模型来克服当前工具增强型LLM的固有局限性。我们的方法采用了多种工具,并在两个具有挑战性的基准测试ScienceQA和TabMWP上展示了令人印象深刻的适应性和有效性。通过在准确性方面取得显著提高,超过现有的少量拍摄和最先进的模型,Chameleon展示了其在解决各种领域实际查询方面的潜力。随着大型语言模型和工具集成研究的不断发展,我们预计我们的框架将为进一步创新提供基础,以追求更通用、更高效的解决复杂推理任务的方案。
7 Acknowledgment
We would like to thank Chunyuan Li, Qiuyuan Huang, and other members of the Deep Learning group at Microsoft Research for their valuable discussions.