随着LLMs在自主Agent领域的应用日益增多,如何高效管理和调度这些Agent成为一项重要挑战。为此,「本文创新性的提出一个基于大模型的操作系统架构:AIOS」,该架构将LLM作为操作系统的“大脑”,优化Agent请求的调度,支持上下文切换,实现并发执行,并提供工具服务和访问控制,结果表明了AIOS在多Agent并行执行时的可靠性,展示了其在改善资源利用和提升Agent性能方面的潜力。
https://arxiv.org/pdf/2403.16971.pdf对于自主Agent的研究,其终极目标是开发无需人为干预即可独立执行任务的系统,并且在指令理解、信息处理、决策判断等方面都能实现自主状态。大语言模型(LLM)的出现为自主Agent的开发带来了新的可能性。目前的LLMs在理解指令、知识检索、推理问答、人机交互等方面表现出了强大的能力。基于这些强大的LLM,新兴的LLM Agent将能够在多样化的环境中展示惊人的任务执行能力。
上图展示了LLMs Agent在旅行规划上应用案例。首先旅行Agent会根据用户请求,将旅行规划分解为多个可执行的任务;然后,它会根据用户的偏好按顺序执行预订航班、预订酒店、处理付款和更新日历的步骤。在计划执行过程中,Agent展现出了较强的推理决策能力。为了实现这种旅行助理场景,Agent需要将LLMs服务和传统操作系统服务整合到一块。随着Agent数量和复杂性的急速增长,这对LLMs和操作系统的功能提出了更多的要求。例如,在有限的LLMs服务资源中,Agent需要优先调用LLMs服务就存在一定的挑战。此外,当LLMs面对长篇上下文时,生成速度会变慢,耗时增长,有时会导致生成被调度程序暂停。这就产生了一个机制问题,「即如何快照LLM当前生成结果」,从而即使LLM尚未完成当前请求的响应生成,也不会影响正常流程进行。
此外,一旦Agent获得了可用工具API的列表,确定调用这些工具的最优顺序就构成了另一个挑战,因为「多个Agent可能需要调用相同的工具」。此外,多个Agent的并发操作需要一个强大的内存管理系统,同时还要做好隐私、访问严格控制。
为了解决上述挑战,文章提出了AIOS,这是一个LLM Agent操作系统,将大语言模型嵌入到操作系统中,作为操作系统的“大脑”,使其成为一个“有灵魂”的操作系统——这是迈向人工通用智能(AGI)的重要一步。具体来说,「AIOS旨在优化资源分配,促进Agent之间的上下文切换,实现Agent的并发执行,为Agent提供工具服务,并维护Agent的访问控制」 。
「操作系统的发展」 包括了从批处理到多任务处理的转变,以及图形用户界面(GUI)的出现,这些都极大地提高了操作系统的交互性和易用性。同时,操作系统生态系统的发展为软件开发提供了丰富的工具和资源,促进了应用程序的高效开发和部署。如今,我们正处于一个变革阶段,即将看到智能操作系统。通过整合大语言模型(LLMs),这些先进的系统有望进一步缩小人机之间的交流差距,开启一个新的用户-计算机交互时代。
「大模型Agent」 关于LLM自主Agent的研究,这些Agent能够根据自然语言指令执行复杂任务。研究分为单Agent系统和多Agent系统两大类:
「单Agent系统」:这些系统使用单个LLM Agent来完成如旅行规划、个性化推荐等任务。Agent能够分解任务并调用外部工具或与环境交互来完成任务。
「多Agent系统」:利用多个Agent之间的交互来解决问题。多个Agent之间的关系可能是合作的、竞争的,或者是合作与竞争的混合。在合作型多Agent系统中,每个Agent获取并评估其他Agent提供的信息,从而共同解决复杂任务,如角色扮演、社会模拟和软件开发。
如下图所示,「AIOS 架构共分为三个不同的层:应用程序层、内核层和硬件层」。这种分层架构确保了整个系统的职责划分清晰,促进了接口或者特定模块的交互,从而增强模块化并简化不同层之间的系统交互。
「应用层 (Application Layer)」 主要用来开发和部署Agent应用程序,如旅行Agent或数学Agent。AIOS在这一层提供了AIOS软件开发工具包(SDK),它提供了更高级别的系统调用抽象,简化了Agent开发者的开发过程,使开发者能够专注于Agent的核心逻辑和功能,从而提高开发效率。「内核层 (Kernel Layer)」 该层主要由两个组件组成:OS内核和LLM内核。其中,这两个内核分别服务于非LLM操作和LLM特定操作的独特需求。
「硬件层 (Hardware Layer)」 该层包括系统的物理组件,如CPU、GPU、内存、磁盘和外围设备。LLM内核的系统调用不能直接与硬件交互,而是通过OS的系统调用来管理硬件资源。这种间接交互确保了抽象层和安全性,允许LLM内核利用硬件能力而无需要直接管理硬件,从而保持了系统的完整性和效率。
关于AIOS的实现,作者首先概述了 LLM 内核中每个模块的基本设计和实现;然后介绍了 LLM 系统调用,其中包含每个模块的基本功能;最后讨论了AIOS SDK的探索,旨在方便Agent开发者的开发过程。
AIOS架构中的6个主要模块:
「LLM系统调用」 LLM内核内的LLM系统调用接口被设计为提供基本的LLM调用操作功能。这个接口作为复杂Agent请求和不同内核模块执行之间的桥梁。LLM系统调用提供了一系列基本功能,涵盖内核模块的各个方面,包括Agent管理、上下文处理、内存和存储操作以及访问控制。
「AIOS SDK」 为开发者提供了一个多功能工具包,用于在AIOS内开发复杂的Agent应用程序。SDK包括从初始化Agent和Agent生命周期管理到资源监控和Agent任务生成计划等一系列功能。
「一致性分析」 使用BLEU分数和BERT分数作为评估指标来评估多个Agent并行运行与单个Agent依次运行时输出的一致性。结果显示,BLEU和BERT分数都达到了1.0,表明多Agent和单Agent配置下生成的输出之间完全对齐,证实了设计在有效促进并行多Agent操作方面的一致性。
「性能分析」 作者进行了AIOS使用FIFO调度和非调度方法(即顺序执行)的比较分析。结果表明,非调度方法对序列早期的Agent表现良好,但牺牲了序列后期Agent的等待时间和周转时间。相反,AIOS的调度机制有效地调节了等待时间和周转时间,特别是对于后续Agent的请求,当LLM较大时,这种优势尤为明显。这表明调度对于适应多个Agent的并行操作非常重要。联系客服