专栏名称: 计算机视觉深度学习和自动驾驶
讨论计算机视觉、深度学习和自动驾驶的技术发展和挑战
目录
相关文章推荐
上海本地宝  ·  上海失业金申请后,何时能到账? ·  3 天前  
上海本地宝  ·  18万㎡!上海又一免费梅花展来了! ·  2 天前  
东方网  ·  突发公告!董事长失联! ·  2 天前  
上海发布  ·  明天开始!新一轮消费券就按攻略这么领→ ·  2 天前  
51好读  ›  专栏  ›  计算机视觉深度学习和自动驾驶

Octopus v2: 超级智体的设备端语言模型

计算机视觉深度学习和自动驾驶  · 公众号  ·  · 2024-04-08 04:14

正文

24年4月斯坦福大学论文“Octopus v2: On-device language model for super agent”。

语言模型已在各种软件应用程序中显示出有效性,特别是在与自动工作流程相关的任务中。这些模型拥有调用函数的关键能力,这对于创建AI智体至关重要。尽管云环境中的大语言模型具有高性能,但它们通常与隐私和成本问题相关。当前用于函数调用的设备端模型面临延迟和准确性问题。本文研究提出了一种方法,使具有 2B个参数的设备上模型能够在准确性和延迟方面超越 GPT-4 的性能,并将上下文长度减少 95%。与具有基于 RAG 的函数调用机制的 Llama-7B 相比,本文方法将延迟提高了 35 倍。此方法将延迟降低到适合在生产环境中的各种边缘设备部署的水平,从而符合实际应用程序的性能要求。

如图是Octopus在智能手机上的工作流:

由于内存限制和推理速度较低,在 PC 或智能手机等边缘设备上部署更大的模型具有挑战性。 尽管如此,将较小规模的大语言模型 (LLM) 部署到边缘设备的努力正在进行中。 已经引入了可管理大小的开源模型,例如 Gemma-2B、Gemma-7B、StableCode-3B(Pinnaparaju 2023)和 Llama-7B(Touvron 2023)。 为了提高这些模型在设备上的推理速度,已经开发了 Llama cpp(llama.cpp 2023)等研究计划。 MLC LLM 框架(MLC 2023)允许在手机和其他边缘设备上运行 7B 语言模型,展示了跨各种硬件(包括 AMD、NVIDIA、Apple 和 Intel GPU)的兼容性。

人们已经观察到较小规模模型的函数调用能力取得了快速进步。NexusRaven (Srinivasan 2023)、Toolformer (Schick 2024)、ToolAlpaca (Tang 2023)、Gorrilla (Patil 2023)、ToolLlama (Qin 2023) 和Taskmatrix(Liang 2023)等项目 ,已经证明7B和13B模型可以调用外部API,其功效与GPT-4相当。开创性的 Octopus v1 项目甚至使 2B 模型的性能与 GPT-4 相当。这项工作采用基于 RAG 的方法进行函数调用,其中模型根据用户的查询从大池中检索相关函数,然后使用这些函数作为上下文生成响应。

要成功调用函数,必须从所有可用选项中准确选择适当的函数并生成正确的函数参数。这需要两个阶段的过程:函数选择阶段和参数生成阶段。第一步涉及了解函数的描述及其参数,用户查询的信息为可执行函数创建参数。直接策略可能会将分类模型与因果语言模型结合起来。将 N 个可用函数想象为一个选择池,将选择挑战转化为 softmax 分类问题。

一种直接的分类方法是基于检索的文档选择,通过语义相似性识别与用户查询最匹配的功能。或者可以使用分类模型将查询映射到特定的函数名称。或者,自回归模型(例如 GPT 模型)可以在潜函数的上下文中根据用户的查询来预测正确的函数名称。这两种方法本质上都将任务分为两部分,可能需要两个模型 π1 和 π2。

在多任务学习/元学习(Caruana 1997)原理的驱动下,为了实现更快的推理速度和系统便利性,追求统一的 GPT 模型策略,设置 π1 = π2 = π。

当利用语言模型来制定函数名称时,必须生成多个tokens来形成一个函数名称,这可能会导致不准确。为了减少此类错误,将函数指定为独特的功能tokens。例如,在 N 个可用函数池中,分配从 范围的token名称来符号化这些函数。这将函数名称的预测任务转化为 N 个功能tokens之间的单token分类,提高了函数名称预测的准确性,同时减少了所需tokens的数量。为了实现这一点,将从 的新特殊tokens引入到tokenizer中,并修改预训练模型的架构,语言头扩展额外的 N 个单元。因此,对于函数名称预测,语言模型通过 argmax 概率选择来确定 N 个功能tokens中的正确函数。

为了选择一个正确的功能token,语言模型必须掌握与该token相关的含义。将功能描述合并到训练数据集中,使模型能够了解这些专用tokens的重要性。

该方法还有一个额外的关键优势。在对模型进行微调以了解功能tokens的重要性后,可以使用添加的特殊tokens, 作为 早期停止 标准进行推理。该策略消除了从功能描述中分析tokens的必要性,消除了相关功能的检索及其描述的处理。因此,这大大减少了准确识别函数名称所需的tokens数量。传统的基于检索的方法与所提出的模型之间的差异如图所示。

作为示例,从 Android API 开始。 选择标准包括可用性、使用频率和技术实施的复杂性。 最终收集了 20 个 Android API,并将它们分为三个不同的类别,确保只要开发人员拥有必要的系统权限,每个功能都可以通过 Android 应用程序开发在设备上实际执行。 此外,还编译了车辆中可用的 API。

数据集的创建涉及三个关键阶段:(1)生成相关查询及其关联的函数调用参数;(2) 适当的函数体陪伴下提出不相关的询问;(3) 通过 Google Gemini 实现二进制验证支持。

如图所示是生成数据集的过程,这涉及两个关键阶段:(1)创建特定于某些 API 的可解决查询并为其生成适当的函数调用,以及(2)创建不可解决的查询,并由不相关的函数体陪伴。结合二进制验证机制进行严格验证可确保收集优化的训练数据集,从而显着改进模型功能。







请到「今天看啥」查看全文