目录
Gorilla
首页 科技周边 人工智能 最强API调用模型来了!基于LLaMA微调,性能超过GPT-4

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

Jun 10, 2023 am 11:41 AM
ai 模型

继羊驼之后,又来了个以动物命名的模型,这次是大猩猩(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中展示了一个实例。

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

此外,研究人员对Gorilla进行的检索感知训练使得该模型能够适应API文档的变化。

最后,研究人员还展示了Gorilla理解和推理约束的能力。

另外,在幻觉方面,Gorilla也表现出色。

下图是精度和幻觉在四种情况下的对比,零样本(即,没有任何检索器)以及使用BM25、GPT和Oracle的检索器。

其中BM25和GPT是常用的检索器,而Oracle检索器则会以100%的相关性返回相关文档,表示一种上限。

图中准确性更高、幻觉更少的即为效果更好。

在整个数据集中,Gorilla在提高准确性的同时减少了幻觉。

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

为了收集数据集,研究人员细致地记录了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进行微调,研究人员将其转换为用户——代理的聊天式对话,其中每个数据点都是一个对话,用户和代理轮流交谈。

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

然后研究人员在基础的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调用的正确性。

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

抽象语法树是源代码结构的树形表示,有助于更好地分析和理解代码。

首先,研究人员从Gorilla返回的API调用(左侧)构建相关的API树。然后将其与数据集进行比较,以查看API数据集是否具有子树匹配。

在上面的示例中,匹配的子树以棕色突出显示,表示API调用确实是正确的。其中Pretrained=True是一个可选参数。

这一资源将为更广泛的社区提供服务,作为研究和衡量现有API的宝贵工具,为更公平和优化使用机器学习做出贡献。

以上是最强API调用模型来了!基于LLaMA微调,性能超过GPT-4的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1659
14
CakePHP 教程
1415
52
Laravel 教程
1310
25
PHP教程
1258
29
C# 教程
1232
24
比特币值多少美金 比特币值多少美金 Apr 28, 2025 pm 07:42 PM

比特币的价格在20,000到30,000美元之间。1. 比特币自2009年以来价格波动剧烈,2017年达到近20,000美元,2021年达到近60,000美元。2. 价格受市场需求、供应量、宏观经济环境等因素影响。3. 通过交易所、移动应用和网站可获取实时价格。4. 比特币价格波动性大,受市场情绪和外部因素驱动。5. 与传统金融市场有一定关系,受全球股市、美元强弱等影响。6. 长期趋势看涨,但需谨慎评估风险。

全球币圈十大交易所有哪些 排名前十的货币交易平台2025 全球币圈十大交易所有哪些 排名前十的货币交易平台2025 Apr 28, 2025 pm 08:12 PM

2025年全球十大加密货币交易所包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi、Bitfinex、KuCoin、Bittrex和Poloniex,均以高交易量和安全性着称。

全球币圈十大交易所有哪些 排名前十的货币交易平台最新版 全球币圈十大交易所有哪些 排名前十的货币交易平台最新版 Apr 28, 2025 pm 08:09 PM

全球十大加密货币交易平台包括Binance、OKX、Gate.io、Coinbase、Kraken、Huobi Global、Bitfinex、Bittrex、KuCoin和Poloniex,均提供多种交易方式和强大的安全措施。

解密Gate.io战略升级:MeMebox 2.0如何重新定义加密资产管理? 解密Gate.io战略升级:MeMebox 2.0如何重新定义加密资产管理? Apr 28, 2025 pm 03:33 PM

MeMebox 2.0通过创新架构和性能突破重新定义了加密资产管理。1) 它解决了资产孤岛、收益衰减和安全与便利悖论三大痛点。2) 通过智能资产枢纽、动态风险管理和收益增强引擎,提升了跨链转账速度、平均收益率和安全事件响应速度。3) 为用户提供资产可视化、策略自动化和治理一体化,实现了用户价值重构。4) 通过生态协同和合规化创新,增强了平台的整体效能。5) 未来将推出智能合约保险池、预测市场集成和AI驱动资产配置,继续引领行业发展。

排名前十的虚拟币交易app有哪 最新数字货币交易所排行榜 排名前十的虚拟币交易app有哪 最新数字货币交易所排行榜 Apr 28, 2025 pm 08:03 PM

Binance、OKX、gate.io等十大数字货币交易所完善系统、高效多元化交易和严密安全措施严重推崇。

排名靠前的货币交易平台有哪些 最新虚拟币交易所排名榜前10 排名靠前的货币交易平台有哪些 最新虚拟币交易所排名榜前10 Apr 28, 2025 pm 08:06 PM

目前排名前十的虚拟币交易所:1.币安,2. OKX,3. Gate.io,4。币库,5。海妖,6。火币全球站,7.拜比特,8.库币,9.比特币,10。比特戳。

靠谱的数字货币交易平台推荐 全球十大数字货币交易所排行榜2025 靠谱的数字货币交易平台推荐 全球十大数字货币交易所排行榜2025 Apr 28, 2025 pm 04:30 PM

靠谱的数字货币交易平台推荐:1. OKX,2. Binance,3. Coinbase,4. Kraken,5. Huobi,6. KuCoin,7. Bitfinex,8. Gemini,9. Bitstamp,10. Poloniex,这些平台均以其安全性、用户体验和多样化的功能着称,适合不同层次的用户进行数字货币交易

C  中的chrono库如何使用? C 中的chrono库如何使用? Apr 28, 2025 pm 10:18 PM

使用C 中的chrono库可以让你更加精确地控制时间和时间间隔,让我们来探讨一下这个库的魅力所在吧。C 的chrono库是标准库的一部分,它提供了一种现代化的方式来处理时间和时间间隔。对于那些曾经饱受time.h和ctime折磨的程序员来说,chrono无疑是一个福音。它不仅提高了代码的可读性和可维护性,还提供了更高的精度和灵活性。让我们从基础开始,chrono库主要包括以下几个关键组件:std::chrono::system_clock:表示系统时钟,用于获取当前时间。std::chron

See all articles