人工智能
AIOS:LLM代理的操作系统
过去六十年中,操作系统逐渐演进,从基本系统发展到今天的复杂且交互式的操作系统。最初,操作系统作为计算机硬件的二进制功能(如门控)和用户级任务之间的桥梁。然而,随着时间的推移,它们已经发展从简单的批处理系统到更复杂的进程管理技术,包括多任务处理和时间共享。这些进步使现代操作系统能够管理广泛的复杂任务。图形用户界面(GUI)的引入,如Windows和MacOS,使现代操作系统更加用户友好和交互式,同时也通过运行时库和综合的开发工具套件扩展了操作系统生态系统。
最近的创新包括大型语言模型(LLM)的集成和部署,它们通过解锁新的可能性革新了各个行业。更近期,基于LLM的智能代理表现出令人惊叹的能力,在广泛的任务中实现了类似人类的性能。然而,这些代理仍处于开发的早期阶段,当前的技术面临着影响其效率和有效性的几个挑战。常见的问题包括对大型语言模型的代理请求的次优调度、将不同专业化的代理集成的复杂性以及在LLM和代理之间的交互过程中维护上下文。基于LLM的代理的快速发展和日益复杂的结构往往导致瓶颈和次优的资源利用。
为了解决这些挑战,本文将讨论AIOS,一种LLM代理操作系统,旨在将大型语言模型作为操作系统的“大脑”,有效地赋予其“灵魂”。具体来说,AIOS框架旨在促进代理之间的上下文切换,优化资源分配,提供代理工具服务,维护访问控制,并实现代理的并发执行。我们将深入探讨AIOS框架,探索其机制、方法论和架构,并将其与最先进的框架进行比较。让我们开始。
在大型语言模型取得了显著成功之后,人工智能和机器学习行业的下一个焦点是开发能够独立运行、自主决策和最少或不需要人工干预地执行任务的自主AI代理。这些基于AI的智能代理旨在理解人类指令、处理信息、做出决策并采取适当的行动以实现自主状态,大型语言模型的出现和发展为这些自主代理的开发带来了新的可能性。当前的LLM框架,包括DALL-E、GPT等,已经展示了理解人类指令、推理和问题解决能力以及与人类用户和外部环境交互的能力。在这些强大且功能丰富的大型语言模型之上,LLM基于的代理在从虚拟助手到涉及创建问题解决、推理、规划和执行的更复杂和精密系统等多样化环境中表现出强大的任务完成能力。

上图给出了一个令人信服的例子,展示了LLM基于的自主代理如何解决现实世界的问题。用户请求系统提供行程信息,旅行代理将任务分解为可执行的步骤。然后代理顺序执行这些步骤,预订航班、预订酒店、处理支付等。在执行这些步骤的同时,这些代理与传统软件应用程序不同之处在于代理展示了决策能力,并在执行步骤中融入了推理。随着这些自主代理质量的指数级增长,对大型语言模型和操作系统的功能的压力也随之增加,例如在有限的大型语言模型中优先调度和调度代理请求是一个重大挑战。此外,由于大型语言模型的生成过程在处理长上下文时会变得耗时,因此调度器可能会暂停生成结果,导致设计一种机制来捕获语言模型当前生成结果的困难。因此,当大型语言模型尚未完成当前请求的响应生成时,启用暂停/恢复行为。
为了解决上述挑战,AIOS,一种大型语言模型操作系统,提供了LLM和OS功能的聚合和模块隔离。AIOS框架提出了LLM特定的内核设计,旨在避免大型语言模型相关任务和非相关任务之间可能产生的冲突。所提出的内核分离了操作系统类的职责,特别是那些监督LLM代理、开发工具包和相应资源的职责。因此,LLM内核尝试增强LLM相关活动的协调和管理。
AIOS:方法论和架构

如您所见,AIOS框架的工作涉及六个主要机制。
- 代理调度器:代理调度器的任务是调度和优先代理请求,以优化大型语言模型的利用率。
- 上下文管理器:上下文管理器的任务是支持快照以及在大型语言模型中恢复中间生成状态,并管理大型语言模型的上下文窗口。
- 内存管理器:内存管理器的主要职责是为每个代理的交互日志提供短期内存。
- 存储管理器:存储管理器负责将代理的交互日志持久化到长期存储中,以便将来检索。
- 工具管理器:工具管理器机制管理代理对外部API工具的调用。
- 访问管理器:访问管理器执行代理之间的访问控制和权限管理。
除了上述机制外,AIOS框架还具有分层架构,并分为三个不同的层:应用层、内核层和硬件层。AIOS框架实现的分层架构确保系统的职责均匀分布,较高层抽象了下层的复杂性,允许使用特定模块或接口进行交互,增强了模块化,并简化了层之间的系统交互。
首先,从应用层开始,这一层用于开发和部署应用代理,如数学或旅行代理。在应用层,AIOS框架提供了AIOS软件开发工具包(AIOS SDK),它提供了系统调用的更高抽象层,简化了代理开发者的开发过程。AIOS提供的软件开发工具包提供了一个丰富的工具集,以促进代理应用的开发,通过抽象掉较低级系统函数的复杂性,允许开发者专注于代理的功能和基本逻辑,从而实现更高效的开发过程。
继续,内核层进一步分为两个组件:LLM内核和OS内核。OS内核和LLM内核服务于LLM特定和非LLM操作的独特需求,LLM内核专注于大型语言模型特定的任务,包括代理调度和上下文管理,这些活动对于处理与大型语言模型相关的活动至关重要。AIOS框架主要集中于增强大型语言模型内核,而不会显著改变现有OS内核的结构。LLM内核配备了几个关键模块,包括代理调度器、内存管理器、上下文管理器、存储管理器、访问管理器、工具管理器和LLM系统调用接口。内核层中的组件旨在解决代理应用的多样化执行需求,确保AIOS框架内的有效执行和管理。
最后,我们有硬件层,它包括系统的物理组件,例如GPU、CPU、外围设备、磁盘和内存。了解LLM内核的系统不能直接与硬件交互,这些调用与操作系统的系统调用接口,操作系统反过来管理硬件资源。LLM内核系统与硬件资源之间的这种间接交互创建了一层安全性和抽象,允许LLM内核利用硬件资源的能力,而无需直接管理硬件,从而促进系统的完整性和效率的维护。
实现
如上所述,AIOS框架的工作涉及六个主要机制。代理调度器的设计使其能够高效地管理代理请求,并具有与传统顺序执行范式不同的多个执行步骤,在传统顺序执行范式中,代理以线性方式处理任务,先处理同一代理的步骤,然后再处理下一个代理,导致任务出现在执行序列后面的代理等待时间增加。代理调度器采用轮询、先进先出等调度算法来优化过程。

上下文管理器的设计使其能够管理提供给大型语言模型的上下文以及给定上下文的生成过程。上下文管理器涉及两个关键组件:上下文快照和恢复,以及上下文窗口管理。AIOS框架提供的上下文快照和恢复机制有助于减轻调度器在代理请求被暂停时的情况,如下图所示。

如图所示,内存管理器的责任是管理代理生命周期内的短期内存,并确保数据仅在代理活动期间存储和可访问,例如运行时或代理等待执行时。

另一方面,存储管理器负责长期保存数据,并负责存储需要无限期保留的信息,超出了个别代理的活动生命周期。AISO框架使用各种持久介质实现永久存储,包括基于云的解决方案、数据库和本地文件,确保数据的可用性和完整性。此外,在AISO框架中,工具管理器管理一系列API工具,以增强大型语言模型的功能,以下表格总结了工具管理器如何从各种资源中集成常用工具,并将其分类为不同的类别。

访问管理器通过为每个代理分配一个专用的权限组来组织代理之间的访问控制操作,并拒绝代理访问其资源,如果这些资源不在代理的权限组中。另外,访问管理器还负责编制和维护审计日志,以进一步增强系统的透明度。
AIOS:实验和结果
AIOS框架的评估由两个研究问题指导:首先,AIOS调度在改善等待时间和周转时间方面的性能如何,第二,LLM对代理请求的响应在代理暂停后是否一致?
为了回答一致性问题,开发人员分别运行每个代理,然后并行执行这些代理,并尝试捕获它们在每个阶段的输出。如下表所示,BERT和BLEU评分达到1.0,表明单代理和多代理配置中生成的输出完全一致。

为了回答效率问题,开发人员进行了比较分析,比较了使用FIFO(先进先出)或未调度方法的AIOS框架,其中代理并发运行。在未调度设置中,代理按照预定义的顺序执行:数学代理、叙述代理和rec代理。为了评估时间效率,AIOS框架使用两个指标:等待时间和周转时间,因为代理向大型语言模型发送多个请求,因此计算代理的等待时间和周转时间为所有请求的等待时间和周转时间的平均值。如下表所示,未调度方法对于序列中的前几个代理显示出令人满意的性能,但对于序列中的后续代理,等待时间和周转时间显著增加。另一方面,AIOS框架实现的调度方法有效地调节了等待时间和周转时间。

最后的思考
在本文中,我们讨论了AIOS,一种LLM代理操作系统,旨在将大型语言模型作为操作系统的“大脑”,赋予其“灵魂”。更具体地说,AIOS框架旨在促进代理之间的上下文切换,优化资源分配,提供代理工具服务,维护代理访问控制,并实现代理的并发执行。AIOS架构展示了促进大型语言模型基于自主代理的开发和部署的潜力,导致AIOS-代理生态系统更加有效、协调和高效。
