Gorilla: Large Language Model Connected with Massive APIs

字段 内容 ------ ------ 标题 Gorilla: Large Language Model Connected with Massive APIs 作者/机构 Shishir G. Patil、Tianjun Zhang、Xin Wang、Joseph E. Gonzalez 发表时间 2023-05-…

目录
  1. Gorilla: Large Language Model Connected with Massive APIs
  2. 元信息
  3. 一句话总结
  4. 研究背景与动机
  5. 核心贡献
  6. 方法 / 系统架构
  7. 实验与评估
  8. 主要结论与洞察
  9. 局限性与未来工作
  10. 与本 Awesome List 的关联
  11. 相关条目交叉引用
  12. 参考文献
  13. 深度分析附录
  14. 技术脉络定位
  15. 相关工作纵览
  16. 工程落地检查清单
  17. 从摘要到实现的鸿沟
  18. 术语表
  19. 对本库读者的行动建议
  20. 英文摘要(原文保留)

Gorilla: Large Language Model Connected with Massive APIs

元信息

| 字段 | 内容 | |------|------| | 标题 | Gorilla: Large Language Model Connected with Massive APIs | | 作者/机构 | Shishir G. Patil、Tianjun Zhang、Xin Wang、Joseph E. Gonzalez | | 发表时间 | 2023-05-24 | | 来源链接 | https://arxiv.org/abs/2305.15334 | | 资源类型 | 学术论文 | | 所属章节 | FreshLLM and similar architectures (LLM and large scale search) |

一句话总结

该工作围绕「Gorilla: Large Language Model Connected with Massive…

研究背景与动机

在大规模搜索、推荐与个性化系统中,information retrieval 长期面临效率、可扩展性与用户意图理解等挑战。传统流水线式方法往往将检索、排序与生成割裂处理,难以适应大语言模型(LLM)时代用户对自然语言交互、多跳推理与实时知识的综合需求。Gorilla: Large Language Model Connected with Massive APIs 正是在这一背景下提出,旨在系统梳理或推进该交叉领域的理论与实践边界。 从问题定义看,论文关注的核心场景包括:开放域信息获取、企业知识检索、对话式搜索、推荐系统中的语义理解,以及将外部知识源与生成模型协同的端到端架构。英文摘要指出:Large Language Models (LLMs) have seen an impressive wave of advances recently, with models now excelling in a variety of tasks, such as mathematical reasoning and program synthesis. However, their potential to effectively use tools via API calls remains unfulfilled. This is a challenging task even for today's state-of-the-art LLMs such as GPT-4, largely due to their inability to generate accurate input arguments and their tendency to hallucinate the wrong usage of an API call. We release Gorill…

核心贡献

  • 提出或归纳了面向该问题域的统一视角,将分散的相关工作纳入可比较的框架之中。
  • 对方法组件(表示学习、检索器、重排器、规划器、生成器、反馈机制)给出清晰分解,便于工程落地。
  • 在实验协议或综述覆盖上提供可复现的基准、数据集或分类表,降低后续研究者的入门成本。
  • 讨论与 LLM 工具调用、强化学习、多智能体协作等新兴范式的接口,指出从研究原型到工业系统的迁移路径。
  • 明确列出开放问题:评测可信度、延迟与成本、幻觉与安全、跨语言与多模态扩展等。

方法 / 系统架构

方法上,工作通常遵循「问题形式化 → 模型/系统设计 → 训练或构建流程 → 推理管线」四步。 1. 输入与表示:将查询、文档、用户上下文编码为稠密或稀疏表示,或构造结构化提示; 2. 核心模块:可能包含检索器、重排器、规划器、记忆模块、工具接口等,按任务串联或并联; 3. 学习策略:监督微调、对比学习、蒸馏、强化学习(含过程奖励)、自举数据合成; 4. 推理策略:单轮检索、迭代检索、并行子查询、早停与预算控制。 摘要所描述的技术路线可概括为:Large Language Models (LLMs) have seen an impressive wave of advances recently, with models now excelling in a variety of tasks, such as mathematical reasoning and program synthesis. However, their potential to effectively use tools via API calls remains unfulfilled. This is a challenging task even for today's state-of-the-art LLMs such as GPT-4, largely due to their inability to generate accurate input arguments and their tendency to hallucinate the wrong usage of an API call. We release Gorilla, a finetuned LLaMA-based model that surpasses the performance of GPT-4 on writing API calls. When combined with a document retriever, Gorilla demonstrates a strong capability to adapt to test-time document changes, enabling flexible user updates or version changes. It also substantially mitigates the issue of hallucination, commonly encountered when prompting LLMs directly. To evaluate the model's ability, we introduce APIBench, a comprehensive dataset consisting of HuggingFace, TorchHub, and TensorHub APIs. The successful integration of the retrieval system with Gorilla demonstrates the potential for LLMs to use tools more accurately, keep up with frequently updated documentation, and consequently increase the reliability and applicability of their outputs. Gorilla's code, model, data, and demo are available at https://gorilla.cs.berkeley.edu

实验与评估

实验与评估部分(若原文为综述则为覆盖的基准与趋势)通常包括:
  • 数据集:MS MARCO、BEIR、Natural Questions、领域专有语料、推荐公开集等;
  • 指标:nDCG@10、MRR、Recall@k、Hit@k、人类偏好、任务成功率、延迟与 token 成本;
  • 对比基线:BM25、稠密检索、交叉编码器重排、无检索 LLM、商业搜索 API;
  • 消融:验证各模块(检索步数、重排深度、训练数据规模)对最终质量的贡献。
具体数值结果需以原文表格为准;本报告基于摘要与公开元数据归纳实验设计逻辑,建议在引用定量结论时核对 PDF 原文。

主要结论与洞察

对 Search / Rec / Personalization 领域的启示: 1. 架构:级联检索+重排+生成仍为主流,但 agentic 范式正将“检索次数与策略”本身作为可学习对象; 2. 数据:高质量指令数据与点击/会话日志同样关键,合成数据需防知识泄漏与分布偏移; 3. 评测:离线指标与在线满意度差距拉大,LLM-as-judge 需与人工评估交叉验证; 4. 产品:延迟、成本、可解释性与安全策略是工业落地的硬约束,不可仅优化学术基准。

局限性与未来工作

局限性可能包括:实验规模受 GPU 预算限制、基准与真实用户分布不一致、英文中心数据导致跨语言泛化未知、以及代理系统在开放网络上的安全风险。未来可探索更高效的 test-time compute 分配、与知识图谱/结构化数据库更深融合、以及面向推荐系统的因果与公平性约束。

与本 Awesome List 的关联

该条目适合归入本 Awesome List 对应章节,并与同主题 Survey、开源框架及工业案例交叉索引。读者可沿「检索 → 排序 → 生成/代理 → 评测」链路定位互补文献。

相关条目交叉引用

参考文献

  • 原文:Gorilla: Large Language Model Connected with Massive APIs. arXiv / 出版源见链接。
---

深度分析附录

技术脉络定位

本工作处于 information_retrieval 与大规模搜索/推荐系统交叉地带。从系统视角看,它回应的是「如何在 LLM 时代重新分配检索、排序、生成与工具调用的职责边界」这一核心问题。若将经典搜索栈比作漏斗:召回负责覆盖,精排负责判别,生成负责呈现;而 LLM 时代的新增变量是 推理预算 与 行动空间(是否检索、检索几次、调用何种工具)。

相关工作纵览

神经信息检索经历从 BM25 到 BERT 交叉编码器、双塔稠密检索、late interaction、再到生成式检索与 LLM 代理的演进。每一代方法都在 效率-效果-可维护性 三角中寻找平衡。稠密检索以近似最近邻搜索实现毫秒级召回,但对领域迁移与长尾查询敏感;交叉编码器精度高但无法预计算文档表示;生成式方法减少级联误差却面临索引更新难题。 在推荐侧,从矩阵分解、深度 CTR、序列 Transformer 到 LLM 指令跟随与生成式推荐(Gen-Rec),核心矛盾在于:用户行为稀疏、物品_catalog_巨大、且业务目标多维权衡。LLM 提供语义先验与冷启动能力,但线上推理成本与幻觉风险要求谨慎的系统设计。 RAG 与 Agentic Search 将外部知识访问从「一次性检索」扩展为「可迭代、可验证、可规划」的过程,评测也因此从静态 nDCG 转向任务成功率、引用准确率、多跳推理链完整性等过程指标。

工程落地检查清单

| 检查项 | 问题 | 建议 | |--------|------|------| | 数据 | 训练/索引是否含 PII?版本如何管理? | 分区索引、脱敏、可回滚 embedding 版本 | | 延迟 | p99 预算多少?检索几步? | 级联+早停、缓存热门查询、异步重排 | | 质量 | 离线提升是否转化为线上 CTR/满意度? | 交错实验、人工审计样本、引用校验 | | 安全 | 开放检索是否引入投毒/偏见? | 来源白名单、对抗检测、输出过滤 | | 成本 | 每查询 token 与 GPU 占用? | 路由小模型、蒸馏、稀疏+稠密混合 |

从摘要到实现的鸿沟

论文摘要往往强调最优指标,但工程团队需额外评估:索引更新频率、embedding 版本兼容、线上 A/B 的灵敏度、以及失败模式(空检索、错误工具调用、过度生成)。建议读者将本文与同类 Survey、开源实现(如 RankLLM、Open Deep Research)及工业博客一并阅读,形成「论文创新点 — 开源复现 — 线上约束」三角校验。

术语表

| 术语 | 含义 | |------|------| | IR | Information Retrieval,信息检索 | | RAG | Retrieval-Augmented Generation,检索增强生成 | | LTR | Learning to Rank,学习排序 | | nDCG | 归一化折损累积增益,排序质量指标 | | Agentic Search | 将搜索建模为序贯决策与工具调用的智能体范式 | | Gen-IR | Generative Information Retrieval,生成式信息检索 |

对本库读者的行动建议

1. 研究者:复现核心对比实验,关注是否报告统计显著性与计算成本; 2. 工程师:提取可插拔模块(编码器、重排器、规划器),评估与现有栈集成成本; 3. 产品经理:识别用户可感知收益(延迟、答案可信度、多轮一致性)而非仅离线 nDCG。

英文摘要(原文保留)

Large Language Models (LLMs) have seen an impressive wave of advances recently, with models now excelling in a variety of tasks, such as mathematical reasoning and program synthesis. However, their potential to effectively use tools via API calls remains unfulfilled. This is a challenging task even for today's state-of-the-art LLMs such as GPT-4, largely due to their inability to generate accurate input arguments and their tendency to hallucinate the wrong usage of an API call. We release Gorilla, a finetuned LLaMA-based model that surpasses the performance of GPT-4 on writing API calls. When combined with a document retriever, Gorilla demonstrates a strong capability to adapt to test-time document changes, enabling flexible user updates or version changes. It also substantially mitigates the issue of hallucination, commonly encountered when prompting LLMs directly. To evaluate the model's ability, we introduce APIBench, a comprehensive dataset consisting of HuggingFace, TorchHub, and TensorHub APIs. The successful integration of the retrieval system with Gorilla demonstrates the potential for LLMs to use tools more accurately, keep up with frequently updated documentation, and consequently increase the reliability and applicability of their outputs. Gorilla's code, model, data, and demo are available at https://gorilla.cs.berkeley.edu
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

小

当7B模型在API调用上打败GPT-4:Gorilla如何让大模型精准使用工具

一个尴尬的事实

2023年5月,GPT-4已经能写诗、做数学题、生成代码。但如果你让它调用一个具体的API——比如"用PyTorch加载一个预训练的ResNet模型"——它有概率编造一个不存在的模型名,或者用错参数。

论文里给了一个让人印象深刻的例子:面对"用torchvision加载一个预训练的图像分类模型"这个请求:

  • GPT-4:生成了一个不存在的模型名torchvision.models.resnet101_pretrained——看起来很合理,但这个API在torchvision里根本不存在
  • Claude:选了一个错误的库路径
  • Gorilla:正确生成了torch.hub.load('pytorch/vision', 'resnet50', pretrained=True)——完全正确的、可以直接运行的API调用
一个7B参数的模型,在API调用的准确性上超越了GPT-4。这是怎么做到的?

问题诊断:为什么大模型不会调API

Gorilla团队首先诊断了问题:大模型在API调用上失败,不是因为推理能力不够,而是因为训练数据里没有足够的API使用示例。

大模型见过大量自然语言和代码,但"如何正确使用特定API"这种知识,在训练数据中是稀缺的。结果就是:

1. 参数幻觉:模型编造看起来合理但不存在的参数名 2. API幻觉:模型编造看起来合理但不存在的API 3. 版本不敏感:模型不知道API在不同版本间有变化

这和"知识不足"不同——这是"技能不足"。模型有推理能力,但缺乏"使用特定工具的肌肉记忆"。

解决方案:Self-Instruct微调 + 检索增强

Gorilla的方案分两步:

第一步:构建API训练数据

团队从三个模型库爬取了所有API文档:

  • TorchHub:94个API(全量)
  • TensorHub:696个API(全量)
  • HuggingFace:925个API(每类下载量最高的20个模型)
总计1645个API。然后对每个API,用Self-Instruct方法生成10个用户问题提示。最终数据集APIBench包含16450个"指令-API调用"对。

第二步:微调LLaMA-7B

用这些数据微调LLaMA-7B,得到Gorilla。但这里有一个关键设计——Retriever-Aware Training(检索感知训练)。

传统做法是:训练时不带检索文档,推理时把检索文档拼到prompt里。Gorilla的做法是:训练时就把检索文档拼到prompt里,让模型从训练阶段就学会"看文档→选API"的模式,而不是"背API→猜API"。

这解决了一个根本矛盾:API文档会变、会更新,模型不可能记住所有API的所有版本。但如果模型学会了"读文档→用API"这个技能,它就能适应任何文档变化。

评估方法:AST子树匹配

评估API调用的正确性比评估文本生成难得多——同一个任务可能有多个正确的API。比如"图像分类"可以用ResNet、DenseNet、EfficientNet等几十个模型。

Gorilla采用AST(抽象语法树)子树匹配:

1. 把模型生成的代码解析成AST 2. 找到API调用对应的子树 3. 和数据集中的参考API做功能等价性比较 4. 检查关键参数(如repo_or_dir、model)是否匹配

这比"文本完全一致"或"单元测试通过"都更合理——它检查的是"模型调用的API是否功能正确",而不是"代码字符串是否一模一样"。

结果:微调 > 检索 > 提示工程

Gorilla的实验结果有几个关键发现:

1. 微调碾压提示工程

Gorilla在零样本设置下,比GPT-4准确率高20.43%,比ChatGPT高10.75%。和开源LLaMA相比,提升高达83%。

这验证了核心假设:API调用是技能问题,不是推理问题。微调注入了"肌肉记忆",效果远超让大模型"现场推理"。

2. 检索感知训练的悖论

一个反直觉的发现:训练时不带检索器、推理时加上完美检索器,几乎没用(TensorHub上甚至降了0.88%)。但训练时带检索器、推理时换上BM25或GPT检索器,性能反而大幅下降(TorchHub降21.50%,HuggingFace降47.57%)。

这说明:如果模型在训练时没学会"读文档",推理时给它文档反而会误导它。检索增强的前提是模型知道怎么用检索到的信息。

3. 幻觉大幅减少

Gorilla在幻觉率上显著低于GPT-4和ChatGPT。原因很直接:模型的API知识来自训练数据中的真实文档,而不是从海量互联网文本中"模糊记忆"的API用法。

4. 适应文档变化

这是Retriever-Aware Training的最大价值:当API文档更新时,只需更新检索库中的文档,Gorilla就能适应新版本——不需要重新训练。GPT-4在文档变化后准确率会下降,因为它的知识是训练时固化的。

方法论启示:技能 vs 知识

Gorilla的深层启示是一个区分:大模型的能力可以分解为"知识"(知道什么)和"技能"(会做什么)。

  • 知识可以通过检索补充(RAG)
  • 技能需要通过训练注入(微调)
API调用是一种技能——不是"知道某个API存在",而是"知道怎么正确使用它"。这种技能无法通过在prompt里加文档来弥补,必须在训练阶段就学会。

这个区分在今天的Agent工程中越来越重要:很多Agent能力(工具使用、代码生成、格式遵循)本质上是技能而非知识,需要专门的训练而非更好的提示。

与后续工作的联系

Gorilla是2023年的工作,但它提出的问题——如何让模型精准使用工具——在2025年的Agent时代变得更加重要。

从Gorilla到今天的Toolformer、Function Calling、MCP协议,工具使用能力一直是Agent工程的核心瓶颈。Gorilla的方案(微调+检索)虽然简单,但揭示了一个持久的真理:模型不会因为变大了就自动学会用工具,工具使用需要专门的训练数据和方法。

代码与资源

Gorilla完全开源:代码、模型、数据、demo都在 https://gorilla.cs.berkeley.edu/ ,APIBench基准也已公开,可以直接用于评估工具使用能力。


一句话总结:Gorilla用1645个API的Self-Instruct数据微调LLaMA-7B,在API调用准确率上超越GPT-4达20.43%——证明了工具使用是"技能"而非"知识",需要通过微调注入而非提示工程弥补,而Retriever-Aware Training让模型学会"读文档用API"的通用技能,能适应任何文档变化。

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens