您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

最强API调用模型来了!基于LLaMA微调,性能超过GPT-4

时间:2023-06-08 12:24:22  来源:新智元  作者:

新智元报道

编辑:拉燕

【新智元导读】UC伯克利华人博士生搞了个Gorilla,可以灵活调用各种API,性能超过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模型的所有在线模型。

然而,其中很多模型的文档都不咋样。

为了过滤掉这些质量不高的模型,研究人员最终从每个领域挑选出前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。

由于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的宝贵工具,为更公平和优化使用机器学习做出贡献。

参考资料:

https://arxiv.org/pdf/2305.15334.pdf



Tags:API   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
中国三大运营商共同发布通过GSMA Open Gateway认证的一次性密码 API
3月26日,北京:中国三大领先的移动运营商——中国移动、中国电信和中国联通今日发布商用OTP API(一次性密码API)服务,并通过了GSMA Open Gateway认证。此次发布标志着中...【详细内容】
2024-03-26  Search: API  点击:(22)  评论:(0)  加入收藏
如何免费访问和使用Gemini API?
Gemini是谷歌开发的一个新模型。有了Gemini可以为查询提供图像、音频和文本,获得几乎完美的答案。 我们在本教程中将学习Gemini API以及如何在机器上设置它。我们还将探究各...【详细内容】
2024-02-19  Search: API  点击:(59)  评论:(0)  加入收藏
构建 Web API 的两种流行选择:REST vs GraphQL
在 RESTful 和 GraphQL API 之间的选择取决于您的具体用例。RESTful API 适用于需要高可伸缩性的简单应用程序,而 GraphQL 则适用于具有不同数据需求的复杂应用程序。简介RES...【详细内容】
2024-01-09  Search: API  点击:(64)  评论:(0)  加入收藏
FastAPI:高性能Web框架的简介与应用
正文:在当今互联网时代,构建高性能的WebAPI是许多开发人员的关注重点。而FastAPI作为一个现代、快速的Web框架,为基于标准Python类型提示的API构建提供了强大的支持。FastAPI的...【详细内容】
2023-12-27  Search: API  点击:(101)  评论:(0)  加入收藏
理解 Spark 写入 API 的数据处理能力
这张图解释了 Apache Spark DataFrame 写入 API 的流程。它始于对写入数据的 API 调用,支持的格式包括 CSV、JSON 或 Parquet。流程根据选择的保存模式(追加、覆盖、忽略或报...【详细内容】
2023-12-13  Search: API  点击:(149)  评论:(0)  加入收藏
如何在Python中使用ChatGPT API处理实时数据
译者 | 李睿审校 | 重楼OpenAI公司推出的GPT如今已经成为全球最重要的人工智能工具,并精通基于其训练数据处理查询。但是,它不能回答未知话题的问题,例如: 2021年9月之后的近期...【详细内容】
2023-12-13  Search: API  点击:(229)  评论:(0)  加入收藏
伪原创API是什么?六个角度了解伪原创API
伪原创API,听起来可能对许多人来说是一个陌生的术语。然而,在当今数字化时代,尤其是在内容创作和网络营销领域,伪原创API正逐渐崭露头角。在本文中,我将向您深入介绍伪原创API是...【详细内容】
2023-12-11  Search: API  点击:(156)  评论:(0)  加入收藏
使用FastAPI部署YOLO模型的步骤
在计算机视觉领域,You Only Look Once (YOLO) 算法已经崭露头角,成为一种改变游戏规则的算法。它承诺具有卓越准确性的实时目标检测,使其成为从监视和自动驾驶车辆到图像和视频...【详细内容】
2023-12-06  Search: API  点击:(157)  评论:(0)  加入收藏
构建强大REST API的十个最佳实践
在项目开发中,我们经常会使用REST风格进行API的定义,这篇文章为大家提供10条在使用REST API时的最佳实践。希望能够为你带来灵感和帮助。1、使用具体且有意义的资源名称选择能...【详细内容】
2023-12-06  Search: API  点击:(149)  评论:(0)  加入收藏
前端请求到后端API的中间件流程解析
在前端请求到后端API的典型流程中,经过一系列中间件的处理,确保请求的顺利处理和安全性。以下是中间件的详细解析:1. 前端请求用户在前端发起请求,包括请求的URL、参数、以及其...【详细内容】
2023-12-06  Search: API  点击:(123)  评论:(0)  加入收藏
▌简易百科推荐
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
Kubernetes 究竟有没有 LTS?
从一个有趣的问题引出很多人都在关注的 Kubernetes LTS 的问题。有趣的问题2019 年,一个名为 apiserver LoopbackClient Server cert expired after 1 year[1] 的 issue 中提...【详细内容】
2024-03-15  云原生散修  微信公众号  Tags:Kubernetes   点击:(6)  评论:(0)  加入收藏
站内最新
站内热门
站内头条