所有文章 > AI驱动 > APIGen: 一场函数调用AI的革命,如何用6000万数据点打造超越GPT-4的LLM
APIGen: 一场函数调用AI的革命,如何用6000万数据点打造超越GPT-4的LLM

APIGen: 一场函数调用AI的革命,如何用6000万数据点打造超越GPT-4的LLM

导读:

人工智能快速发展的今天,函数调用智能体模型代表了一个重要进步,但训练这些模型面临着缺乏高质量、多样化数据集的挑战。本文介绍的APIGen框架旨在解决这一问题。文章详细介绍了APIGen的设计和实现,并通过实验证明了其有效性。使用APIGen数据集训练的模型在基准测试中表现出色,甚至超越了一些参数量更大的模型。本文为研究人员、开发者和AI爱好者提供了对函数调用数据集生成的深入见解,展示了这一技术在推动AI发展中的重要作用。©️【深蓝AI】编译

1. 摘要

函数调用智能体模型的进步需要多样化、可靠和高质量的数据集。本文提出了APIGen,这是一个自动化的数据生成管道,旨在为函数调用应用合成可验证的高质量数据集。我们利用APIGen收集了21个不同类别的3673个可执行API,以可扩展和结构化的方式生成多样化的函数调用数据集。我们数据集中的每条数据都通过三个层级的验证阶段:格式检查、实际函数执行和语义验证,确保其可靠性和正确性。我们证明,使用我们精心策划的数据集训练的模型,即使只有7B参数,也能在伯克利函数调用基准测试中实现最先进的性能,超越多个GPT-4模型。此外,我们的1B模型取得了卓越的性能,超过了GPT-3.5-Turbo和Claude-3 Haiku。我们发布了一个包含60,000个高质量条目的数据集,旨在推进函数调用智能体领域的发展。该数据集可在Huggingface 1和项目主页2上获取。

2. 引言

在人工智能的世界里,函数调用智能体正在掀起一场革命。

想象一下,你只需用日常语言询问Palo Alto的天气,AI就能自动调用相应的API,为你实时获取信息。这不再是科幻小说的情节,而是GPT4、Gemini等大型语言模型已经实现的现实。这项技术不仅让AI能够理解和生成人类语言,更能执行复杂的数字服务交互,从社交媒体到金融服务,应用范围广阔无边。
然而,这个令人兴奋的技术进步面临着一个不小的挑战。目前用于训练这些智能助手的数据集质量参差不齐,大多是静态的,缺乏全面验证。这就好比给一个学生一本过时的教科书,期望他能应对现实世界的所有挑战。结果可想而知,当这些AI遇到新的、未曾见过的API时,往往会手足无措。例如,一个主要训练用于餐厅预订的模型,突然被要求检索股市数据,很可能会一筹莫展。
为了解决这个问题,研究者们推出了APIGen,一个革命性的数据生成工具。
想象APIGen是一个超级智能的教育系统,不断生成各种真实、多样的”课程”来训练AI。更厉害的是,它生成的每一条数据都要经过严格的三重考验:格式是否正确,能否真正执行,以及语义是否合理。这就像是给学生们提供了一个动态更新的、经过反复验证的知识库,让他们能够更好地应对未来的挑战。
APIGen的效果令人瞩目。使用它生成的数据集训练出的AI模型表现惊人。一个仅有6.7B参数的模型就在Berkeley Function-Calling排行榜上名列前茅,超越了许多“大牌”模型。更令人惊讶的是,一个小小的1.3B参数模型竟然在某些任务上胜过了GPT-3.5-Turbo。这就像是一个受过良好训练的”轻量级”选手,在比赛中击败了一些重量级选手,充分证明了优质训练数据的重要性。
为了推动这一领域的进一步发展,研究团队慷慨地发布了一个包含60000条高质量数据的综合数据集。这个数据集涵盖了21个不同类别的3673个API,包括了各种查询风格,其中甚至有并行函数调用这样的高级技巧。这就像是为AI研究社区提供了一个丰富多彩的“训练场”,让更多研究者和开发者能够在此基础上创新和突破。
总的来说,APIGen的出现标志着函数调用AI领域的一个重要里程碑。它不仅提供了一种生成高质量、多样化训练数据的新方法,还通过实际训练的模型证明了这种方法的有效性。随着这项技术的不断发展,我们可以期待看到更多智能、灵活且功能强大的AI助手出现在我们的日常生活中,为我们提供更便捷、更智能的服务。这无疑是AI技术向着更实用、更贴近人类需求方向发展的一大步。
笔者本以为APIGen和API没什么关系,解读完Introduction还以为是Aotumated Pipeline的意思,经了解发现并非如此。
API是软件程序间通信的接口,定义了操作和数据交换的方式。作者提出的新模型(暂称APIGen)是一个生成高质量API调用训练数据的工具,帮助AI更好地学习使用各种API。然而,这个名称与API缩写相似,可能造成混淆。考虑到文章需要频繁使用API术语,为新模型选择一个更具区分度的名称可能更为合适,以避免读者混淆并更清晰地传达概念。

图1 | 基于LLM的函数调用代理的工作流程©️【深蓝AI】编译
函数调用智能体的工作流程,如图1所示,揭示了AI如何将自然语言请求转化为精确的API调用。从用户询问Palo Alto天气开始,AI需要理解问题,从多个可用函数中选择合适的API,正确构建函数调用(如get_weather:”Palo Alto”, “today”),处理返回的数据(75°F),最后生成一个全面而自然的回答。这个过程展示了AI在语言理解、函数选择、参数填充和结果解释等方面的复杂能力。
APIGen在这个过程中扮演着关键角色。它通过生成多样化、经过验证的训练数据,帮助AI模型学习如何准确选择和调用各种API,理解不同类型的查询,并将技术信息转化为用户友好的回答。APIGen的创新之处在于它不仅提供了大量数据,还确保了这些数据的真实性和适用性。通过这种方式,APIGen为构建更智能、更通用的函数调用智能体铺平了道路,使AI能够更好地理解和执行各种复杂的用户请求,从而在实际应用中发挥更大的作用。

3. 相关工作

本文简要概述了函数调用智能体领域的相关工作,分为三个关键方面:Tool-use Agent、Agent Datasets和Benchmarks。这些研究为我们的工作奠定了基础,同时也凸显了当前研究中存在的一些局限性。
●Tool-use Agent: 介绍了多个使LLMs能与APIs和工具交互的框架和模型,如RestGPT、Toolformer等。这些工作为本文的函数调用智能体提供了基础,但大多数没有公开其训练数据集。

●Agent Datasets:描述了几个支持agent模型开发的数据集,如AgentInstruct、APIBank等。这些数据集虽然涵盖多种API和场景,但大多未经严格验证,可能包含噪声数据。本文提出的APIGen旨在解决这一问题,提供高质量、经过验证的数据集。

●Benchmarks:介绍了评估agent能力的多个基准测试,包括AgentBoard、ToolEval和Berkeley FunctionCalling Leaderboard(BFCL)。本文选择BFCL作为测试平台,因为它提供了最全面的LLM函数调用能力比较。

4. 详解APIGen框架的多阶段数据验证过程

▲图2|后处理滤波器的示意图©️【深蓝AI】编译
APIGen是一个先进的框架,专注于生成高质量、可验证且多样的函数调用数据集。这些数据集主要用于大型语言模型的特定任务微调。为了确保数据集的质量和实用性,APIGen实施了一个精心设计的多阶段数据验证过程。该过程包括三个主要阶段:格式检查、执行检查和语义检查,每个阶段都对生成的数据进行细致的检验。

■4.1 数据生成与格式化

如图2所示,APIGen首先从多种API来源提取函数和示例查询-答案对,然后将它们格式化为标准的JSON格式,见图3。这一步骤确保了数据处理的标准化和后续操作的便捷性。

图3|JSON数据格式示例©️【深蓝AI】编译

■4.2 多阶段验证过程

●格式检查器:此阶段验证数据是否遵循正确的JSON格式,并检查是否包含所有必要的字段。这个基础检查帮助确保数据的结构正确无误。 
●执行检查器:在这一阶段,APIGen通过其API执行引擎运行函数调用,以验证其可执行性和错误处理机制。这一步骤关键地确保了函数调用的实际可用性和功能性。
●语义检查器:最后,APIGen通过语义检查来评估函数调用的结果是否与预设的查询意图一致。这不仅检测数据的准确性,还确保其与用户的实际需求对齐。
只有同时通过这三个阶段的数据点,才会被视为高质量,并重新加入种子数据集,以便未来使用。

■4.3 总结与潜在影响

这种细致的多阶段验证过程,可以比作是精心制作蛋糕的过程—从选择高质量的原料开始,到精确控制烘焙时间和温度,再到最后的装饰。每一步都旨在确保最终产品的完美。同样,APIGen的验证机制确保每个数据点都能达到最高标准,从而提供可靠的数据支持大型语言模型的特定任务微调。
这种方法不仅提高了数据的准确性多样性,还通过其标准化的格式实现了极高的扩展性,使得该框架能够轻松适应不同来源的API。对于开发者和研究人员来说,APIGen提供了一种强大的工具,用于创建和测试新的应用程序接口或为机器学习模型提供高质量的训练数据。这增强了模型在实际应用中的鲁棒性和可靠性,同时为特定领域应用提供了新的、可靠的数据准备方式。

5. 数据准备和收集流程

▲图4|3673个可执行API的类别分布©️【深蓝AI】编译

■5.1 数据源选择与初步处理

研究者从ToolBench数据集开始,这是一个包含16,464个REST API的大型集合。他们的目标是收集真实、可执行且文档完善的API。这个选择为研究奠定了实用性和多样性的基础。

■5.2 数据清理与优化

研究者进行了严格的数据清理过程,包括过滤低质量API、测试可访问性、重新生成文档等。这个过程确保了最终数据集的高质量和可用性。

■5.3 数据集多样性增强

除了REST API,研究者还加入了Python函数,涵盖了多个领域。他们还将重叠的类别整合成21个不同类别,提高了数据集的组织性和多样性。

■5.4 数据生成与验证

研究者使用多个大型语言模型(如DeepSeek和Mixtral系列)生成数据点。每个数据点都经过严格的三阶段验证:格式检查、执行检查和语义检查。这个过程确保了生成数据的高质量。

■5.5 模型性能比较

研究发现,更强大的模型(如DeepSeek-V2-Chat和Mixtral-8x22B-Inst)在生成高质量数据方面表现更好,通过率更高。这为未来的数据生成任务提供了valuable insights。
■5.6 最终成果与发布
研究者计划发布约60,000个高质量的函数调用数据集,涵盖3673个不同的API,跨越21个类别。这个数据集经过实际API验证,确保其有效性和实用性。

▲表1|使用不同基础大型语言模型生成的数据集过滤统计©️【深蓝AI】编译
该研究过程的意义:

●为API和函数调用研究提供了高质量、多样化的数据基础。

●展示了如何有效地利用大型语言模型生成和验证复杂数据集。

●强调了严格数据验证过程在AI数据集构建中的重要性。

●为未来的AI研究提供了宝贵的资源,可能促进这个领域的进一步发展。

●提供了构建和验证大规模AI数据集的方法论指导。

6. APIGen框架的卓越表现

▲表2|不同模型在BFCL排行榜上的性能比较(截至2024年6月15日):排名基于整体准确率,这是不同评估类别的加权平均值;”FC”表示函数调用模式,与使用定制的“提示”来提取函数调用相对比。详情见基准测试©️【深蓝AI】编译

■6.1 小型模型的惊人实力

xLAM-7B和xLAM-1B这两个模型在Berkeley Function-Calling Benchmark(BFCL)上的表现令人刮目相看。xLAM-7B(FC)在leaderboard上排名第6,超越了多个版本的GPT-4、Llama3-70B和Claude-3等知名大模型。更令人惊讶的是,仅有1B参数的xLAM-1B(FC)也取得了第24名的好成绩,击败了许多规模更大的模型,如Claude-3 Haiku、Command-R-Plus和Mistral-large等。这就像是一个业余选手在专业赛场上连续击败多位重量级选手,着实令人震惊。
值得一提的是,xLAM-7B在处理复杂的并行和多重函数调用场景时表现尤为出色。
在“Parallel”和“Parallel Multiple”这两个复杂类别中,xLAM-7B的得分分别达到了90%和87.5%,与顶级模型如GPT-4和Claude-3不相上下。这充分证明了该模型在处理复杂API调用任务时的卓越能力。

■6.2 数据质量的关键作用

▲图5|使用APIGen不同阶段数据集的性能比较。”+Fail Semantic Data”和”+Fail Execution Data”意味着将来自第3阶段和第2阶段的过滤数据集添加到训练集中©️【深蓝AI】编译

对于xLAM-7B来说,使用经过严格验证的高质量数据训练时,其在BFCL上的总体准确率为85.65%。但当加入未通过语义检查的数据后,准确率下降了4.06个百分点;进一步加入未通过执行检查的数据后,准确率又下降了1.88个百分点,最终降至75.71%。
xLAM-1B模型则表现出对数据质量更为敏感的特性。使用高质量数据时准确率为74.41%,但加入低质量数据后急剧下降,最终降至52.24%,总计下降了惊人的22.17个百分点。
这一结果有力地证明了高质量数据集的重要性。就像烹饪一样,精挑细选的新鲜食材远比大量普通食材更容易做出美味佳肴。同样,在AI训练中,精心筛选的高质量数据比简单堆砌大量数据更能提升模型性能。

7. 总结

本文介绍的APIGen框架通过多阶段验证过程生成可靠且多样化的函数调用数据集,实验结果证明了其有效性。这一成果对开发高效语言模型具有重大意义,表明高质量数据在获得优秀性能方面与模型规模同等重要。
APIGen的方法使较小的模型也能在复杂任务中表现出色,为AI助手开发提供了新思路。这不仅可能提高模型性能,还可能降低开发和部署成本,为AI的实际应用开辟新的可能性。
这项研究启示我们:提升模型性能不一定要依赖于增加模型规模,改进数据质量可能是一个更有效、更经济的方向。
尽管取得显著成果,当前版本仍存在一些局限性:

●仅考虑了REST API和Python函数。

●仅实现了单轮函数调用的生成程序。

未来研究方向将集中在:

●扩展APIGen以支持更多场景、编程语言和API类型。

●开发处理多轮交互和更复杂的智能体-工具交互的能力。

文章转自微信公众号@深蓝AI

#你可能也喜欢这些API文章!