可在手机上运行的2B LLMs ,看看斯坦福大学的这个项目

项目简介

Octopus-V2-2B是由斯坦福大学Nexa AI开发的一种先进的开源大型语言模型,具有20亿参数,专为Android API的功能调用定制。

与需要详细描述潜在函数参数的检索增强生成(RAG)方法不同Octopus-V2-2B采用了一种独特的功能性标记(functionaltokens)策略,用于其训练和推理阶段。

这种方法不仅使其达到了与GPT-4相当的性能水平,还大幅提高了推理速度,超越了基于RAG的方法,特别适用于边缘计算设备。

它能够在设备上直接运行,支持广泛的应用场景,从而推动Android系统管理和设备间协同工作的新方式。其快速和高效的推理能力,特别适合需要高性能和精确功能调用的场景,如智能家居控制移动应用开发等。0b59d557e267b32aab0494829ca3acad.jpeg功能特点

1.高精度的功能调用:Octopus v2通过引入功能性标记(functionaltokens),能够准确地选择和调用正确的函数,提高了功能调用的准确性。

2.优化的延迟:相比传统的基于RAG的功能调用方法,Octopus v2大幅减少了延迟,提高了推理速度,适合实时应用。

3.上下文长度减少:通过其独特的设计,Octopus v2在进行功能调用时所需的上下文长度减少了95%,这意味着它能够更快地处理请求,同时减轻了设备的负担。

4.设备上运行:Octopus v2专为边缘设备设计,能够直接在设备上运行,无需依赖云计算资源这样既保护了用户隐私,也减少了使用成本。

性能

1.延迟:在基准测试中,Octopus-V2-2B展示了显著的推理速度,其速度是单个A100 GPU上。“Llama7B+RAG解决方案”的35倍。与依赖A100/H100 GPU集群的GPT-4-turbo(gpt-4-0125-preview)相比,Octopus-V2-2B快了168%。

2.准确性:Octopus v2在功能调用的准确性上超过了包括GPT-4等现有的解决方案,准确率在各类基准测试中接近100%。其功能调用准确率比“Llama7B+RAG解决方案”高出31%。在基准数据集中,其功能调用准确率与GPT-4和RAG+GPT-3.5相当,分数在98%到100%之间。

3.效率:通过有效减少所需的上下文长度和优化推理速度,Octopus v2在不牺牲准确性的前提下提供了高效的性能,特别适合在资源受限的设备上运行。

模型架构及技术原理

Octopus v2使用了Google Gemma-2B模型作为其预训练模型的基础。在此基础上,通过引入特殊的功能性标记(functional tokens)和进行细致的微调,Octopus v2能够理解和执行软件应用中的函数调用,从而实现了在设备上运行时更高的准确性和更低的延迟。这种方法有效地将Google Gemma 2B模型转化为一个更适合在边缘设备上使用的高性能语言模型,同时节省了上下文长度并优化了性能。a6e5e553b118774333cbfcab503f1a80.jpeg1.预训练模型选择:Octopus v2选择了Google Gemma-2B模型作为预训练基础,这是因为Gemma-2B提供了强大的语言理解和生成能力,是构建高性能语言模型的理想起点。

2.功能性标记引入:为了提高模型在函数调用任务上的性能,Octopus v2引入了功能性标记(functional tokens)。这些标记代表了不同的软件操作或功能,使得模型能够通过识别这些标记来准确执行特定的函数调用。

3.模型微调:在预训练模型的基础上,通过对模型进行细致的微调来适应具体的函数调用任务这一步骤涉及将功能性标记及其对应的函数描述加入训练数据中,训练模型以理解和映射这些标记到相应的软件操作上。

4.减少上下文长度:通过优化模型的输入处理方式,Octopus v2能够在进行函数调用时显著减少所需的上下文长度。这是通过直接使用功能性标记来指代复杂的函数调用过程,从而减轻模型处理负担并加快响应速度。

5.提高执行效率:微调后的Octopus v2模型能够快速准确地识别功能性标记,并映射到正确的函数执行过程,无需处理兄长的自然语言指令。这不仅提高了函数调用的准确性,也大大缩短了执行时间,降低了设备上的运算需求。

6.边缘设备部署:优化后的模型特别适合在边缘设备上部署,如智能手机、汽车、智能家居设备等。这些设备通常资源有限,但通过Octopus v2,它们能够本地执行复杂的语言处理任务,实现快速响应和高度隐私保护。

7.实现多样化应用:凭借其在设备上执行的能力,Octopusv2可以支持多种应用场景,包括但不限于智能家居控制、车载系统交互、离线语音助手等。

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

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

相关文章

离散化实现低通滤波器(选用双线性变换)

学习了离散化后整理了其中的核心步骤,此处不对原理进行深究,仅仅介绍如何对一个连续系统进行离散化 此处可以得到低通滤波器的截止频率为1000rad/s. 离散化的过程为将s 2/Ts * [(z - 1) / (z 1)] (选用双线性变换) 得到离散化序列为 Y(z) [w…

02.安装MySQL

安装MySQL 1.Windows使用压缩包安装MySQL8 下载安装包 地址:https://downloads.mysql.com/archives/community/ 解压安装包在没有中文和空格的目录下 省略 在解压目录创建my.ini文件并添加内容如下 不创建也是可以的,让它用默认的 配置环境变量 省…

Kubernetes学习笔记13

K8s集群核心概念:Service 我们在之前的学习过程中遇到一个问题,就是如果Pod被误删除,那么Controller重新拉起一个新的Pod时,我们发现PodIP地址是变化着的,我们访问必须更新IP地址。 这样对于大量的Pod运行应用来说&a…

Linux双网卡默认路由优先级设置不正确,导致网络不通问题定位

问题描述 RHEL9 双网卡环境,两个网卡配置如下:(eth0 走内网,eth1 走外网) eth0 192.168.10.20/24 网关: 192.168.10.254 eth1 10.206.216.92/24 网关: 10.206.216.254配置完成后,curl https://www.baidu.com访问百度失…

鸿蒙HarmonyOS开发实战:【分布式音乐播放】

介绍 本示例使用fileIo获取指定音频文件,并通过AudioPlayer完成了音乐的播放完成了基本的音乐播放、暂停、上一曲、下一曲功能;并使用DeviceManager完成了分布式设备列表的显示和分布式能力完成了音乐播放状态的跨设备分享。 本示例用到了与用户进行交…

数据结构初阶:二叉树

树概念及结构 树的概念 树是一种 非线性 的数据结构,它是由 n ( n>0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 。 有一个特殊的结点&a…

一体式I/O模块与RS485串口联动,实现工业网络无缝对接

在现代工业自动化领域中,一体化I/O模块和RS485串口的联动应用已经成为实现工业设备高效、稳定通信的关键技术手段之一。这种联动机制能够有效地将各种现场设备的数据实时、准确地传输到上位机系统,从而实现工业网络的无缝对接。 一体化I/O模块&#xff…

tailwindcss+vue3+vite+preline项目搭建

最近原子化样式比较火,用了一下确实还不错,也确实是用一些标准的样式能够使网页看起来比较统一,而且能够极大的减轻起名字的压力,有利有弊,就不一一细说了。 之前开发都是习惯于使用vitevue3来开发的,此次搭…

ClickHouse--17--argMin() 和argMax()函数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 argMin() 和argMax()函数业务场景使用案例1.准备表和数据:业务场景一:查看salary 最高和最小的user业务场景二:根据更新时间获取…

C++11 数据结构0 什么是 “数据结构“?数据,数据对象,数据元素,数据项 概念。算法的基本概念 和 算法的度量,大O表示法,空间换时间的代码

数据: 是能输入计算机且能被计算机处理的各种符号的集合。数值型的数据:整数和实数。非数值型的数据:文字、图像、图形、声音等。 数据对象: 性质相同的 "数据元素" 的集合 例如一个 int arr[10], Teacher tea[3]; 数…

C++设计模式:单例模式(十)

1、单例设计模式 单例设计模式,使用的频率比较高,整个项目中某个特殊的类对象只能创建一个 并且该类只对外暴露一个public方法用来获得这个对象。 单例设计模式又分懒汉式和饿汉式,同时对于懒汉式在多线程并发的情况下存在线程安全问题 饿汉…

每日OJ题_BFS解决FloodFill②_力扣200. 岛屿数量

目录 力扣200. 岛屿数量 解析代码 力扣200. 岛屿数量 200. 岛屿数量 难度 中等 给你一个由 1(陆地)和 0(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方…

layui中对table表格内容鼠标移入显示 tips内容

要在Layui中的表格中实现鼠标移入显示Tips,你可以使用Layui的事件监听和Tips组件。 有两种实现方式! 第一种是,通过自定义鼠标事件显示 tips。在渲染 table 时,对 filed 进行重构,增加相应的选择器标识,一…

OneForAll安装使用

OneForAll简介 OneForAll是一款功能强大的子域收集工具 原项目地址:GitHub - shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具 gitee项目地址:OneForAll: OneForAll是一款功能强大的子域收集工具 # 安装Python Windows系统安装python参…

Excel文本内容抽取工具[Python]

#创作灵感# 一堆Excel文件,每个打开看太累了。写个脚本直接显示里面的内容多好。最好这些内容可以直接复制到剪切板,方便以后编辑修改。只需要将文件拖动到全屏置顶的文本框内,就能弹出Excel里的内容。支持一次选取多个文件。 开干&#xff…

react17+18 中 setState是同步还是异步更新

在类组件中使用setState,在函数式组件中使用hooks的useState。 setstate目录 1. 类组件1.1 react 17版本1.2 react 18版本 2、函数式组件 1. 类组件 1.1 react 17版本 参考内容:第十一篇:setState 到底是同步的,还是异步的&…

Unity类银河恶魔城学习记录12-8 p130 Skill Tree UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using UnityEngine;public class UI : MonoBehaviour {[SerializeFi…

【精选】发布应用到应用商店的基本介

摘要 本文旨在介绍如何在各大应用商店发布应用,包括市场选择、准备材料、上架步骤以及常见被拒原因及解决方法。通过详细的步骤和经验分享,帮助开发者顺利将应用推向市场。 引言 随着移动应用市场的不断发展,越来越多的开发者希望将他们的…

C++类和对象上

C和C语言本质区别 C语言是面向过程的,面向过程的,分析出求解问题的步骤,然后逐步通过函数调用来逐步解决问题。 C在分析问题是在面对对象的基础上来实现的,即将一件事情拆分为不同的对象,靠的是对象之间的交互来完成的…

OSPF数据报文格式

OSPF协议是跨层封装的协议,跨四层封装,直接将应用层的数据封装在网络层协议后面,IP协议包中协议号字段对应的数值为——89 OSPF的头部信息: ——所有数据包公有的信息 版本:OSPF版本 在IPV4中一般使用OSPFV2&#xf…