LLMs之Leaderboard:Gorilla的简介、安装和使用方法、案例应用之详细攻略

news2024/12/30 3:40:31

LLMs之Leaderboard:Gorilla的简介、安装和使用方法、案例应用之详细攻略

导读:2023 年5月 24 日,UC伯克利等发布Gorilla。该工作针对LLM有效调用API工具的问题,提出了一种检索式微调语言模型的新方法Gorilla,并构建了相应的评估基准和训练流程,显著提升了LLM理解和生成API调用的性能。

背景痛点:尽管大型语言模型(LLM)在数学推理和程序合成等任务中表现优异,但在通过API调用使用工具方面仍有局限。主要问题是生成准确输入参数的能力不足以及API调用时的幻觉(hallucination)问题。当前的LLMs需要重新训练以更新其知识和推理能力。

解决方案:提出了Gorilla,一种基于LLaMA-7B模型的检索式优化语言模型,旨在优于GPT-4在编写API调用方面的性能。结合文档检索器,Gorilla可以适应测试时文档的变化,减少幻觉问题。构建了APIBench,这是一个综合的API数据集,涵盖HuggingFace、TorchHub和TensorHub。

核心思路

● 数据集构建:构建了APIBench数据集,包含HuggingFace、TorchHub和TensorHub API。采用自我指导(Self-Instruct)的方式,利用GPT-4生成合成指令数据{instruction, API}对。

● 模型训练:使用自我(Self-Instruct)指令微调和检索使LLMs能够准确选择和调用API。针对API调用任务,对LLaMA-7B进行监督微调。训练时融入检索机制,使模型学会利用API文档。

● 评估方法:采用AST子树匹配技术评估生成API的功能正确性。

● Gorilla模型:基于LLaMA-7B,结合文档检索进行微调,显著提高API功能准确性并减少幻觉错误。

优势

● Gorilla大幅超越GPT-4在API调用准确性和减少虚假输出(hallucination)方面的性能。

● 检索式训练使Gorilla能够适应API文档的变化,实现灵活更新,保持输出的可靠性和适用性。

● Gorilla展现了在受约束条件下准确理解和推理API调用的能力。展示了LLM通过使用工具(API)来扩展能力、跟上文档更新从而提高可靠性的潜力。

目录

相关文章

《Gorilla: Large Language Model Connected with Massive APIs》翻译与解读

Gorilla的简介

1、新闻

2、Berkeley Function-Calling Leaderboard

Gorilla的安装和使用方法

1、安装

2、使用方法

推理

评估

代码库组织

gorilla

Gorilla的案例应用


相关文章

《Gorilla: Large Language Model Connected with Massive APIs》翻译与解读

地址

论文地址:https://arxiv.org/abs/2305.15334

时间

2023 年5月 24 日

作者

UC伯克利、Microsoft

摘要

大型语言模型(LLMs)最近取得了令人印象深刻的进展,尤其在数学推理程序生成等多种任务上表现出色。然而,它们在通过API调用有效使用工具的潜力仍未得到充分发挥。即使是当今最先进的LLMs,如GPT-4,也在生成准确的输入参数和避免API调用错误使用方面面临挑战。我们发布了Gorilla,这是一个基于LLaMA微调的模型,其在编写API调用方面的表现优于GPT-4。结合文档检索器,Gorilla展示了适应测试时文档变化的强大能力,从而实现灵活的用户更新或版本变更。它还显著减轻了直接提示LLMs时常遇到的幻觉问题。为了评估模型的能力,我们引入了APIBench,这是一个包含HuggingFace、TorchHub和TensorHub API的综合数据集。将检索系统与Gorilla成功集成,展示了LLMs更准确使用工具的潜力,能够跟上频繁更新的文档,并因此提高其输出的可靠性和适用性。Gorilla的代码、模型、数据和演示可在此https URL获取。

Gorilla的简介

Gorilla: 与大量API连接的大型语言模型。Gorilla使LLM能够通过调用API使用工具。给定一个自然语言查询,Gorilla会生成语义和语法正确的API调用。借助Gorilla,我们首次展示了如何使用LLM准确调用1600多个(并在不断增加)API,同时减少幻觉现象。我们还发布了APIBench,这是目前最大的API集合,经过精心挑选,易于训练!

�� GoEx:一个用于执行LLM生成的操作(如代码和API调用)的运行时 GoEx提出了“撤销”和“损害限制”抽象,以减轻在LLM驱动系统中发生意外操作的风险。

�� 伯克利函数调用排行榜 模型在函数调用方面的表现如何?�� 发布伯克利函数调用排行榜。

�� Gorilla OpenFunctions v2 为开源LLM设定了新的SOTA �� 与GPT-4表现相当 �� 支持更多语言。

�� Gorilla OpenFunctions 是函数调用的替代方案!

�� Gorilla 是 Apache 2.0 许可的 Gorilla基于MPT和Falcon进行微调,您可以在商业上使用Gorilla,无需承担任何义务! ⛳

官网地址:Gorilla

排行榜地址:Berkeley Function Calling Leaderboard (aka Berkeley Tool Calling Leaderboard)

GitHub地址:https://github.com/ShishirPatil/gorilla

1、新闻

⏰: [04/01] 在伯克利函数调用排行榜中引入成本和延迟指标!

�� [03/15] RAFT: 适应领域特定RAG的语言模型上线![MSFT-Meta博客] [伯克利博客]

�� [02/26] 伯克利函数调用排行榜上线!

�� [02/25] OpenFunctions v2为开源LLM设定了新的SOTA!

�� [11/16] 很高兴发布Gorilla OpenFunctions

�� [06/29] 发布了gorilla-cli,用于您的CLI的LLM!

�� [06/06] 发布了商业可用的Apache 2.0许可Gorilla模型

�� [05/30] 提供了与Gorilla聊天的CLI界面!

�� [05/28] 发布了Torch Hub和TensorFlow Hub模型!

�� [05/27] 发布了第一个Gorilla模型!Colab或��!

�� [05/27] 我们发布了APIZoo贡献指南,以便社区贡献API!

�� [05/25] 我们发布了APIBench数据集和Gorilla的评估代码!

2、Berkeley Function-Calling Leaderboard

伯克利函数调用排行榜(也称为伯克利工具调用排行榜)评估LLM准确调用函数(即工具)的能力。该排行榜由真实世界数据组成,并将定期更新。有关评估数据集和方法的更多信息,请参阅我们的博客文章和代码发布。

Gorilla的安装和使用方法

1、安装

通过pip install gorilla-cli在您的CLI中使用Gorilla

pip install gorilla-cli

2、使用方法

推理

在本地运行Gorilla inference/README.md

评估

我们提供了带有和不带检索器的APIBench的提示和响应,以及抽象语法树(AST)匹配评估脚本 eval。

代码库组织

我们的代码库组织如下。

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,并重现我们的结果。有关如何使用我们的评估管道的详细信息,请参阅evaluation。

此外,我们已发布所有模型权重。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

gorilla
|-- berkeley-function-call-leaderboard (data and scripts to eval model's function-calling ability)
├── data
│   ├── api (TF/HF/TH APIs used in generating apibench)
│   │   ├── {api_name}_api.jsonl
│   ├── apibench (Evaluating LLM models) v-1.0
│   │   ├── {api_name}_train.jsonl, {api_name}_eval.jsonl
|   |── apizoo (Contributed by the community - evolving)
│   |   ├── 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 (data and scripts for openfunctions-v0 and v1)
|   ├── utils (parsing script for openfunctions-v2)
|   ├── inference_* (openfunctions-v2 hosted/local inference code)

Gorilla的案例应用

持续更新中……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF篇(15)-Expander折叠控件+MediaElement媒体播放器

Expander折叠控件 Expander也是一个内容控件,它有一个标题属性和内容属性。 Expander类的定义 public class Expander : HeaderedContentControl {public static readonly DependencyProperty ExpandDirectionProperty;public static readonly DependencyPropert…

3D DRAM 集成 AI 处理:一项可能取代现有 HBM 的新技术

NEO 半导体公司,一家专注于 3D DRAM 和 3D NAND 内存的公司,最近推出了其最新的 3D X-AI 芯片技术,这项技术有可能取代目前在 AI GPU 加速器中使用的高带宽内存 (HBM)。 据报道,这款 3D DRAM 集成了 AI 处理能力,能够在…

AI预测福彩3D采取888=3策略+和值012路或胆码测试8月17日新模型预测第59弹

经过近60期的测试,当然有很多彩友也一直在观察我每天发的预测结果,得到了一个非常有价值的信息,那就是9码定位的命中率非常高,58期一共只错了5次,这给喜欢打私房菜的朋友提供了极高价值的预测结果~当然了,大…

【SQL】科目种类

目录 题目 分析 代码 题目 表: Teacher ------------------- | Column Name | Type | ------------------- | teacher_id | int | | subject_id | int | | dept_id | int | ------------------- 在 SQL 中,(subject_id, dept_id) 是该表的主键。 该表…

PIP-INTEL:一款多功能OSINT开源情报与数据收集工具

关于PIP-INTEL PIP-INTEL是一款功能强大的工具,专为 OSINT(开源情报)和网络情报收集活动而设计。它将各种开源工具整合到一个用户友好的界面中,简化了研究人员和网络安全专业人员的数据收集和分析流程。 功能特性 PIP-INTEL利用…

【Python】高效的Web自动化测试利器—Python+Playwright快速上手自动化实战指南(限时开放)

文章目录 前言一.playwright是什么二.python引入playwright1.安装2.playwright命令行参数3.playwright codegen自动生成代码4.Chrome和Chromium有什么关系? 三.基本概念1. 无头浏览器(Headless Browser)2.同步和异步模式操作playwright2.1.同…

Java流程控制03:Switch选择结构

视频链接:Java流程控制05:Switch选择结构_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV12J41137hu?p37&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java 中的 switch 选择结构是一种控制流程语句,它允许程序根据一个变量…

JVM动态字节码注入工具-Byteman

Byteman是一个字节码操作工具,它使得在加载时或在应用程序运行时更改Java应用程序的操作变得简单。它无需重写或重新编译原始程序即可工作。实际上,Byteman甚至可以用来修改Java代码,这些代码构成了Java虚拟机的一部分,比如String…

商用自动油炸机流水线 鸡米花油炸设备的优势;

油炸机的优势主要包括操作简单、一机多用、油水分离、大容量油缸、过滤残渣设置、自动出料设置、智能控制面板、材质优良。 操作简单‌:油炸机操作简单,可单人操作,保证了操作人员的身体健康,无油烟,减少了厨房的污染。…

TinyWebserver的复现与改进(6):定时器处理非活动连接

如果客户端长时间没有动作,会占用了许多连接资源,严重影响服务器的性能。因此需要通过实现一个服务器定时器,处理这种非活跃连接,释放连接资源。 定时器处理流程 SIGALARM触发:整个流程开始于一个 SIGALARM 信号&…

Golang基于DTM的分布式事务TCC实战

Golang基于DTM的分布式事务SAGA实战-CSDN博客 源代码:https://github.com/Ssummer520/dtm-gin 代码在宿主机运行 docker network:bridge docker安装,安装成功后可以访问http://localhost:36789/ 打开dtm事务web-ui docker run -itd --name dtm -p 36789:36789 -p…

阿布吞的基础使用——Ubuntu

Ubuntu是Linux系统的发行版,Linux操作系统中比较流行的一个版本,广泛用于个人电脑、服务器和嵌入式设备。今天来简单讲解一下Ubuntu的基础使用。 1. 桌面环境 登录:安装完成后,启动计算机,输入用户名和密码登录到 Ub…

基于springboot的车辆违章信息管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【CMake】学习笔记1

文章目录 1. CMake概述2. 编写一个简单的CMakeLists.txt2.1注释2.1.1 注释行2.1.2 块注释 2.1 只有源文件 3. CMake中set使用set 基本使用set指定使用C标准set指定输出路径 4. 搜索文件 1. CMake概述 CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟…

【安全与管理并重】揭秘公司老板如何平衡信任与效率,利用非授权监控软件优化管理!

企业面临着前所未有的竞争压力,同时还需要确保内部管理的有效性和数据的安全性。如何在信任与效率之间找到平衡点,成为了许多公司老板关注的重点。安企神软件作为一款集数据防泄密、行为监控与流程化管理于一体的综合性解决方案,为企业提供了…

SpringCloud集成XXL-JOB定时任务

项目场景: XXL-JOB是一个分布式任务调度平台,它能够帮助开发者轻松地实现任务的定时执行、任务调度和任务管理 接入步骤 下载XXL-JOB压缩包 链接: xxl-job XXL-JOB做为子模块 将压缩包解压,项目二级新建目录xxl-job,放入目录…

后端Spring/SpringBoot框架基础介绍

1.Spring基础介绍 spring官网:https://spring.io/ 官方对spring的描述:使java更快、更容易、更安全,聚焦于速度、简洁和生产力。并且是全世界最流行的Java框架。 Spring如今已经形成开发生态圈,它提供若干个子项目,每…

超声波清洗机哪个牌子效果最好?四个可靠的超声波眼镜清洗机品牌推荐

作为一个常年佩戴眼镜的用户,还是养宠家庭,对于眼镜的清洗,一直是倍感困扰的,养宠的家庭,每天镜片上极易沾染灰尘,用眼镜布擦拭真的很容易把镜片刮花。尽管有时候路过眼镜店会进去清洗,但是终归…

【数学建模】LINGO编程

LINGO是一种专门用于求解数学规划问题的软件包。由于LINGO执行速度快,易于方便地输入、求解和分析数学规划问题,因此在教学、科研和工业界得到了广泛应用。LINGO主要用于求解线性规划、非线性规划、一次规划和整数规划等问题,也可用于求解一些…

Next-Key Lock 详解及其在 REPEATABLE READ 隔离级别中的作用

Next-Key Lock 是 MySQL InnoDB 引擎中使用的一种锁定机制,专门用于在 REPEATABLE READ 隔离级别下防止幻读(Phantom Reads)。它结合了行锁(Record Lock)和间隙锁(Gap Lock),能够在高…