Granite-Function Calling Model: Introducing Function Calling Abilities via Multi-task Learning of Granular Tasks

📄 arXiv: 2407.00121v1 📥 PDF

作者: Ibrahim Abdelaziz, Kinjal Basu, Mayank Agarwal, Sadhana Kumaravel, Matthew Stallone, Rameswar Panda, Yara Rizk, GP Bhargav, Maxwell Crouse, Chulaka Gunasekara, Shajith Ikbal, Sachin Joshi, Hima Karanam, Vineet Kumar, Asim Munawar, Sumit Neelam, Dinesh Raghu, Udit Sharma, Adriana Meza Soria, Dheeraj Sreedhar, Praveen Venkateswaran, Merve Unuvar, David Cox, Salim Roukos, Luis Lastras, Pavan Kapanipathi

分类: cs.LG, cs.AI, cs.CL

发布日期: 2024-06-27


💡 一句话要点

提出Granite-20B-FUNCTIONCALLING,通过多任务学习提升LLM函数调用能力。

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 大型语言模型 函数调用 多任务学习 智能体 自然语言处理

📋 核心要点

  1. 现有开源LLM在函数调用能力上与GPT等专有模型存在差距,限制了LLM在智能体应用中的潜力。
  2. GRANITE-20B-FUNCTIONCALLING通过多任务学习,同时训练LLM执行函数调用相关的多个细粒度任务。
  3. 实验结果表明,该模型在函数调用任务上取得了领先的开源模型性能,并具有良好的泛化能力。

📝 摘要(中文)

大型语言模型(LLMs)在智能体系统中展现出巨大潜力,但在复杂任务中,LLMs需要学会识别、调用外部工具和API才能充分发挥其自主能力,即函数调用。本文提出了GRANITE-20B-FUNCTIONCALLING模型,并以Apache 2.0许可开源。该模型采用多任务学习方法,针对函数调用中的七个基本任务进行训练,包括嵌套函数调用、函数链、并行函数、函数名检测、参数-值对检测、最佳函数选择和响应生成。在多个领域外数据集上的综合评估表明,GRANITE-20B-FUNCTIONCALLING在Berkeley Function Calling Leaderboard上表现优于所有开源模型,总体排名第四。由于模型训练使用了多样化的任务和数据集,GRANITE-20B-FUNCTIONCALLING在七个不同评估数据集上的多个任务中表现出更好的泛化能力。

🔬 方法详解

问题定义:论文旨在解决开源大型语言模型在函数调用能力上与闭源模型(如GPT系列)的差距问题。现有开源模型在识别、调用和与外部工具及API交互以完成复杂任务方面存在不足,限制了其在智能体应用中的潜力。

核心思路:论文的核心思路是通过多任务学习,让模型同时学习函数调用相关的多个细粒度任务。这种方法旨在提高模型对函数调用各个环节的理解和处理能力,从而提升整体的函数调用性能。通过同时优化多个相关任务,模型可以学习到更通用的函数调用知识,提高泛化能力。

技术框架:GRANITE-20B-FUNCTIONCALLING模型的训练框架基于多任务学习。具体来说,模型同时训练以下七个任务:嵌套函数调用、函数链、并行函数、函数名检测、参数-值对检测、最佳函数选择和响应生成。这些任务涵盖了函数调用的各个关键环节,例如识别需要调用的函数、提取函数参数、选择合适的函数以及生成最终响应。

关键创新:该论文的关键创新在于其多任务学习方法,它将函数调用分解为多个细粒度任务,并同时训练模型执行这些任务。这种方法与传统的单任务训练相比,能够更好地利用数据,提高模型的泛化能力和鲁棒性。此外,开源GRANITE-20B-FUNCTIONCALLING模型本身也是一个重要的贡献,为研究人员和开发者提供了一个高性能的函数调用模型。

关键设计:论文中没有详细描述具体的参数设置、损失函数或网络结构等技术细节。这些细节可能属于模型的内部实现,或者在其他相关的技术报告中有所描述。但是,可以推断,每个任务都可能对应着特定的损失函数,用于衡量模型在该任务上的表现。多任务学习框架会综合考虑所有任务的损失,并进行联合优化。具体的网络结构可能基于Transformer架构,并针对函数调用任务进行了优化。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

GRANITE-20B-FUNCTIONCALLING在Berkeley Function Calling Leaderboard上取得了领先的开源模型性能,总体排名第四。在七个不同评估数据集上的多个任务中表现出更好的泛化能力。这些结果表明,该模型在函数调用任务上具有很强的竞争力,并能够有效地处理各种不同的场景。

🎯 应用场景

该研究成果可广泛应用于智能体、自动化流程、自然语言接口等领域。例如,可以构建能够自动预订机票、查询天气、控制智能家居设备的智能助手。通过函数调用能力,LLM可以与各种外部工具和API集成,从而实现更复杂、更实用的功能。开源模型有助于推动相关技术的发展和应用。

📄 摘要(原文)

Large language models (LLMs) have recently shown tremendous promise in serving as the backbone to agentic systems, as demonstrated by their performance in multi-faceted, challenging benchmarks like SWE-Bench and Agent-Bench. However, to realize the true potential of LLMs as autonomous agents, they must learn to identify, call, and interact with external tools and application program interfaces (APIs) to complete complex tasks. These tasks together are termed function calling. Endowing LLMs with function calling abilities leads to a myriad of advantages, such as access to current and domain-specific information in databases and knowledge sources, and the ability to outsource tasks that can be reliably performed by tools, e.g., a Python interpreter or calculator. While there has been significant progress in function calling with LLMs, there is still a dearth of open models that perform on par with proprietary LLMs like GPT, Claude, and Gemini. Therefore, in this work, we introduce the GRANITE-20B-FUNCTIONCALLING model under an Apache 2.0 license. The model is trained using a multi-task training approach on seven fundamental tasks encompassed in function calling, those being Nested Function Calling, Function Chaining, Parallel Functions, Function Name Detection, Parameter-Value Pair Detection, Next-Best Function, and Response Generation. We present a comprehensive evaluation on multiple out-of-domain datasets comparing GRANITE-20B-FUNCTIONCALLING to more than 15 other best proprietary and open models. GRANITE-20B-FUNCTIONCALLING provides the best performance among all open models on the Berkeley Function Calling Leaderboard and fourth overall. As a result of the diverse tasks and datasets used for training our model, we show that GRANITE-20B-FUNCTIONCALLING has better generalizability on multiple tasks in seven different evaluation datasets.