Octopus:2B 参数语言模型即可媲美 GPT-4 的函数调用性能

近年来,大语言模型在 PC、智能手机和可穿戴设备的操作系统中应用逐渐成为趋势。 例如,MultiOn (Garg, 2024) 和 Adept AI (Luan, 2024) 等 AI 助理工具,以及 Rabbit R1 (Lyu, 2024) 和 Humane AI Pin (Chaudhri, 2024) 等 AI 消费产品在消费者市场正获得关注。这些产品利用语言模型将人类自然语言转换为可操作的命令,为用户提供便捷的操作体验。然而,现有的基于云端大模型的解决方案存在隐私泄露风险、推理成本高、网络连接要求高等问题。虽然一些研究者提出基于开源模型的函数调用方法。 然而,这些方法在推理任务和能耗方面表现不佳,无法满足实际应用的需求。

为此斯坦福大学采用了一种独特的功能性标记策略,基于谷歌Gemini 2B模型开发了Octopus-V2模型,专为Android API的功能调用定制,超越了基于RAG的方法,特别适用于边缘计算设备。比Llama7B + RAG方案快36倍,性能优于 GPT-4,延迟时间小于 1 秒。它能够在移动设备上直接运行,支持广泛的应用场景,从而推动Android系统管理和设备间协同工作的新方式。其快速和高效的推理能力,特别适合需要高性能和精确功能调用的场景,如智能家居控制、移动应用开发等。

这篇论文的核心在于,传统实现AI 代理的方法是先从所有可用函数中检索与用户查询最匹配的函数,然后再生成函数参数。这种方法的缺点是需要处理大量的文本信息,计算量比较大。本文提出了一种新的方法,将函数选择问题转化为一个分类问题。将所有可用函数都映射为一个唯一的标记,然后使用语言模型来预测用户查询对应的函数标记。这种方法的优点是计算量更小,并且可以更好地处理嵌套函数调用等复杂情况。

具体点说就是,传统的方法就像是一个字典,里面包含了所有可用函数的定义和描述。当用户输入一个指令要求时,系统会先查找字典中与查询最匹配的函数,然后根据函数的定义和描述来生成函数参数。

而论文提出的新方法则就像是一个翻译系统,它可以将用户查询翻译成一个特定的函数标记。翻译的能力是通过对模型的训练来提高的。训练数据通常包含大量用户查询与函数之间的对应关系。训练数据越多,语言模型的学习能力就越强。论文团队使用了一个大型的训练数据集,该数据集包含了大量用户查询与函数之间的对应关系。这使得我们的语言模型能够准确地预测用户查询对应的函数标记。

Octopus-V2 开发的重要步骤如下:

1. API 收集

首先从收集 API 开始,重点关注以下方面的 API:

·易用性: 开发人员易于使用。

·使用频率: 安卓应用程序开发中常用。

·技术复杂性: 具有复杂的的技术实现。

论文团队总共收集了 204 个 Android API,并将其分为三类:

1. Android 系统 API: 用于基本系统级功能的 API,例如拨打电话、发短信、设置闹钟、调整屏幕亮度、创建日历条目、管理蓝牙、启用请勿打扰模式和拍照。我们排除了诸如访问系统状态信息或更改辅助功能设置等高度敏感的任务的 API。

2. Android 应用程式 API: 来自安卓设备上预装的谷歌应用(例如 YouTube、Chrome、Gmail 和地图)的 API。我们关注的功能包括获取热门新闻、获取天气更新、搜索 YouTube 内容和地图导航。

3. Android 智能设备管理 API: 用于管理 Google Home ekosystem(生态系统)中的智能家居设备的 API,例如调整 Nest 恒温器、控制 Google Nest 设备上的媒体播放以及使用 Google Home 应用控制门锁。

2. 数据集生成

创建数据集的过程主要分为三个关键步骤:

1. 生成相关查询和函数调用: 这涉及创建定义良好的查询(用户请求)和相应的函数调用(执行 API 所需的参数)。专注于生成可由单个 API 解决的正向查询。使用 Google Gemini API 调用来生成基于查询和 API 描述的函数调用参数。

2. 负样本: 为了提高模型区分有效和无效请求的能力,将负面示例包含在数据集中,这对于实验效果至关重要。

3. 数据集验证: 即使像 OpenAI 的 GPT-4 和 Google 的 Gemini 这样的大型语言模型也可能出错,尤其是在生成函数调用参数时。这些错误可能是缺少参数、参数类型错误或对查询的误解。为了解决这个问题,实施了验证过程。该系统允许 Google Gemini 检查生成的函数调用是否完整准确。如果没有,它会要求 Gemini 重新生成。

通过遵循这些步骤,确保收集高质量的数据集,以帮助模型良好地运行。

这项研究的潜在影响是巨大的,为大模型为手机端等针对应用程序特定场景的训练铺平了道路,开发人员可以精确定位其用户最常用的 API,将它们转换为模型的函数标记,然后继续部署。该策略能够完全自动化应用程序工作流程,模拟类似于 Apple 的 Siri 的功能,但响应速度和准确率大大提高。此外,该模型在 PC、智能手机和可穿戴设备的操作系统中的应用也呈现出另一个令人兴奋的前景。软件开发人员可以针对操作系统训练小型 LoRA。通过积累多个 LoRA,该模型可以促进跨不同系统组件的有效函数调用。例如,将此模型纳入 Android 生态系统将使 Yelp 和 DoorDash 开发人员能够训练不同的 LoRA,从而使该模型在移动平台上也能够运行。

展望未来,开发一个专注于设备推理的模型将实现云部署速度的显著提升,在本地部署时,为注重隐私或运营成本的用户提供有价值的解决方案。这种双重部署策略不仅扩展了模型在云环境和本地环境中的实用性,而且还迎合了用户对速度和效率或隐私和成本节约的偏好。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac 装 虚拟机 vmware、centos7等,21年网络安全面经分享

链接: https://pan.baidu.com/s/1oZw1cLyl6Uo3lAD2_FqfEw?pwdzjt4 提取码: zjt4 复制这段内容后打开百度网盘手机App,操作更方便哦 centos8 链接: https://pan.baidu.com/s/10KWpCUa2JkwcjYlJZVogKQ?pwdn99a 提取码: n99a 复制这段内容后打开百度网盘手机App&…

电脑总是蓝屏怎么办,电脑总是蓝屏怎么办开不了机

工作离不开电脑,不过电脑经常会出现一些故障让我们崩溃不已,尤其类似电脑蓝屏开不了机这种,总是突然发生,让人猝不及防。那么面对这一情况,相信很多人都是不知道该如何处理的。这里提供两个方法,第一种方法…

网络安全---RSA公钥加密与签名

实验项目:RSA公钥加密与签名实验 1.实验目的 本实验的学习目标是让学生获得 RSA 算法的动手经验。 通过课堂学习,学生应该已经了解 RSA 算法的理论部分, 知道在数学上如何生成公钥、私钥以及如何执行加密、解密和签名生成、验证。 通过使用…

防SSL证书泄露服务器IP教程

在Web CDN(内容分发网络)中,防止SSL泄露源服务器IP是一个重要的安全考虑。下面是一些建议的方法来实现这一目标: 首先呢,我们隐藏服务器IP不要使用服务器IP生成的SSL证书,不然会泄露我们的服务器IP。 泄露了…

【BEV 视图变换】Fast-Ray 基于查找表LUT、多视角到单个三维体素转换

前言 在BEV感知方案中,将图像特征转为BEV特征,是关键的一步,这过程也称为2D视图变换。 本文介绍Fast-Ray方法,在Fast-BEV中被提出的,它是一种轻量级并且易于部署的视图转换方法,用于快速推理。 通过将多…

.net 6 集成NLog

.net 6 webapi项目集成NLog 上代码step 1 添加nugetstep 2 添加支持step 3 添加配置文件 结束 上代码 step 1 添加nuget 添加nuget 包 Roc step 2 添加支持 修改program.cs var builder WebApplication.CreateBuilder(args); // 添加NLog日志支持 builder.AddRocNLog();ste…

java中static关键字(尚未完善)

文章目录 static关键字static可修饰static方法举例static代码块拓展其他链接 static关键字 加载顺序类是构建对象的模板,一个类多个对象static修饰的方法或者变量都属于类,类独有的 static可修饰 修饰变量(属于类变量,被创建出来…

极狐GitLab 如何在 helm 中恢复数据

本文作者:徐晓伟 GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 本文主要讲述了如何在极狐GitLab …

mysql运维知识总结

1. 日志 1.1 错误日志 错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过 程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的&…

Linux: 工具: tshark 抓到了收方向的ESP明文包?

根据这个描述,看着是正常的, 抓到包之后,可以方便的分析问题,省去在wireshark里解码的问题。 经过调查发现是内核将ESP解开之后,如果是tunnel模式,内核又重新将skb丢给了interface去做处理。这样tshark/tcp…

搭建Grafana+Prometheus监控Spring Boot应用

Spring项目改造 maven依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency><dependency><groupId>io.micrometer</groupId><artif…

Linux服务器上搭建深度学习环境(安装anaconda、创建虚拟环境、安装pytorch)

Linux服务器的搭配 Linux服务器上安装anaconda创建虚拟环境linux上安装pytorchxshell连接服务器 Linux服务器上安装anaconda 链接 创建虚拟环境 参考教程&#xff1a;此处 linux上安装pytorch 链接 xshell连接服务器 链接

本地项目提交 Github

工具 GitIdeaGithub 账号 步骤 使用注册好的 Github 账号&#xff0c;登陆 Github&#xff1b; 创建 Repositories (存储库)&#xff0c;注意填写图上的红框标注&#xff1b; 创建完成之后&#xff0c;找到存储库的 ssh 地址或 https 地址&#xff0c;这取决于你自己的配置…

JRT判断数据是否存在优化

有一种业务情况类似下图&#xff0c;质控能做的项目是仪器关联的项目。这时候维护质控物时候开通项目时候要求加载仪器项目里面的项目&#xff08;没有开通的子业务数据的部分&#xff09;。对右边已经开通的部分要求加载仪器项目里面的项目&#xff08;有开通业务子数据的部分…

微信小程序使用iconfont

进入iconfont&#xff0c;添加至项目 进入项目&#xff0c;点击生成代码&#xff0c;或更新代码 点击打开样式 复制内容到小程序的style文件夹下 最后引入到app.wxss

鹅厂实习offer

#转眼已经银四了&#xff0c;你收到offer了吗# 本来都打算四月再投实习了&#xff0c;突然三月初被wxg捞了&#xff08;一年前找日常实习投的简历就更新了下&#xff09;&#xff0c;直接冲了&#xff0c;流程持续二十多天&#xff0c;结果是运气还不错&#xff0c;应该是部门比…

C# 之 Task、async和 await 、Thread 的简单整理

1、异步方法(async/await) 在 C# 5.0 中出现的 async 和 await &#xff0c;让异步编程变得更简单。 此方法利用了 .NET Framework 4.5 及更高版本、.NET Core 和 Windows 运行时中的异步支持。 编译器可执行开发人员曾进行的高难度工作&#xff0c;且应用程序保留了一个类似…

CAXA3D实体设计2022版 下载地址及安装教程

CAXA 3D是一款专业的实体设计软件&#xff0c;由中国软件公司CAXA开发。它提供了丰富的功能和工具&#xff0c;用于进行三维实体建模和设计。 CAXA 3D具备强大的建模和绘图功能&#xff0c;使用户能够创建复杂的三维实体模型。它支持多种建模方式&#xff0c;包括实体建模、曲…

智过网:报考中级注册安全工程师需要什么条件?

随着社会的快速发展和科技的日新月异&#xff0c;安全生产问题越来越受到人们的关注。中级注册安全工程师作为专业安全管理人才&#xff0c;其职责与角色日益凸显。那么&#xff0c;想要报考中级注册安全工程师&#xff0c;需要满足哪些条件呢&#xff1f; 首先&#xff0c;报考…

Spring Boot 入门指南:轻松上手图文教程

前言 什么是 Spring Boot&#xff1f; Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot 是所有基于 Spring Framework 5.0 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 设计目的&#xff1a; 用…