大型语言模型(LLMs)在许多复杂任务中展示了令人印象深刻的进步,例如数学推理和程序合成。尽管取得了这些进展,LLMs有效利用工具、服务和应用程序的能力仍然有限。为了解决这一差距,我们首先介绍了Gorilla LLM,这是一个微调配方,通过调用API来增强LLMs使用工具的能力。Gorilla还引入了基于抽象语法树(AST)的度量来评估LLMs中的API幻觉。此外,认识到评估LLMs可能具有挑战性,我们开发了OpenFunctions,这是一个预训练模型,它不需要重新训练,而是依赖于检索增强生成(RAG)来显示相关API。该系统允许LLMs访问更新的函数和服务库,提高了它们的实用性,而无需不断的模型重训练。作为功能调用的补充,RAFT(检索增强微调)提供了一种配方,用于将新的特定领域知识嵌入模型中。通过训练LLMs从一组检索的文档中辨别和利用只有相关的信息,RAFT在各种领域内数据集的“开卷”设置中提高了准确性和可靠性。 最后,为了使LLMs生成的命令能够自主执行——这可能容易出错——Gorilla执行引擎(GoEx)是一个新颖的运行时系统,它通过动态解释用户意图并在执行中强制执行最小权限,并且还纳入了“撤销”和“损害限制”抽象来减轻风险。GoEx支持事后验证,允许用户在执行动作后验证动作的正确性,并撤销任何不希望的效果。GoEx使LLMs能够自主运行,显著减少了与它们自主行动相关的潜在风险。 我们相信,这些发展——Gorilla、OpenFunctions、RAFT和GoEx——对于解锁LLM代理与应用程序和服务交互的潜力至关重要。