Gorilla: 大型语言模型连接庞大的API [项目网站]
🚒 GoEx: 一个用于执行LLM生成操作(如代码和API调用)的运行时 GoEx提供“撤销”和“损害控制”抽象,以减少LLM驱动系统中意外操作的风险。发布博客 论文。
🎉 伯克利函数调用排行榜 模型在函数调用方面表现如何?:dart: 发布伯克利函数调用排行榜。 在我们的发布博客中了解更多。
:trophy: Gorilla OpenFunctions v2 创下开源LLM的新SoTA :muscle: 与GPT-4相当 :raised_hands: 支持更多语言 :ok_hand: 博客。
:fire: Gorilla OpenFunctions 是函数调用的替代方案!发布博客
🟢 Gorilla是Apache 2.0 Gorilla在MPT和Falcon上进行了微调,你可以无商业义务地使用Gorilla!:golf:
:computer: 在你的CLI中使用Gorilla pip install gorilla-cli
:fax: 查看我们的博客了解关于工具使用/函数调用的一切!
Gorilla
使LLM能够通过调用API使用工具。给定自然语言查询,Gorilla会提供语义上和语法上正确的API调用。使用Gorilla,我们首次展示了如何使用LLM准确调用1600多个(仍在增加)API,同时减少幻觉现象。我们还发布了APIBench,这是最大的API集合,经过精心挑选,易于训练!加入我们,扩展最大的API存储库,并教LLM如何编写它们!加入我们的Discord,或者打开一个PR,或者发送电子邮件给我们,如果你想将你的API也包含在内。
新闻
- ⏰: [04/01] 在伯克利函数调用排行榜中引入成本和延迟指标!
- :rocket: [03/15] RAFT:适应领域特定RAG的语言模型上线![MSFT-Meta博客] [伯克利博客]
- :trophy: [02/26] 伯克利函数调用排行榜上线!
- :dart: [02/25] OpenFunctions v2为开源LLM设定了新SoTA!
- :fire: [11/16] 兴奋地发布Gorilla OpenFunctions
- 💻 [06/29] 发布gorilla-cli,用于你的CLI的LLM!
- 🟢 [06/06] 发布商业可用、Apache 2.0许可的Gorilla模型
- :rocket: [05/30] 提供CLI界面,与Gorilla聊天!
- :rocket: [05/28] 发布Torch Hub和TensorFlow Hub模型!
- :rocket: [05/27] 发布第一个Gorilla模型! 或 :hugs:!
- :fire: [05/27] 我们发布了APIZoo贡献指南,用于社区API贡献!
- :fire: [05/25] 我们发布了APIBench数据集和Gorilla的评估代码!
Gorilla Gradio
在HF Spaces中试用Gorilla LLM模型 或
开始使用
推理:本地运行Gorilla inference/README.md
评估:我们包含了APIBench的提示和响应(有和没有检索器),以及抽象语法树(AST)匹配评估脚本在evaluation中。
仓库组织
我们的仓库组织如下。
berkeley-function-call-leaderboard
文件夹包含用于评估模型函数调用能力的脚本。data
文件夹包含所有评估API(APIBench)和社区贡献的API。eval
文件夹包含所有评估代码以及Gorilla的输出。inference
文件夹包含所有本地运行Gorilla的推理代码。openfunctions
文件夹包含OpenFunctions模型的推理代码。 对于我们的数据集集合,所有1640个API文档都在data/api
中。我们还包括了由self-instruct创建的APIBench
数据集,位于data/apibench
中。为了评估,我们将其转换为适合LLM的聊天格式,问题在eval/eval-data/questions
中,对应的响应在eval/eval-data/responses
中。我们还包括了评估脚本,位于eval/eval-scripts
中。这将完全足够您自己训练Gorilla,并重现我们的结果。请参见评估以获取如何使用我们的评估管道的详细信息。
此外,我们发布了所有的模型权重。gorilla-7b-hf-v0
让您可以调用超过925个Hugging Face API。类似地,gorilla-7b-tf-v0
和gorilla-7b-th-v0
有626个(详尽的)Tensorflow v2和94个(详尽的)Torch Hub API。gorilla-mpt-7b-hf-v0
和gorilla-falcon-7b-hf-v0
是Apache 2.0许可的模型(可商业使用),分别在MPT-7B和Falcon-7B上进行微调。当我们能够扩展我们的服务基础设施时,我们将发布一个结合了这三者并具有通用聊天功能和社区贡献API的模型。您可以从inference/
子目录中的说明运行本地Gorilla,或者我们也提供托管的Gorilla聊天完成API(参见Colab)!如果您有任何建议,或遇到任何问题,请通过Discord或电子邮件联系我们,或者在Github上提出问题。
gorilla
|-- berkeley-function-call-leaderboard (评估模型的函数调用能力的数据和脚本)
├── data
│ ├── api (用于生成apibench的TF/HF/TH API)
│ │ ├── {api_name}_api.jsonl
│ ├── apibench (评估LLM模型) v-1.0
│ │ ├── {api_name}_train.jsonl, {api_name}_eval.jsonl
| |── apizoo (由社区贡献 - 逐步演变)
│ | ├── username1.json
│ │ ├── username2.json
│ │ ├── ...
├── eval
│ ├── README.md
│ ├── get_llm_responses.py
│ ├── eval-scripts
│ │ ├── ast_eval_{api_name}.py
│ ├── eval-data
│ │ ├── questions
│ │ │ ├── API name
│ │ │ │ ├── questions_{api_name}_{eval_metric}.jsonl
│ │ ├── responses
│ │ │ ├── API name
│ │ │ │ ├── responses_{api_name}_Gorilla_FT_{eval_metric}.jsonl
│ │ │ │ ├── responses_{api_name}_Gorilla_RT_{eval_metric}.jsonl
├── inference
│ ├── README.md
│ ├── serve
│ │ ├── gorilla_cli.py
│ │ ├── conv_template.py
├── openfunctions
| ├── openfunctions-v1 (openfunctions-v0和v1的数据和脚本)
| ├── utils (解析openfunctions-v2的脚本)
| ├── inference_* (openfunctions-v2托管/本地推理代码)
贡献您的API
我们旨在构建一个开源的,一站式的所有API的集合,使LLM可以与之互动!任何建议和贡献都是受欢迎的!请参阅关于如何贡献的详细信息。这将永远保持开源。
常见问题解答
- 我想商业使用Gorilla。是否会有Apache 2.0许可版本?
是的!我们现在有可以商用的模型,没有任何义务。
- 我们可以将Gorilla与其他工具,如Langchain等一起使用吗?
当然可以!您提到了我们工具的一个很棒的方面。Gorilla是一个端到端的模型,专门用于提供正确的API调用(工具),无需额外编码。它设计为更广泛生态系统的一部分,可以灵活地集成到代理框架和其他工具中。
Langchain是一个多功能的开发者工具。它的"代理"可以高效地交换任何LLM,包括Gorilla,使其成为满足各种需求的高度适应性解决方案。
这些工具的美妙之处在于它们的合作,互相补充彼此的长处和能力,创造出更强大和全面的解决方案。这是您的贡献可以有所作为的地方。我们热情地欢迎任何输入,以进一步完善和增强这些工具。
请查看我们的博客如何使用Gorilla:逐步指南以了解如何在项目中集成Gorilla的所有不同方式。
项目路线图
在不久的将来,我们计划发布以下内容:
- BFCL指标以评估污染情况
- BFCL系统指标,包括成本和延迟
- BFCL更新“实时”数据和用户投票
- Openfunctions-v3模型,以支持更多语言和多轮对话能力
- 伯克利函数调用排行榜(BFCL)用于评估工具调用/函数调用模型 [2024年2月26日]
- Openfunctions-v2,支持更多语言(Java、JS、Python),相关性检测 [2024年2月26日]
- API Zoo索引,便于访问所有API [2024年2月16日]
- Openfunctions-v1,Apache 2.0,具有并行和多次函数调用 [2023年11月16日]
- Openfunctions-v0,Apache 2.0函数调用模型 [2023年11月16日]
- 发布可商业使用的Apache 2.0许可的Gorilla模型 [2023年6月5日]
- 发布所有API的权重,从APIBench中提取 [2023年5月28日]
- 本地运行Gorilla LLM [2023年5月28日]
- 发布HF模型API的权重 [2023年5月27日]
- 托管的Gorilla LLM聊天用于HF模型API [2023年5月27日]
- 开放APIZoo供社区贡献
- 数据集和评估代码
提出您想要参与的新任务 :star_struck:
引用
如果您使用Gorilla或APIBench,请引用我们的论文:
@article{patil2023gorilla,
title={Gorilla: Large Language Model Connected with Massive APIs},
author={Shishir G. Patil and Tianjun Zhang and Xin Wang and Joseph E. Gonzalez},
year={2023},
journal={arXiv preprint arXiv:2305.15334},
}