最强API调用模型来了!基于LLaMA微调,性能超过GPT-4
继羊驼之后,又来了个以动物命名的模型,这次是大猩猩(Gorilla)。
虽说目前LLM风头正旺,进展颇多,在各种任务中的性能表现也可圈可点,但这些模型通过API调用有效使用工具的潜力还亟待挖掘。
即使对于今天最先进的LLM,比如GPT-4,API调用也是一项具有挑战性的任务,主要是由于它们无法生成准确的输入参数,并且LLM容易对API调用的错误使用产生幻觉。
这不,研究人员搞了个Gorilla,一个经过微调的基于LLaMA的模型,它在编写API调用上的性能甚至超过了GPT-4。
而当与文档检索器相结合时,Gorilla同样展示出了强大的性能,使用户更新或版本变化变得更加灵活。
此外,Gorilla还大大缓解了LLM会经常遇到的幻觉问题。
为了评估该模型的能力,研究人员还引入了API基准,一个由HuggingFace、TorchHub和TensorHub API组成的综合数据集
Gorilla
LLMs的各项强大的能力不用再多介绍,包括自然对话能力、数学推理能力,以及程序合成在能力什么的。
然而,尽管性能强大,但LLM仍然会受到一些限制。并且,LLM也需要重新训练以及时更新他们的知识库,以及推理能力。
通过授权LLM可使用的工具,研究人员可以允许LLM访问巨大的、不断变化的知识库,完成复杂的计算任务。
通过提供对搜索技术和数据库的访问,研究人员可以增强LLM的能力,以处理更大和更动态的知识空间。
同样,通过提供计算工具的使用,LLM也可以完成复杂的计算任务。
因此,科技巨头已经开始尝试整合各类插件,使LLM能够通过API调用外部工具。
从一个规模较小的手工编码的工具,到能够调用一个巨大的、不断变化的云API空间,这种转变可以将LLM转变为计算基础设施,以及网络所需的主要界面。
从预订整个假期到举办一次会议的任务,可以变得像与能够访问航班、汽车租赁、酒店、餐饮和娱乐网络API的LLM交谈一样简单。
然而,许多先前的工作将工具整合到LLM中,考虑的是一小套有据可查的API,可以很容易地注入到提示中。
支持一个由潜在的数百万个变化的API组成的网络规模的集合,需要重新思考研究人员如何整合工具的方法。
现在已经不可能在一个单一的环境中描述所有的API了。许多API会有重叠的功能,有细微的限制和约束。在这种新的环境中简单地评估LLM需要新的基准。
在本文中,研究人员探索了使用自我结构微调和检索的方法,以使LLM能够准确地从使用其API和API文档表达的大量、重叠和变化的工具集中进行选择。
研究人员通过从公共模型中心刮取ML API(模型)来构建API Bench,这是一个具有复杂且经常重叠功能的大型API语料库。
研究人员选择了三个主要的模型中心来构建数据集:TorchHub、TensorHub和HuggingFace。
研究人员详尽地包括了TorchHub(94个API调用)和TensorHub(696个API调用)中的每一个API调用。
对于HuggingFace,由于模型的数量很大,所以研究人员选择了每个任务类别中下载最多的20个模型(总共925个)。
研究人员还使用Self-Instruct为每个API生成了10个用户问题的prompt。
因此,数据集中的每个条目都成为了一个指令参考API对。研究人员采用常见的AST子树匹配技术来评估生成的API的功能正确性。
研究人员首先将生成的代码解析成AST树,然后找到一个子树,其根节点是研究人员关心的API调用,然后使用它来索引研究人员的数据集。
研究人员检查LLMs的功能正确性和幻觉问题,反馈相应的准确性。然后,研究人员再对Gorilla进行微调,这是一个基于LLaMA-7B的模型,使用研究人员的数据集进行文档检索的操作。
研究人员发现,Gorilla在API功能准确性以及减少幻觉错误方面明显优于GPT-4。
研究人员在图1中展示了一个实例。
此外,研究人员对Gorilla进行的检索感知训练使得该模型能够适应API文档的变化。
最后,研究人员还展示了Gorilla理解和推理约束的能力。
另外,在幻觉方面,Gorilla也表现出色。
下图是精度和幻觉在四种情况下的对比,零样本(即,没有任何检索器)以及使用BM25、GPT和Oracle的检索器。
其中BM25和GPT是常用的检索器,而Oracle检索器则会以100%的相关性返回相关文档,表示一种上限。
图中准确性更高、幻觉更少的即为效果更好。
在整个数据集中,Gorilla在提高准确性的同时减少了幻觉。
为了收集数据集,研究人员细致地记录了HuggingFace的The Model Hub、PyTorch Hub和TensorFlow Hub模型的所有在线模型。
HuggingFace平台托管和服务有总共203681个模型。
然而,其中很多模型的文档都不咋样。
为了过滤掉这些质量不高的模型,研究人员最终从每个领域挑选出前20个模型。
研究人员考虑了多模态数据的7个领域,CV的8个领域,NLP的12个领域,音频的5个领域,表格数据的2个领域,以及强化学习的2个领域。
过滤后,研究人员从HuggingFace得到了总共925个模型。TensorFlow Hub的版本分为v1和v2。
最新的版本(v2)总共有801个模型,研究人员处理了所有的模型。在过滤掉几乎没有信息的模型后,剩下了626个模型。
与TensorFlow Hub类似,研究人员从Torch Hub得到95个模型。
在self-instruct范式的指导下,研究人员采用GPT-4来生成合成指令数据。
研究人员提供了三个语境中的例子,以及一个参考的API文档,并责成模型生成调用API的真实用例。
研究人员特别指示该模型在创建指令时不要使用任何API名称或提示。研究人员为三个模型中心的每一个构建了六个例子(指令-API对)。
这18个点,是唯一手工生成或者修改过的数据。
而Gorilla,则是检索感知的LLaMA-7B模型,专门用于API调用。
如图3所示,研究人员采用自我构造来生成{指令,API}对。
为了对LLaMA进行微调,研究人员将其转换为用户——代理的聊天式对话,其中每个数据点都是一个对话,用户和代理轮流交谈。
然后研究人员在基础的LLaMA-7B模型上进行标准的指令微调。在实验中,研究人员在有和没有检索器的情况下分别训练了Gorilla。
在研究中,研究人员关注的是旨在为提高LLM针对特定任务准确识别适当的API的能力的技术——这是该技术发展中至关重要,但经常被忽略的方面。
由于API的功能是一种通用语言,使不同的系统之间能够进行有效地沟通,正确使用API可以提高LLM与更广泛的工具进行互动的能力。
在研究人员收集的三个大规模数据集中,Gorilla的性能超过了最先进的LLM(GPT-4)。Gorilla产生了可靠的API调用ML模型,且没有产生幻觉,并能在挑选API时满足约束条件。
由于希望找到一个具有挑战性的数据集,研究人员选择了ML APIs,因为它们的功能相似。专注于ML领域的API的潜在缺点是,如果在有倾向的数据上进行训练,它们就有可能产生有偏见的预测,可能对某些子群体不利。
为了消除这种顾虑并促进对这些API的深入了解,研究人员正在发布更加广泛的数据集,其中包括超过11000个指令——API对。
在下图这个示例中,研究人员使用抽象语法树(AST)子树匹配来评估API调用的正确性。
抽象语法树是源代码结构的树形表示,有助于更好地分析和理解代码。
首先,研究人员从Gorilla返回的API调用(左侧)构建相关的API树。然后将其与数据集进行比较,以查看API数据集是否具有子树匹配。
在上面的示例中,匹配的子树以棕色突出显示,表示API调用确实是正确的。其中Pretrained=True是一个可选参数。
这一资源将为更广泛的社区提供服务,作为研究和衡量现有API的宝贵工具,为更公平和优化使用机器学习做出贡献。
以上是最强API调用模型来了!基于LLaMA微调,性能超过GPT-4的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

CentOS 关机命令为 shutdown,语法为 shutdown [选项] 时间 [信息]。选项包括:-h 立即停止系统;-P 关机后关电源;-r 重新启动;-t 等待时间。时间可指定为立即 (now)、分钟数 ( minutes) 或特定时间 (hh:mm)。可添加信息在系统消息中显示。

CentOS系统下GitLab的备份与恢复策略为了保障数据安全和可恢复性,CentOS上的GitLab提供了多种备份方法。本文将详细介绍几种常见的备份方法、配置参数以及恢复流程,帮助您建立完善的GitLab备份与恢复策略。一、手动备份利用gitlab-rakegitlab:backup:create命令即可执行手动备份。此命令会备份GitLab仓库、数据库、用户、用户组、密钥和权限等关键信息。默认备份文件存储于/var/opt/gitlab/backups目录,您可通过修改/etc/gitlab

检查CentOS系统中HDFS配置的完整指南本文将指导您如何有效地检查CentOS系统上HDFS的配置和运行状态。以下步骤将帮助您全面了解HDFS的设置和运行情况。验证Hadoop环境变量:首先,确认Hadoop环境变量已正确设置。在终端执行以下命令,验证Hadoop是否已正确安装并配置:hadoopversion检查HDFS配置文件:HDFS的核心配置文件位于/etc/hadoop/conf/目录下,其中core-site.xml和hdfs-site.xml至关重要。使用

在CentOS系统上启用PyTorchGPU加速,需要安装CUDA、cuDNN以及PyTorch的GPU版本。以下步骤将引导您完成这一过程:CUDA和cuDNN安装确定CUDA版本兼容性:使用nvidia-smi命令查看您的NVIDIA显卡支持的CUDA版本。例如,您的MX450显卡可能支持CUDA11.1或更高版本。下载并安装CUDAToolkit:访问NVIDIACUDAToolkit官网,根据您显卡支持的最高CUDA版本下载并安装相应的版本。安装cuDNN库:前

在 CentOS 上安装 MySQL 涉及以下步骤:添加合适的 MySQL yum 源。执行 yum install mysql-server 命令以安装 MySQL 服务器。使用 mysql_secure_installation 命令进行安全设置,例如设置 root 用户密码。根据需要自定义 MySQL 配置文件。调整 MySQL 参数和优化数据库以提升性能。

Docker利用Linux内核特性,提供高效、隔离的应用运行环境。其工作原理如下:1. 镜像作为只读模板,包含运行应用所需的一切;2. 联合文件系统(UnionFS)层叠多个文件系统,只存储差异部分,节省空间并加快速度;3. 守护进程管理镜像和容器,客户端用于交互;4. Namespaces和cgroups实现容器隔离和资源限制;5. 多种网络模式支持容器互联。理解这些核心概念,才能更好地利用Docker。

重启 SSH 服务的命令为:systemctl restart sshd。步骤详解:1. 访问终端并连接到服务器;2. 输入命令:systemctl restart sshd;3. 验证服务状态:systemctl status sshd。

在CentOS系统上进行PyTorch分布式训练,需要按照以下步骤操作:PyTorch安装:前提是CentOS系统已安装Python和pip。根据您的CUDA版本,从PyTorch官网获取合适的安装命令。对于仅需CPU的训练,可以使用以下命令:pipinstalltorchtorchvisiontorchaudio如需GPU支持,请确保已安装对应版本的CUDA和cuDNN,并使用相应的PyTorch版本进行安装。分布式环境配置:分布式训练通常需要多台机器或单机多GPU。所
