2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

超越 GPT-4!加州大学伯克利分校与微软研究院合作开源大型语言模型 Gorilla

作者:Anthony Alford

  • 2023-08-02
    北京
  • 本文字数:1385 字

    阅读完需:约 5 分钟

超越GPT-4!加州大学伯克利分校与微软研究院合作开源大型语言模型Gorilla

来自加州大学伯克利分校微软研究院的研究人员开源了Gorilla,这是一个可以编写 API 调用代码的大型语言模型(LLM)。在度量代码生成准确性的实验中,Gorilla 优于包括 GPT-4 在内的几个基线模型。

 

Gorilla 被描述为“LLM 的 API 应用商店”。它基于开源大型语言模型LLaMA。这个 LLM 在 APIBench 上做了调优。APIBench 是一个新的 ML 模型 API 描述数据集,托管在HuggingFaceTorchHubTensorHub上。Gorilla 还可以调用 API 定义的外部文档数据库,让它在访问新的 API 时无需重新训练。借助 Gorilla,开发人员可以创建问题的自然语言描述,例如“调用图像分类模型,参数个数不多于 10M,但 ImageNet 准确性至少要达到 70%。”然后,Gorilla 将输出 Python 代码,调用具有适当选项的 ML 模型。按照作者的说法:


在各个领域,LLM 正迅速普及。我们重点关注的是那些可以提高 LLM 在特定任务中 API 识别准确性的技术——这是这项技术发展中一个重要但经常被忽视的方面。作为一种通用语言,API 函数能够实现各种系统间的有效通信。正确使用 API 可以提高 LLM 与更广阔世界中的工具进行交互的能力。

 

GPT-4这样的 LLM 在包括生成代码在内的各种任务上都有出色的表现。然而,它们的 API 知识在训练时被“固定”了,因此,无法生成代码来调用更新的 API。此外,它们经常会产生幻觉——在代码生成时,它们输出的代码可能会调用不存在的 API。InfoQ 之前报道过人们近来为解决这些问题所做的努力,例如,Meta的Toolformer可以调用外部服务 API,ChatGPT的插件系统可以利用外部资源来增强 LLM。

 

不过,伯克利团队指出,那些方法是利用 API 调用的例子来提示 LLM。相比之下,Gorilla 的方法侧重于“系统化地评估并构建一个可供未来使用的管道”。首先,研究人员构建了 APIBench 数据集。他们从 HuggingFace 模型中心、PyTorch 中心和 TensorFlow 中心收集了所有的模型卡。经过过滤之后,获得了一个包含 1645 个 API 调用的集合。对于其中的每一个调用,研究人员使用 GPT-4 生成了一个指令-API 对数据集,用于对 Gorilla 进行调优。

 

在对 Gorilla 的输出进行评价时,一个主要的挑战是识别幻觉。首先,团队将幻觉定义为模型输出调用了在 API 定义外部数据库中不存在的 API。这与错误不同,错误是指模型输出错误地调用了“真实存在”的 API。团队使用所生成代码的抽象语法树(AST)来匹配数据库中的 API 和用于评估的测试集。在零样本任务中使用 AST 准确性度量,Gorilla 比 GPT-4 高了 20.43%。

 

Gorilla 的主要作者Shishir Patil参加了黑客新闻关于这项工作的讨论,并回答了几个问题。当被问及该模型的许可是否允许商业使用时,Patil 指出,Gorilla 有三个版本,基于 LLaMA 的版本没有商业应用许可,但基于 MPT-7 base 和 Falcon-7B 的版本可以。还有一位用户问,Gorilla 与LangChain相比怎么样。Patil 回答说:


Langchain 是一个很棒的项目,它试图教代理如何利用提示来使用工具。我们对此的看法是,如果你想在数以千计的 API 之间做出选择,那么提示不具有可扩展性。而 Gorilla 作为一个 LLM,可以帮你挑选 API 并编写语义、语法正确的 API 调用!它可以方便地替代 Langchain!

 

Gorilla 的代码和模型文件托管在 GitHub 上。这里还有一个在谷歌 Colab 笔记本中的模型演示。

 

原文链接:

https://www.infoq.com/news/2023/07/microsoft-gorilla/


相关阅读:

比Bing更早将LLM集成到搜索引擎中,这家由谷歌前高管创立的公司为什么还是失败了?

马斯克等人热捧:高薪缺人,但要懂全栈懂LLM,一个全新职业正在兴起!

2023-08-02 10:525457

评论

发布
暂无评论
发现更多内容

Java多线程 Callable和Future

Yeats_Liao

后端 Java core 10月月更

kubernetes

急需上岸的小谢

10月月更

2022-10-16:以下go语言代码输出什么?A:timed out;B:panic;C:没有任何输出。 package main import ( “context“ “fmt“

福大大架构师每日一题

golang 福大大 选择题

【算法】剑指offer-调整数组顺序&&数组出现超过一半的数字

芒果酱

c++ 算法 10月月更

微信朋友圈的高性能复杂度分析

小虎

架构训练营

Vue 2x 中使用 render 和 jsx 的最佳实践 (2)

默默的成长

Vue 前端 10月月更

分支规范和git提交规范

默默的成长

git 前端 10月月更

低代码探索:freemarker的模板和表达式

程序员架构进阶

低代码平台 模板引擎 10月月更 freemarker

模块二作业

Diana S

#架构实战营

TCP 复位攻击原理和实战复现

急需上岸的小谢

10月月更

CorelDRAW 2019,软件应用项目(二)

张立梵

设计师 CorelDRAW 2022 10月月更

企业级大数据技术框架

穿过生命散发芬芳

大数据技术 10月月更

MAC地址与IP地址

急需上岸的小谢

10月月更

SpringBoot的实体类中常用的注解

Java学术趴

10月月更

极客时间—架构实战营—第九期—模块二作业

阿梁

02微信高能性复杂度分析

神奇的叶叔叔

Java多线程 线程池Executor框架

Yeats_Liao

后端 Java core 10月月更

八大排序(下)

lovevivi

c 数据结构 10月月更

当前Serverless的六大局限性

阿泽🧸

Serverless 10月月更

Java多线程 Future和FutureTask的区别

Yeats_Liao

后端 Java core 10月月更

cstdio的源码学习分析10-格式化输入输出函数fprintf---宏定义/辅助函数分析04

桑榆

源码刨析 10月月更 C++

SpringBoot实体类常用注解(二)

Java学术趴

10月月更

架构--作业2

李某人

架构实战营

面试突击90:过滤器和拦截器有什么区别?

王磊

八大排序 (上)

lovevivi

c 数据结构 10月月更

Smart Finance:熊市下,GameFi P2E热潮仍能得到延续

鳄鱼视界

架构实战营模块2-微信朋友圈高性能架构

冷夫冲

架构 架构训练营 架构实战营

前端JS规范

默默的成长

Vue 前端 10月月更

Web3.0杂谈-#006(53/100)

hackstoic

DAO Web3.0

超越GPT-4!加州大学伯克利分校与微软研究院合作开源大型语言模型Gorilla_生成式 AI_InfoQ精选文章