COA:全参Finetune模型可以提高Agent应用工具调用能力

智能内容微服务机器学习
COA:全参Finetune模型可以提高模型工具调用能力

发布时间:2024 年 02 月 05 日

Agent 提示工程

为了实现符合人类预期的精准推理,大型语言模型(LLMs)必须将其推理建立在现实世界的知识基础之上,如网络信息、数学和物理定律等。工具的运用帮助 LLMs 获取这些外部知识,但在对 LLM 代理(如 Toolformer)进行微调以解决多步骤推理问题时,如何高效地规划和调用工具仍是一大挑战。本研究提出了一种创新的方法,旨在提升 LLMs 在多步骤推理中对工具的运用能力。我们的方法称为“抽象层次链”(Chain-of-Abstraction, CoA),它通过训练 LLMs 首先识别出带有抽象占位符的推理链条,随后调用专业工具来填充具体知识,以此实现每个推理链条。这种基于抽象链条的规划方式不仅让 LLMs 能够掌握更为通用的推理策略,增强了对领域知识变化(如数学计算结果)的适应性,同时也使得 LLMs 能够并行执行解码和调用外部工具的操作,有效避免了因等待工具响应而产生的推理延迟。在数学推理和 Wiki 问答等应用领域,我们的 CoA 方法在标准测试集和泛化测试集上均展现出了相较于传统思维链和工具辅助方法的显著优势,平均问答准确度提升了约 6%。此外,采用 CoA 方法训练的 LLM 代理在工具使用上更为高效,推理速度平均快了约 1.4 倍。

为什么要提出 COA?

大语言模型近年来取得了很大的进展,特别是代码解释、执行指令方面有很大的进展,但是仍然会有很大的犯错几率,比如:幻觉、计算错误等情况。为了解决这些问题,调用辅助工具,比如搜索、计算机等,就可以用来减少这些错误出现的概率。

也有很多研究工作聚焦于将 LLMs 转变为能够使用工具进行推理的系统。这些工作通过语境学习的方式来提高 LLM 调用工具的能力。但是通过语境学习 iCL 中提供多个示例的方式来提高 LLM 使用工具,也是有一些局限性的:比如,需要精心设计任务的特定提示,但是这受限于模型的能力。

所以为了解决这些局限性,有一些研究会通过微调来训练模型使用工具,从而更加稳定的提高模型的性能。比如 Toolformer,但是这类大语言模型在多步推理方面仍然存在很多问题。特别是在多步骤推理任务中,工具调用通常是交错进行的,即一个 API 调用的结果往往是下一个调用的查询的一部分。如果推理链中没有明确模拟这些相互联系,LLMs 就无法学会有效的工具使用规划,这会导致工具辅助推理的准确性下降。

也有一些研究是专注于把 LLM 于其他模块结合进行多步骤推理。比如,ReAct 和 FireAct 将 LLMs 与工具结合,形成一个包含思考、行动和观察步骤的闭环系统。这种冗长的推理循环不仅拖慢了 LLM 的解码速度,而且仍然通过顺序交互引入工具,导致推理效率不高。另一系列研究,如 PAL 和 Program of Thoughts,鼓励 LLMs 生成基于程序的推理并与代码执行器进行交互,但这些方法严重依赖于闭源的编码模型,如 Codex,且主要限于程序化算术推理。

在工具使用规划方面,以前的研究主要集中在 LLMs 上。例如,HuggingGPT、Chameleon、OpenAGI 和 MetaTool 等研究专注于规划使用多个工具,以解决跨领域的混合任务。同样,LATM、ML-BENCH 和 Gorilla 等研究聚焦于规划多个 API 的程序级集成,设计用于执行程序化任务的脚本,如根据 GitHub 仓库描述训练模型的脚本。ToolChain 结合了工具使用规划和基于树搜索的推理,这在程序化任务中特别有用。

所以作者提出了 COA(Chain-of-Abstraction,抽象链)框架,旨在提高 LLMs 在使用工具进行多步骤推理时的鲁棒性和效率,规划具有领域专业工具意识的通用思维链推理。

什么是 COA?

picture.image

上图展示了 COA 的全貌,如何利用工具进行抽象层次的推理。绿色框框里的是一个特定领域的问题,经过微调的大语言模型会先构建出一个抽象的多步推理链(蓝色气泡),然后利用外部工具对推理链条进行填充,得到橙色区域的具象化的推理链。基于这一系列推理链,最终得到了黄色气泡内的答案。

COA 首先对 LLM 进行微调,使其能够生成带有抽象占位符的推理链条,如 y1、y2 和 y3 等。作者也尝试了单字符格式的占位符,例如 α、β 和 γ,但效果并不理想。在第二阶段,通过将占位符替换为外部工具提供的具体领域知识来具体化每条推理链,这可能包括计算器的计算结果、网络搜索引擎检索的相关文章等。最终,根据填充了真实值后的推理链来解答问题。由于 LLMs 被训练用于生成抽象的推理链条,而非传统的带有明确数值的思维链(CoT)推理,这使得 LLMs 能够专注于学习一般性和全面性的推理策略,而无需为模型参数生成特定实例的知识。此外,将通用推理与特定领域知识的解耦,允许 LLM 解码过程与 API 调用(通过流水线)并行进行,并能够在不同样本间自如切换,即 LLM 可以在工具填充当前链的同时,开始生成下一个抽象链,从而加快了整个推理过程。

如何构建微调数据集

picture.image

在构建用于微调 LLMs 的 CoA 数据时,作者从现有的开源问答(QA)数据集中搜集了问答样本,并引导 LLaMa-70B 模型重写每个样本问题的答案,如上图所示。

引导 LLaMa-70B 识别标准答案中与知识操作相对应的部分(如数学推导、基于维基百科引用的陈述),并将这些部分作为可填写的 CoA 痕迹重写,其间操作结果被抽象的占位符所替代。例如,上图中的两个推导步骤分别被重写为“[20 + 35 = y1]”和“[90 − y1 = y2]”。

picture.image

上图展示了在数学推理领域构建微调数据的示例引导。当提出一个问题(Q)和标准答案(A)时,LLaMa-70B 被引导生成一个抽象的推理链条(C)。根据以上数据,训练大型语言模型(LLM)基于问题产生抽象链条,并通过使用领域工具(例如方程求解器)来具体化推理链条,从而推导出最终答案。

picture.image

上图展示了为 Wiki 问答领域的微调数据构建(表有点长,只截取了一部分)。面对一个问题(Q)、对应的标准答案(A)以及作为依据的维基百科文章(W),用 LLaMa-70B 来构建一个用于维基百科搜索和命名实体识别(NER)查询的抽象推理链条(C)。

需要注意的是,一个中间知识操作的结果可能在答案中多次出现,第一个等式的结果 55 被用在了第二个等式中。LLaMa-70B 将同一中间结果的所有实例替换为同一个占位符,以此明确关联多个推理步骤。为确保重写后的数据准确无误,利用领域特定的工具来核实每个 CoA 推理痕迹的正确性。

效果测试

如何评估

作者将抽象链(COA)这个思路在llama-7b和llama-70b上进行测试,包括llama和llama2两个版本。对照基准参考了以下几种方法:

  • • a) 利用从原始思维链数据集中随机抽取的8个问答实例进行少量样本提示(CoT-FSP);
  • • b) 使用原始思维链数据进行模型微调(CoT-FT)
  • • c) Toolformer,在CCNet文本基础上,通过API调用增强了LLMs的微调。
  • • d) 在Wiki问答的评估中,与FireAct进行了对比,FireAct是在从GPT-4中提取的HotpotQA ReAct轨迹上对LLMs进行微调的。

测评结果

数学推理

picture.image

上图展示了对LLaMa-2和LLaMa-2-Chat模型的评估成果。在GSM8K和ASDiv数据集上,CoA方法优于基于少量样本的CoT-FSP和常规微调的CoT-FT基线,表明CoA微调结合工具增强在适配LLMs进行多步推理任务方面的高效性。

同样,在对SVAMP和MAWPS这两个数据集进行评估时,CoA方法也持续超越了基线。CoT-FT相较于CoA的落后更为显著,特别是在7B模型上,这表明CoA推理在提供更分布鲁棒的推理性能方面更具优势。

CoA方法还超过了Toolformer这一工具增强方法,这暗示了在CoA中规划抽象变量能够提升使用工具进行推理的精确度。

由于Toolformer最初并未使用领域内微调数据进行训练,Toolformer在CCNet数据上进行微调,而这些数据不包含数学推理样本。因此在GSM8K和ASDiv的思维链数据上对Toolformer进行了微调,称之为Toolformer - Math。同样观察到CoA的性能优于Toolformer - Math,这证实了引入抽象变量相比直接在思维链推理中整合API调用,能够实现更为稳健的工具应用。

通过微调另一个LLM来解决方程(基于相同的模型框架),而不是调用方程求解器,以验证CoA方法的鲁棒泛化性能不仅仅来自于使用额外的工具,该方法标记为CoA (no Tool)。发现CoA (no Tool)在所有数据集上的表现一致不如CoA,这证实了使用专门工具使LLM代理能够执行更精细的操作,而非直接解决相同的操作。然而,CoA (no Tool)在对SVAMP和MAWPS数据集进行零样本泛化时,仍然超越了所有基线方法,这表明学习抽象推理链条也有助于提升CoA的鲁棒性,可能是因为更好地规划了由抽象变量索引的多个推理步骤。

picture.image

上图表明,当解决的问题需要构建较长的推理链条时,抽象链推理的优势尤为突出。上图对比了三组模型在GSM8K问答任务上的表现,并根据预测和标准答案推理链中的步骤数量进行了分层。与少量样本提示的CoT-FSP相比,CoA方法生成的推理链在长度上更频繁地与标准答案链相匹配,这一点从热图统计(左侧列)更集中于对角线附近得到了体现,与CoT-FT相当。

当模型生成的答案中的推理步骤与标准参照答案中的步骤数量一致时,问答准确度更高(即右侧列热图的对角线部分)。这些结果表明,经过微调的模型更擅长学习生成与问题真实推理链相匹配的推理链。

更有趣的是,CoA方法在处理需要更多推理步骤的问题时,相较于CoT-FT,展现出更高的性能,尤其是在那些金标准推理链超过3步的问题上(用红色方块标出)。这说明通过抽象规划训练出的模型在长推理链的能力上更为强大,这种能力是通过抽象规划学习得到的。

Wiki QA数据

picture.image

上表展示了利用LLaMa-2-Chat模型进行Wiki问答的成果。与数学推理相似,利用HotpotQA的领域内思维链数据对Toolformer的新版本进行了微调,称之为Toolformer - Wiki。在HotpotQA数据集上,CoA与标准答案的精确匹配率超过了基于少量样本或常规微调的基线方法。特别是在更富挑战性的桥接型问答任务中,CoA在所有基线方法中脱颖而出,这类任务涉及对维基百科知识的两个连续且相互交织的推理步骤,不同于可以独立并行处理的比较型问答任务。与FireAct微调相比,CoA在桥接型和比较型问答任务上均展现出更优异的性能,且无需依赖闭源GPT-4模型蒸馏的数据。

与数学推理场景相同,CoA代理在回答HotpotQA问题时,也展现出比Toolformer和FireAct代理更高的推理效率。

CoA在效率上(时间列)优于CoT-FSP和CoT-FT,因为CoA无需额外的少量样本输入,也不必生成长篇的维基百科文章,这些内容可以由搜索引擎直接提供。

最终,在其他Wiki问答数据集上的零样本泛化测试中,CoA也超越了所有基线方法,在NaturalQuestions和TriviaQA上表现最佳,并在WebQuestions上与最佳基线方法不相上下。

局限性

  • • 首先,用于测试的数据集并不能穷尽现实世界中所有的推理场景。选择了数学推理和维基百科问答这两个有代表性的领域,并以英语作为我们测试的主要语言。
  • • 此外,实验中所有模型均采用贪婪解码策略生成推断结果,这为未来应用更高级的解码策略,如自洽解码,提供了可能性。
  • • 最后,在完整微调LLM的设置下进行了测试,这需要大量的计算资源;而更高效的模型训练方案,如LoRA,将是未来工作的一个应用方向。

Arxiv

通往 AGI 的神秘代码
  
if like_this_article():  
    do_action('点赞')  
    do_action('再看')  
    add_wx_friend('iamxxn886')  
  
if like_all_arxiv_articles():  
    go_to_link('https://github.com/HuggingAGI/HuggingArxiv')    star_github_repo(''https://github.com/HuggingAGI/HuggingArxiv')
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动云原生降本增效实践
本次分享主要介绍字节跳动如何利用云原生技术不断提升资源利用效率,降低基础设施成本;并重点分享字节跳动云原生团队在构建超大规模云原生系统过程中遇到的问题和相关解决方案,以及过程中回馈社区和客户的一系列开源项目和产品。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论