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,从而使该模型在移动平台上也能够运行。

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

相关推荐
DREAM依旧9 分钟前
隐马尔科夫模型|前向算法|Viterbi 算法
人工智能
GocNeverGiveUp22 分钟前
机器学习2-NumPy
人工智能·机器学习·numpy
B站计算机毕业设计超人1 小时前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条1 小时前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客1 小时前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon1 小时前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客5202 小时前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神2 小时前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱2 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
咸鱼桨2 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派