3B模型新SOTA!开源AI让日常调用不同大模型更简单

  NEXA AI 投稿

  量子位公众号 QbitAI

  大模型,大,能力强,好用!

  但单一大模型在算力、数据和能耗方面面临巨大的限制,且消耗大量资源。

  而且目前最强大的模型大多为闭源,对 AI 开发的速度、安全性和公平性有所限制。

  AI 大模型的未来发展趋势,需要怎么在单一大模型和多个专门化小模型之间做平衡和选择?

  针对如此现状,两位斯坦福校友创办的 NEXA AI,提出了一种新的方法:

  采用 functional token 整合了多个开源模型,每个模型都针对特定任务进行了优化。

  他们开发了一个名叫 Octopus v4 的模型,利用 functional token 智能地将用户查询引导至最合适的垂直模型,并重新格式化查询以实现最佳性能。

  介绍一下,Octopus v4 是前代系列模型的演化,擅长选择和参数理解与重组。

  此外,团队还探索了使用图作为一种多功能数据结构,有效地协调多个开源模型,利用 Octopus 模型和 functional token 的能力。

  通过激活约 100 亿参数的模型,Octopus v4 在同级别模型中实现了 74.8 的 SOTA MMLU 分数。

  Octopus 系列模型

  这里要重点介绍一下Octopus-V4-3B

  它拥有 30 亿参数,开源,是 Nexa AI 设想中的语言模型图的主节点。

  该模型专为 MMLU 基准测试话题定制,能够高效地将用户查询转换成专业模型可以有效处理的格式。

  它擅长将这些查询正确引导至相应的专业模型,确保精确且有效的查询处理。

  Octopus-V4-3B 具备以下特点:

  • 紧凑尺寸:Octopus-V4-3B 体积紧凑,使其能在智能设备上高效、迅速地运行。
  • 准确性:利用 functional token 设计准确地将用户查询映射到专业模型,提高了其精度。
  • 查询重格式化:帮助将自然人类语言转换为更专业的格式,改善了查询描述,从而获得更准确的响应。

  Nexa AI 把语言模型作为图中的节点整合,并提供了针对实际应用定制的系统架构。

  此外,讨论了使用合成数据集对 Octopus 模型进行训练的策略,强调了这种语言模型图在生产环境中的系统设计。

  从 Octopus v2 提取的用于分类的语言模型

  研究人员在 Octopus v2 论文中介绍了一种名为 functional token 的分类方法。

  Octopus v2 模型有效地处理了这一任务:

  图中的语言模型作为节点

  考虑一个定义为:G=(N,E)。

  其中N代表图中的各种节点,E代表连接这些节点的边。

  节点分为两种类型:

  一,主节点 Nm,它们通过将查询定向到合适的工作节点Nω并传递执行任务所需的信息来协调查询。

  二,工作节点,接收来自主节点的信息并执行所需的任务,使用 Octopus 模型来促进进一步的协调。

  节点信息传输过程如下图所示。

  为了处理用户查询q并生成响应y,研究人员将概率建模为:

  对于只涉及一个工作节点的单步任务,该过程可以定义为:

  这里,P(Nω,phq;Nm)使用 Octopus v2 模型为m选择最佳的相邻工作节点并重新格式化查询为ℎ,这是重构的查询。

  概率P(yqh;Nω)由位于工作节点的语言模型计算。

  对于多步任务,通常在多代理工作流中,该过程涉及多个节点之间的几次顺序交互,如下:

  使用图进行多步骤操作的任务规划

  多步骤任务规划中,所有功能列在上下文中提交给语言模型,生成基于用户查询的计划。

  传统方法在处理长功能描述时有局限性,尤其是参数少于 10B 的模型。

  基于图的方法确保只考虑与特定节点相关的邻近节点,显著减少了选择的复杂性。

  语言模型图的系统设计

  以下详细说明了复杂图中每个节点代表一个语言模型的系统架构,利用多个 Octopus 模型进行协调。

  在准备生产部署时,整合一个负载均衡器以有效管理系统需求至关重要。

  然后,研究团队将系统划分为几个可管理的组件,强调核心方法:

  首先是工作节点部署。

  每个工作节点Nω对应一个单独的语言模型。

  团队建议为这些节点采用无服务器架构,特别推荐使用 Kubernetes 进行基于内存使用和工作负载的强大自动缩放。

  其次是主节点部署。

  主节点应使用不超过 10B 参数的基础模型(实验中使用 3B 模型),以便在边缘设备上部署。

  每个工作节点与一个 Octopus 模型接口,以增强协调。

  如 Octopus v2 所示,可以集成一个紧凑的 Lora 模型以扩展 functional token 的能力。

  建议使用单一基础模型并补充多个 Loras,每个工作节点一个。

  推荐使用开源的 LoraX 库来管理这种配置的推理操作。

  再者是通讯。

  工作节点和主节点分布在不同设备上,不限于单一设备。

  因此,互联网连接对于节点之间的数据传输至关重要。

  虽然主节点可能位于智能设备上,工作节点则托管在云端或其他设备上,结果返回智能设备。

  为了支持数据缓存需求,包括聊天历史存储,推荐使用 Redis,一个高性能的内存数据库,促进分布式缓存。

  实验

  研究人员详细介绍了框架进行的实验,通过多节点协作提高语言模型性能。

  采用了 17 种不同的模型进行 MMLU 任务,Octopus v4 模型将用户查询定向到相关的专业模型并适当重格式化。

  MMLU 包含 57 个独特的任务,分为 17 个整合组。

  专业模型根据基准得分、人气和用户推荐从 Hugging Face 精选。

  并非所有任务都有专门模型,例如人文学科和社会科学目前无专门模型,但 Llama3 模型通过系统提示调整模拟专业能力。

  未来工作与讨论

  当前,NEXA AI 的 GitHub 项目专注于开发语言模型的图形框架,目前处于起始阶段。

  团队计划通过整合多种垂直特定模型并加入 Octopus v4 模型来增强这一框架,以多代理能力为特征。

  未来版本将在此存储库中展示更强大的图形表示。

  GitHub Repo 将由 Nexa AI 维护,团队今后旨在为多种垂直领域开发紧凑、专门化的模型。

  与更大模型的缩放法则、数据集相比,NEXA AI 的框架无限制,并且可以创建一个大型图。

  此外,团队正在开发多模态模型Octopus 3.5,能够处理视觉、音频和视频数据;完成开发后,将被纳入图形框架。

  论文链接:https://arxiv.org/pdf/2404.19296

  GitHub: https://github.com/NexaAI/octopus-v4

  试用 Octopus v4:https://huggingface.co/NexaAIDev/Octopus-v4