An LLM-Tool Compiler for Fused Parallel Function Calling
作者: Simranjit Singh, Andreas Karatzas, Michael Fore, Iraklis Anagnostopoulos, Dimitrios Stamoulis
分类: cs.PL, cs.AI, cs.LG
发布日期: 2024-05-07
💡 一句话要点
提出LLM-Tool Compiler,通过运行时融合工具调用优化LLM Copilot性能
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: LLM 函数调用 工具融合 并行计算 Copilot 性能优化 运行时优化
📋 核心要点
- 现有LLM Copilot系统在处理复杂任务时,依赖多步骤API调用,导致高延迟和高成本。
- LLM-Tool Compiler通过运行时动态融合相似工具操作,减少API调用次数,提升并行化效率。
- 实验表明,LLM-Tool Compiler显著提升了并行调用数量,降低了token成本和系统延迟。
📝 摘要(中文)
大型语言模型(LLM)中先进的顺序推理已经扩展了Copilot的能力,使其超越了对话任务,能够处理复杂的函数调用,管理数千个API调用。然而,组合提示倾向于将任务分解为多个步骤,每个步骤都需要往返GPT API,这导致系统延迟和成本增加。虽然最近在并行函数调用方面的进展提高了每次API调用的工具执行效率,但它们可能需要在提示级别进行更详细的上下文指令和任务分解,从而导致更高的工程和生产成本。受到乘加(MAD)运算硬件设计原则的启发,我们提出了LLM-Tool Compiler,它在运行时选择性地融合相似类型的工具操作,将其作为统一的任务呈现给LLM。这种选择性融合固有地增强了并行化和效率。在一个大规模Copilot平台上进行基准测试,LLM-Tool Compiler实现了比现有方法多四倍的并行调用,分别降低了高达40%和12%的token成本和延迟。
🔬 方法详解
问题定义:现有基于LLM的Copilot系统在处理复杂任务时,通常采用组合提示的方式,将任务分解为多个步骤,每个步骤都需要调用外部工具API。这种串行化的调用方式导致了较高的系统延迟和token成本,成为制约Copilot性能的关键瓶颈。此外,为了实现并行函数调用,现有方法需要在prompt层面进行更细致的任务分解和指令设计,增加了工程和生产成本。
核心思路:LLM-Tool Compiler的核心思路是借鉴硬件设计中的乘加(MAD)运算,在运行时动态地将多个相似类型的工具操作融合为一个统一的任务,然后提交给LLM进行处理。通过减少API调用次数,提高并行化程度,从而降低延迟和成本。这种方法无需修改prompt,降低了工程成本。
技术框架:LLM-Tool Compiler作为一个中间层,位于LLM和外部工具之间。它主要包含以下几个模块:1) 工具操作分析模块:负责分析LLM生成的工具调用请求,识别相似类型的操作。2) 工具操作融合模块:根据预定义的规则,将相似的工具操作融合为一个新的操作。3) LLM交互模块:将融合后的操作提交给LLM,并接收LLM的响应。4) 结果解析模块:解析LLM的响应,并将结果返回给Copilot系统。
关键创新:LLM-Tool Compiler的关键创新在于其动态融合工具操作的能力。与传统的静态prompt工程方法不同,LLM-Tool Compiler能够在运行时根据实际的工具调用情况,自适应地进行融合,从而最大程度地提高并行化效率。此外,该方法不需要修改prompt,降低了工程成本。
关键设计:工具操作融合模块是LLM-Tool Compiler的关键组成部分。该模块需要定义一套规则,用于判断哪些工具操作可以进行融合。这些规则可以基于工具操作的类型、输入参数、输出结果等因素进行设计。此外,还需要设计一种机制,用于处理融合后的操作与原始操作之间的映射关系,确保结果的正确性。
🖼️ 关键图片
📊 实验亮点
实验结果表明,LLM-Tool Compiler在大型Copilot平台上实现了显著的性能提升。与现有方法相比,LLM-Tool Compiler实现了高达四倍的并行调用,降低了高达40%的token成本和12%的延迟。这些结果表明,LLM-Tool Compiler是一种有效的优化LLM Copilot性能的方法。
🎯 应用场景
LLM-Tool Compiler可广泛应用于各种基于LLM的Copilot系统,例如代码生成、数据分析、自动化运维等领域。通过降低延迟和成本,提高Copilot的响应速度和效率,从而提升用户体验。未来,该技术还可以扩展到其他类型的LLM应用中,例如智能客服、智能助手等。
📄 摘要(原文)
State-of-the-art sequential reasoning in Large Language Models (LLMs) has expanded the capabilities of Copilots beyond conversational tasks to complex function calling, managing thousands of API calls. However, the tendency of compositional prompting to segment tasks into multiple steps, each requiring a round-trip to the GPT APIs, leads to increased system latency and costs. Although recent advancements in parallel function calling have improved tool execution per API call, they may necessitate more detailed in-context instructions and task breakdown at the prompt level, resulting in higher engineering and production costs. Inspired by the hardware design principles of multiply-add (MAD) operations, which fuse multiple arithmetic operations into a single task from the compiler's perspective, we propose LLM-Tool Compiler, which selectively fuses similar types of tool operations under a single function at runtime, presenting them as a unified task to the LLM. This selective fusion inherently enhances parallelization and efficiency. Benchmarked on a large-scale Copilot platform, LLM-Tool Compiler achieves up to four times more parallel calls than existing methods, reducing token costs and latency by up to 40% and 12%, respectively.