GraphRouter: A Graph-based Router for LLM Selections

📄 arXiv: 2410.03834v2 📥 PDF

作者: Tao Feng, Yanzhen Shen, Jiaxuan You

分类: cs.AI

发布日期: 2024-10-04 (更新: 2025-03-17)

🔗 代码/项目: GITHUB


💡 一句话要点

GraphRouter:一种基于图的LLM选择路由方法,提升性能并降低成本。

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

关键词: 大型语言模型选择 图神经网络 异构图 边预测 上下文学习

📋 核心要点

  1. 现有LLM选择方法难以泛化到新模型和任务,因为它们对上下文交互利用不足,且依赖于转导学习。
  2. GraphRouter构建异构图,利用任务、查询和LLM之间的上下文信息,通过边预测机制优化LLM选择。
  3. 实验表明,GraphRouter在性能上超越现有方法至少12.3%,并在新LLM设置中泛化能力更强,效果提升至少9.5%。

📝 摘要(中文)

随着大型语言模型(LLM)的数量和种类迅速增长,如何为给定查询高效地选择合适的LLM面临着重大挑战,尤其是在性能和计算成本之间进行权衡时。现有的LLM选择方法由于其利用任务、查询和LLM之间上下文交互的能力有限,以及对转导学习框架的依赖,通常难以推广到新的LLM和不同的任务。为了解决这些缺点,我们引入了一种新颖的归纳图框架,名为GraphRouter,它充分利用任务、查询和LLM之间的上下文信息来增强LLM选择过程。GraphRouter构建了一个包含任务、查询和LLM节点的异构图,并将交互表示为边,从而有效地捕获查询需求和LLM能力之间的上下文信息。通过创新的边预测机制,GraphRouter能够预测潜在边的属性(LLM响应的效果和成本),从而实现优化推荐,以适应现有和新引入的LLM,而无需重新训练。在三种不同的效果-成本权重场景下进行的全面实验表明,GraphRouter大大超过了现有的路由器,至少提高了12.3%的性能。此外,它还在新的LLM设置中实现了增强的泛化能力,并支持各种任务,在效果方面至少提高了9.5%,并显著降低了计算需求。这项工作致力于应用基于图的方法进行LLM的上下文和自适应选择,为实际应用提供见解。GraphRouter的代码已发布在https://github.com/ulab-uiuc/GraphRouter。

🔬 方法详解

问题定义:论文旨在解决大型语言模型(LLM)选择问题,即如何根据给定的查询,在众多LLM中选择最合适的模型。现有方法的痛点在于泛化能力差,难以适应新的LLM和任务,并且无法充分利用任务、查询和LLM之间的上下文信息,导致选择效率和效果不佳。

核心思路:论文的核心思路是将LLM选择问题建模为一个图上的边预测问题。通过构建一个异构图,将任务、查询和LLM表示为节点,它们之间的交互关系表示为边。然后,利用图神经网络学习节点的表示,并预测边的属性(例如,LLM响应的效果和成本),从而选择最优的LLM。这种方法能够充分利用上下文信息,并具有较强的泛化能力。

技术框架:GraphRouter的整体框架包括以下几个主要模块:1) 图构建模块:构建包含任务、查询和LLM节点的异构图,并根据它们之间的关系添加边。2) 图神经网络模块:使用图神经网络(例如,GraphSAGE)学习节点的表示。3) 边预测模块:基于节点表示预测边的属性(效果和成本)。4) LLM选择模块:根据预测的边属性,选择最优的LLM。整个流程是端到端可训练的。

关键创新:GraphRouter的关键创新在于将LLM选择问题建模为一个图上的边预测问题,并利用图神经网络学习节点表示和预测边属性。这种方法能够充分利用上下文信息,并具有较强的泛化能力。与现有方法相比,GraphRouter不需要针对每个新的LLM或任务进行重新训练,而是可以通过学习到的图结构和节点表示,快速适应新的场景。

关键设计:在图构建模块中,论文使用了多种类型的边来表示任务、查询和LLM之间的关系,例如,任务-查询边表示查询属于哪个任务,LLM-查询边表示LLM对查询的响应。在图神经网络模块中,论文使用了GraphSAGE来学习节点表示,并使用均方误差损失函数来训练模型。在LLM选择模块中,论文根据预测的效果和成本,使用加权平均的方法选择最优的LLM。具体的权重可以根据实际需求进行调整。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,GraphRouter在三个不同的效果-成本权重场景下,性能均优于现有的LLM选择方法,至少提高了12.3%。此外,GraphRouter在新LLM设置中表现出更强的泛化能力,并且在各种任务中,效果至少提高了9.5%,同时显著降低了计算成本。这些结果表明,GraphRouter是一种高效且通用的LLM选择方法。

🎯 应用场景

GraphRouter可应用于各种需要动态选择LLM的场景,例如智能客服、内容生成、代码生成等。它可以根据用户的具体需求和LLM的性能特点,自动选择最合适的LLM,从而提高用户体验和效率。此外,GraphRouter还可以用于LLM的评估和管理,帮助用户了解不同LLM的优缺点,并根据实际需求进行选择。

📄 摘要(原文)

The rapidly growing number and variety of Large Language Models (LLMs) present significant challenges in efficiently selecting the appropriate LLM for a given query, especially considering the trade-offs between performance and computational cost. Current LLM selection methods often struggle to generalize across new LLMs and different tasks because of their limited ability to leverage contextual interactions among tasks, queries, and LLMs, as well as their dependence on a transductive learning framework. To address these shortcomings, we introduce a novel inductive graph framework, named as GraphRouter, which fully utilizes the contextual information among tasks, queries, and LLMs to enhance the LLM selection process. GraphRouter constructs a heterogeneous graph comprising task, query, and LLM nodes, with interactions represented as edges, which efficiently captures the contextual information between the query's requirements and the LLM's capabilities. Through an innovative edge prediction mechanism, GraphRouter is able to predict attributes (the effect and cost of LLM response) of potential edges, allowing for optimized recommendations that adapt to both existing and newly introduced LLMs without requiring retraining. Comprehensive experiments across three distinct effect-cost weight scenarios have shown that GraphRouter substantially surpasses existing routers, delivering a minimum performance improvement of 12.3%. In addition, it achieves enhanced generalization across new LLMs settings and supports diverse tasks with at least a 9.5% boost in effect and a significant reduction in computational demands. This work endeavors to apply a graph-based approach for the contextual and adaptive selection of LLMs, offering insights for real-world applications. Our codes for GraphRouter is released at https://github.com/ulab-uiuc/GraphRouter.