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

上图给出了一个令人信服的例子,展示了如何使用LLM代理来解决现实世界的问题。用户向系统请求行程信息,然后旅行代理将任务分解为可执行的步骤。然后代理按照顺序执行这些步骤,预订航班、预订酒店、处理付款等。在执行这些步骤时,代理与传统软件应用程序不同之处在于代理能够展示决策能力并在执行步骤时融入推理。随着这些代理的质量呈指数级增长,对大型语言模型和操作系统的功能的压力也随之增加,例如在有限的大型语言模型中优先安排和调度代理请求是一个重大的挑战。此外,由于大型语言模型的生成过程在处理长上下文时会变得耗时,因此调度器可能会暂停生成,导致暂停/恢复行为,当大型语言模型尚未完成当前请求的响应生成时就会发生这种情况。
为了解决上述挑战,AIOS提供了LLM和操作系统功能的聚合和模块隔离。AIOS框架提出了一个针对LLM的特定内核设计,旨在避免LLM相关任务和非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框架提供的上下文快照和恢复机制有助于减轻调度器暂停代理请求的情况,如下图所示。

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

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

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

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

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












