超越云端:Octopus v2端侧部署实现高效能语言模型

在人工智能领域,大型语言模型虽然在云端环境中展现出卓越的性能,但它们在隐私保护、成本控制以及对网络连接的依赖性方面存在不足。这些问题限制了AI技术在移动设备和边缘计算场景中的应用潜力。为了克服这些限制,研究者们一直在探索如何在设备端部署更高效、更安全的语言模型。本文将介绍一种突破性的解决方案——Octopus v2模型,是由斯坦福大学的研究者Wei Chen和Zhiyuan Li开发的一种新型设备端语言模型。该模型拥有20亿参数,并在准确性和延迟方面超越了GPT-4,同时将上下文长度减少了95%。与使用RAG(Retrieval-Augmented Generation)基于函数调用机制的Llama-7B相比,Octopus v2在延迟上提升了35倍。这种模型的低延迟特性使其适合在各种边缘设备上部署,满足实际应用的性能需求。其主要优势如下:

高准确性:Octopus v2在功能调用的准确性上超越了当前领先的GPT-4模型,为用户提供了更为可靠的AI代理服务。

低延迟:通过优化模型结构和推理过程,Octopus v2显著降低了响应时间,使得设备端AI应用能够快速响应用户需求。

减少上下文长度:通过创新的标记化方法,Octopus v2大幅度减少了模型在处理任务时所需的上下文信息量,从而降低了计算资源的消耗。

成本效益:相较于云端大型模型高昂的运行成本,Octopus v2的部署和维护成本更低,使得广泛的商业应用成为可能。

隐私保护:设备端模型减少了数据在云端的传输,从而降低了隐私泄露的风险,更好地保护了用户的个人信息。

使用Octopus模型在智能手机上实现的自动化工作流程

Octopus v2模型作为一个设备端语言模型,能够理解和处理自然语言指令,将其转换为可执行的函数调用。在图1中,模型执行以下步骤:

  1. 接收用户指令: 用户通过语音或文本输入向智能手机发出指令。
  2. 解析指令: Octopus模型解析用户的指令,理解其意图和需要执行的任务。
  3. 选择相应函数: 模型根据指令内容,从其知识库中选择最合适的函数或应用程序接口(API)。
  4. 生成参数: 模型生成执行该函数所需的参数,例如日期、时间、位置等。
  5. 执行函数调用: 使用生成的参数,模型调用相应的函数,执行任务。
  6. 反馈结果: 任务执行完毕后,模型将结果反馈给用户,可能是通过屏幕显示、语音通知或其他形式。

图1所展示的自动化工作流程的优势在于其低延迟、高准确性和用户隐私保护。Octopus v2模型减少了对云端资源的依赖,降低了数据传输过程中的隐私风险。模型的快速响应能力使得它适用于需要即时反馈的场景,如语音助手、智能提醒、自动化日程管理等。

方法

Octopus v2模型的设计理念是将语言模型应用于函数调用任务,这需要模型能够从用户查询中准确选择相应的函数并生成正确的函数参数。为了实现这一点,研究者们采用了一个两阶段过程:首先是功能选择阶段,其次是参数生成阶段。在功能选择阶段,模型需要理解函数描述及其参数,利用用户查询信息来创建可执行函数的参数。这一过程可以视为一个分类问题,其中N个可用函数被视为选择池,通过softmax分类来解决。通过将这一选择问题转化为单令牌分类问题,模型能够更准确地预测函数名称,同时减少了所需的令牌数量。

对检索式函数调用过程与Octopus模型的函数调用过程的直观比较。在检索式函数调用中,模型需要从大量候选函数中检索出与用户查询语义最相近的函数,并据此生成响应。这个过程通常涉及复杂的信息检索和上下文理解,可能会增加延迟和降低准确性。相比之下,Octopus模型通过使用功能令牌,将函数名直接映射为模型可识别的单一令牌,从而简化了函数名预测过程,减少了所需的令牌数量,并显著提高了函数调用的准确性和速度。这种创新的方法允许Octopus模型在设备端快速准确地执行函数调用,同时大幅度降低了延迟,为用户提供了更为流畅和高效的交互体验

Octopus v2模型的一个关键创新是引入了功能令牌的概念。类似于自然语言的标记化,研究者们提出将特定函数表示为功能令牌。这些功能令牌通过类似于自然语言模型处理罕见词汇的技术进行训练,例如word2vec框架,其中上下文词汇丰富了令牌的语义表示。功能令牌的训练方法允许模型通过上下文来学习特定术语,即使这些术语在预训练语言模型中并不常见。通过这种方法,功能令牌能够被有效地集成到模型中,使得模型能够将函数调用方法转化为标准完成任务。

为了训练、验证和测试模型,研究者们采用了一套系统化的方法来收集高质量的数据集。以Android API为例,研究者们根据可用性、使用频率和技术实现的复杂性来选择API,并将其组织成三个不同的类别。数据集的生成包括三个关键阶段:生成相关查询及其关联的函数调用参数;开发不相关查询并配备适当的函数体;通过Google Gemini实现二元验证支持,确保数据集的完整性和准确性。

生成数据集的过程,涉及两个关键阶段:(1) 为特定API创建可解决的查询和生成适当的功能调用;(2) 创建无法解决的查询,并补充不相关的功能体

在模型开发和训练阶段,研究者们使用了Google Gemma-2B模型作为预训练模型,并采用了两种不同的训练方法:全模型训练和LoRA模型训练。全模型训练使用了AdamW优化器,设置了5e-5的学习率、10步的预热期和线性学习率调度器。LoRA训练同样使用了AdamW优化器和相同的学习率配置,但将LoRA应用于特定的模型模块,并设置了16的秩和32的alpha参数。这两种训练方法都设置了3个训练周期。

基准测试的准确率图表,展示了不同模型在功能调用准确性方面的比较。图表中包括了Llama-7B-RAG、GPT-3.5-RAG、GPT-3.5、GPT-4以及Octopus系列模型(Octopus-0、Octopus-1、Octopus-2和Octopus-3)的准确率对比。这些模型的区别在于数据集大小和训练方法

实验

研究者们选择Android系统功能调用作为案例研究,以展示Octopus v2模型在生成准确功能调用方面的卓越性能。实验聚焦于模型的两个关键指标:准确性和延迟。通过选择20个Android API作为数据集基础,研究者们采用了两种不同的方法来生成函数调用命令。第一种方法是使用RAG方法,根据用户查询识别最相似的函数描述,然后利用这些描述生成预期的函数调用命令。实验结果表明,Octopus v2模型在这些API上表现出了99.524%的准确率,并显著降低了每次函数调用的延迟。

基准模型的延迟图表,展示了不同模型在功能调用推理时间上的表现。它包括了Llama-7B-RAG、GPT-3.5-RAG、GPT-3.5、GPT-4以及Octopus系列模型的延迟比较

除了Android功能调用,Octopus v2模型的评估还扩展到了车辆功能调用,显示了算法对不同用例的适应性。研究者们专注于车辆的基本控制方法,如音量调节、空调控制和座椅定位。通过对车辆功能进行基准测试,观察到了与Android功能评估一致的性能模式。此外,使用Yelp和DoorDash API进行的测试也证实了模型在不同功能集上的性能一致性。

在训练Octopus v2模型时,数据集的大小对性能有显著影响。研究者们分析了使用1,000个数据点与只使用100个数据点的API训练模型的性能差异。结果表明,即使只使用100个数据点,模型仍然能够达到98.095%的准确率。这表明在训练新功能集时,可以在保持高性能的同时减少数据生成的成本。

LoRA(Low-Rank Adaptation)在Octopus v2模型框架中扮演了重要角色,尤其是在将模型集成到多个应用程序中时。与使用完整模型训练不同,研究者们选择了针对不同应用程序特定功能设置的LoRA训练。实验结果显示,尽管转向LoRA训练会导致轻微的准确率下降,但维持的高准确率水平对于生产部署来说已经足够健壮。

四种不同 Octopus 模型的配置细节。这些配置包括训练数据集的大小和训练配置

为了实现平行功能调用和嵌套功能调用,研究者们指出需要为每个API准备4K数据点,以便达到与单一功能调用相同的准确度水平。这表明在更复杂的函数调用场景中,模型需要更多的数据来学习如何正确地执行并行或嵌套的任务。

在模型训练中引入特殊令牌时,研究者们面临了数据集不平衡的挑战。为了解决这个问题,他们采用了加权交叉熵损失函数作为替代损失,以改善模型的收敛性。在配置中,非特殊令牌被赋予了1的权重,而特殊令牌则获得了更高的权重。实验表明,在训练过程的早期使用加权损失有助于收敛。然而,实验也发现,使用等权重的令牌损失在微调模型的性能或实际训练时间上没有显著差异。因此对于小数量的功能令牌,推荐使用等权重的损失函数。

使用不同权重的代理损失函数时模型的验证损失。这种损失函数是为了处理在模型训练中引入的特殊令牌(如功能令牌)而设计的

通过这些详细的实验设置和评估,Octopus v2模型证明了其在不同场景下的有效性和可靠性。这些实验不仅展示了模型的强大性能,也为未来的研究和应用提供了宝贵的见解和数据支持。

Octopus v2模型的开发为智能设备的语言处理能力带来了突破性的进步。它不仅在准确性和延迟上超越了现有的大型语言模型,而且通过减少上下文长度,降低了模型运行的资源需求。这为智能设备在各种生产环境中的实际应用铺平了道路,同时也为未来的AI技术发展指明了方向。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习补充

一、数据抽样 数据预处理阶段:对数据集进行抽样可以帮助减少数据量,加快模型训练的速度/减少计算资源的消耗,特别是当数据集非常庞大时,比如设置sample_rate0.8.平衡数据集:通过抽样平衡正负样本,提升模型…

揭秘shopee、Lazada爆单秘诀:自养号补单策略大公开

在东南亚的电商跨境领域,Shopee和Lazada无疑占据了举足轻重的地位,为印地、马来、台湾、菲律宾、新加坡、泰国和越南等地的消费者提供了丰富的在线购物选择。随着电商竞争的日益激烈,许多商家开始探索各种有效的推广策略,其中&…

没有SSL证书,会造成哪些影响?

没有SSL证书,网站及其用户将会面临多种安全隐患和负面影响,主要包括但不限于以下几点: 1、安全警告:现代浏览器如谷歌Chrome会在用户尝试访问没有SSL证书的网站时显示明显的警告信息,如“不安全”标签,这会…

F407核心板小板快速入门000

1、现在实验室用的F407核心板有两个类型。都是用反客科技的板子。 一个是STM32F407ZGT6型号的FM板卡。一个是stm32F407VET6的板子FK板卡。前者是我们做工程训练大赛用到的。后者是做其他没有那么复杂的项目比如大创、电赛、机器人大赛等使用,板卡尺寸更小。 前者的参…

C++ 结构体对齐详解

目录 前言 一、为什么要对结构体进行对齐操作? 二、基本概念 三、 对齐规则 四、示例讲解 1.简单的变量对齐 2.结构体包含有结构体的对齐 结构体成员详细解析 五、使用指令改变对齐方式 __attribute__((packed)) #pragma pack(push, n) #pragma pack(pop) …

Java中如何处理XML数据?

Java中如何处理XML数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何高效处理XML数据的技术和最佳实践。XML&…

Elasticsearch:赋能数据搜索与分析的利器

Elasticsearch:赋能数据搜索与分析的利器 在大数据的时代背景下,如何高效地搜索、分析和利用数据成为了企业和开发者面临的重要问题。Elasticsearch,作为Elastic Stack的核心组件,以其分布式、高扩展性和实时的搜索与分析能力&am…

【CentOS7】Linux安装Docker教程(保姆篇)

文章目录 查看是否已安装卸载(已安装过)docker安装友情提示 更多相关内容可查看 注:本篇为Centos7安装Docker,若为其他系统请理性参考 查看是否已安装 如果已安装,请卸载重新安装 docker --version这里显示已安装 …

人机的三级抽象

数学的三级抽象包括第一级抽象是数表示万物、第二级抽象是字母表征数、第三级抽象是运算规则的抽象(如群论),在人机交互中,类比于数学的三级抽象,可以理解为: 第一级抽象:用户界面和操作的抽象化…

力扣第210题“课程表 II”

在本篇文章中,我们将详细解读力扣第210题“课程表 II”。通过学习本篇文章,读者将掌握如何使用拓扑排序来解决这一问题,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。 问题描述 力扣第210题“…

Linux 服务管理

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysqld , sshd防火墙等),因此又称为守护进程。 比如通过xshell进行连接的时候,需要输入的端口号就是通过守护…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷8(容器云)

#需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包及镜像)或有问题的,可私聊博主!!! #需要资源(软件包…

基于Java图书馆管理系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

iptables(4)规则匹配条件(源、目、协议、接口、端口)

简介 前面我们已经介绍了iptables的基本原理,表、链,数据包处理流程。如何查询各种表的信息。还有基本的增、删、改、保存的基础操作。 经过前文介绍,我们已经能够熟练的管理规则了,但是我们只使用过一种匹配条件,就是将”源地址”作为匹配条件。那么这篇文章中,我们就来…

[职场] 教师资格面试流程 #经验分享#其他

教师资格面试流程 教师资格证面试流程如下: ①候考。在考试当日,考生按照准考证上的时间进入候考室,进行抽签分组。 ②抽题。考生按照抽签顺序分组安排从面试题库系统试题组中任选其中一道试题,确认抽题后,计算机打印出…

爱心商城管理系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,企业管理,用户管理,论坛管理,商品管理,公告管理,用户捐赠 企业账户功能包括:系统首页,个人中心…

机器学习(二)

机器学习 3.分类算法3.1 sklearn转换器和估计器3.1.1 转换器3.1.2 估计器(在sklearn实现机器学习算法) 3.2 K-近邻算法3.2.1 什么是K-近邻算法3.2.2 K-近邻算法API3.2.3 案例:鸢尾花种类预测3.2.4 K-近邻总结 3.3 模型选择与调优3.3.1 交叉验证(cross va…

LeetCode 70. 爬楼梯 使用c++解答

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&#x…

【STM32+FPGA】先进算力+强安全+边缘AI,64位STM32MP2聚焦工业4.0应用

工业应用数字化和智能化程度,是衡量新质生产力的重要标准。STM32最新一代64位微处理器STM32MP2凭借先进算力、丰富接口和高安全性,为高性能和高度互联的工业4.0应用赋能。 STM32MP2四大关键特性,为工业4.0应用赋能 STM32MP2系列的第一颗产品S…

XTDrone-无人机与无人船协同初步-配置教程

说明:配置该教程时所使用的是Ubuntu20.04 1 海洋与无人船仿真环境搭建 cp -r ~/XTDrone/sitl_config/usv/* ~/catkin_ws/src/ cd catkin_ws catkin build # or catkin_make 说明:由于官方所编写的脚本时几年之前的,所以很多东西不符合现在…