【编者按】大模型的快速发展催生了智能体系统(agentic system),为人类打开了语义处理的大门,彻底改变了人类与计算机的交互方式。而以大模型为关键组件的智能体系统,集成了传统编程语言编写的源代码,使相关研究变得复杂且充满新的挑战。
近年来,微软亚洲研究院首席研发经理杨玉庆及其团队致力于大模型智能体系统的研究与优化。在本文中,杨玉庆将分享他对提升大模型智能体系统效率和性能的关键方向的见解,以及对其未来广泛应用的展望。

“大模型的快速发展,驱动了全新软件系统——智能体系统的诞生。由于其混合架构所带来的高度互联与动态的特性,我们需要关注智能体系统的整体设计与运行,从不同方向提升效率、可靠性和适应性,充分释放智能体系统的巨大潜力。”
——杨玉庆
微软亚洲研究院首席研发经理
大模型的发展已成为推动软件形态巨变的关键因素之一,它正在催生一种全新的软件形态,即目前我们所理解的智能体(AI agent)或智能体系统(agentic system)。
不难想象,智能体系统将会是大模型应用的普遍形式。它的性能表现和使用成本,对于大模型所能惠及的范围具有决定性作用。因此,我们尝试以这样一种思路来优化智能体系统:将其视为一个“数据加工”流程,并尝试在不同环节为工作量做减法。换言之,我们在设法提升单位算力的智能输出,增加系统的智能“密度”。

从大模型快速发展中诞生的智能体系统
人工智能领域的突破性进展,尤其是大模型的出现,被认为“与微处理器、个人电脑、互联网和手机的发明同等重要”。随着各种大模型的涌现,我们见证了由大模型驱动的创新性软件系统的诞生。与传统软件相比,这类系统有两个颠覆性特点:
首先,大模型及其驱动的新型软件系统,使可处理的数据体量呈爆炸式增长。传统编程语言和工具只能在语法层面处理数据,操作的是原始的比特和字节,无法理解数据中所包含的内容或意义。大规模基础模型改变了这一传统范式,能够理解和生成人类语言,解释图像含义,甚至实现跨模态的信息连接。这种处理和推理语义信息的能力,极大地改变了我们与数字系统的交互方式和任务类型。
其次,大模型及其催生的软件系统让使用者能够直接指定任务,无需像以前那样逐步说明如何完成任务。这降低了使用者的专业能力门槛。使用者只需清楚定义任务结果即可,至于如何完成则交由系统进行处理。
大模型的这些特点来自于两个关键能力:一是“推理与规划能力”,让大模型能够对复杂任务进行推理,将其分解为可执行的步骤,并规划行动顺序,进一步体现大模型在调用工具和与环境互动时的能力;二是“世界知识”,即通过训练吸收海量数据,覆盖广泛的人类知识。这两种能力的结合,促使大模型在协助人类方面实现了重大突破。
我们将这种新型的软件系统称为“智能体系统”,这一定义可以泛指所有涉及大模型的软件系统。智能体系统的核心特征在于“混合架构”——结合了传统编程语言编写的源代码和为大模型量身定制的指令(即“提示词”,prompts)。这种混合架构赋予了智能体系统从简单自动化到复杂问题解决的广泛适用性,成为软件领域的重要创新方向。

三个方向提升智能体系统的效率
在智能体系统的混合架构中,大模型作为核心组成部分,处于更大的生态系统中,与其他程序、环境,甚至其他模型请求紧密相联。通常,它会嵌入到一个复杂的工作流中,与传统软件组件交互,或与周围环境进行通信。智能体系统有时还可能涉及多个模型的协作,形成动态且相互依赖的系统。
正是由于这种高度互联且动态的特性,若想充分释放智能体系统的潜力,我们需要关注其整体设计与运行,而非仅仅是大模型本身,进而使整个系统能够以更高效率、更强可靠性和更好适应性完成复杂的现实任务。

图1:大语言模型的记忆层级
基于这样的认识,我们从智能体系统的“数据加工”流程入手,根据数据流动和相互关系,从三个方向探索了提升效率、可靠性和适应性的方法。
首先,研究面向大语言模型的编程,即如何高效组织和优化大模型的输入,使其能够准确实现开发者的意图。我们特别关注外部数据的动态注入以及长上下文处理能力的提升,以增强模型的推理深度,提高计算效率。其次,探索如何验证大模型的输出。我们提出了语义验证这一关键概念,并且已经在数据科学领域构建了一套系统化的验证框架。目前,我们正在将验证从离线扩展到运行时,并进一步研究如何让模型从验证结果中学习,形成闭环优化机制。最后,构建智能体系统原生的服务系统。我们将整个智能体系统视作最优级的核心架构进行设计,通过端到端的任务编排和优化框架,全面提升系统的性能和资源利用效率。
面向大语言模型的编程(Programming with LLMs)
大语言模型的响应质量很大程度上取决于其接收的输入,即“提示词”。最近的研究表明,提示词的“内容”和“形式”会显著影响大语言模型的输出质量。虽然很多使用者对自然语义的交互方式已经十分熟悉,但撰写有效的提示词往往比预期的更加困难,需要大量试验和反复调整。
为了帮助开发者更轻松地设计有效的提示词,微软亚洲研究院开发了自动提示优化工具(Auto Prompt Optimization,APO)和提示压缩工具(prompt compression)等工具与方法。我们希望借助这些方法能够减轻开发者设计提示词的负担,更重要的是让大模型总能接收到精确且“友好”的数据。
具体而言,我们设计了大语言模型提示压缩框架 LLMLingua 和 LongLLMLingua,以高效压缩提示词,在大幅加速大语言模型推理的同时保持模型的推理性能。通过动态分配压缩比和迭代压缩,LLMLingua 能够在不同压缩比下保持语义的完整性,为大语言模型的应用提供更高效且经济的解决方案。该框架利用困惑度(perplexity)来评估每个词或句子的信息量,保留对模型推理最为关键的部分,并通过动态选择和压缩提示词中的关键部分,减少数据冗余,使提示词更具结构化。在数据密集型任务中,LLMLingua 的优势尤为明显。通过多个数据集的测试,LLMLingua 不仅实现了高达20倍的压缩比,还保持了优异的性能,显著降低了推理成本。
除了提示词内容的设计,“外部数据的注入”也是提升模型性能的重要手段。但选择最相关和最有用的数据并将其融入提示词并非易事,需要对任务需求和模型行为有深入的理解和精细的设计。当涉及“非纯文本数据”时,挑战便更加复杂。
对此,我们提出了一种“RAG 任务分类法”,将用户对外部数据查询的需求类型分为四个级别,并分析其难点和适用的技术手段:
-
Level-1 显性事实查询(explicit fact queries):指那些可直接从数据中提取明确存在的事实,无需额外推理。此时只需使用基础的 RAG 方法,通过检索增强来定位和提取信息。
-
Level-2 隐性事实查询(implicit fact queries):需要从数据中揭示隐含的事实,可能涉及常识推理或简单的逻辑推断。此时可能需要多步检索,或基于图/树的检索,甚至将自然语言问题转换为 SQL 查询,以从结构化数据中检索信息。
-
Level-3 可解释推理查询(interpretable rationale queries):要求模型理解并应用与数据背景密切相关的领域特定推理依据。我们需要将外部逻辑关系输入大模型并确保其遵循这些逻辑来生成回应。
-
Level-4 隐式推理查询(hidden rationale queries):这种情况下模型没有明确的推理依据记录,需要通过分析历史数据中的模式和结果来推断。此时,我们需要让模型通过离线学习从数据中提取规则和原则,并进行上下文学习,以及利用监督学习将领域特定知识整合到模型中。

图2:数据增强型大语言模型应用中不同查询层级的主要技术总结
目前该 RAG 任务分类法已经在与专业医疗机构的合作中有所应用,使智能体的行为逻辑和性能展现出明显的优势。我们相信这项研究可以帮助大模型更好地整合专有领域知识,在特定领域发挥更前沿的能力。
最后是关于长上下文的优化。实践证明,将整个文档交给大模型处理,大模型不仅能够对内容理解的更加全面准确,还可以在很大程度上降低软件系统的复杂度、缩短开发调试周期。然而巨大的计算资源开销是长文本处理绕不开的瓶颈,制约了长文本模型的广泛应用。微软亚洲研究院正在开发创新的算法、架构和系统,以实现对大规模模型中长上下文处理的高效管理,进而提升单位算力的智能输出。过去一段时间,我们采用了算法和系统协同创新的研究方法,并且收获了超出预期的成果。
在算法层面,我们提出了针对长上下文注意力机制的动态稀疏注意力算法(dynamic sparse attention),并用于 MInference 1.0 推理加速算法。MInference 的核心在于利用长上下文中注意力机制的动态稀疏性,通过离线确定每个注意力的最佳稀疏模式,而且在推理过程中动态构建稀疏索引,利用优化的 GPU 内核执行高效稀疏注意力计算。这种方法能够将单卡 A100 GPU 上的预填充延迟降低多达10倍,同时在多种任务和模型上保持与全注意力相当甚至更优的精度。
动态稀疏注意力也被用于 RetrievalAttention——一种加速长文本语言模型推理速度的创新方法。该方法将大部分键值向量卸载到 CPU 内存,并通过向量搜索实现动态稀疏注意力机制,选择性地只计算那些“重要”元素之间的关系,在保证准确性的同时显著降低计算成本和 GPU 内存占用。实验证明,RetrievalAttention 能使一个包含80亿参数、128K标记的模型在单个24GB的 NVIDIA 4080 GPU 上运行。相关工作获得了 NeurIPS ENSLP 2024 最佳论文奖。
在系统层面,我们进行了 GPU Kernel 的优化。常规的 GPU 计算假设每个数据块是连续且同质的,但在处理动态稀疏数据时,这种假设不再成立。于是我们引入了平移不变性——通过重新排序稀疏数据,使数据块在计算时更加连续,且不改变数据本身,只是调整了它们在内存中的位置,从而大大提高了计算效率。
验证大模型的输出
确保大模型输出的质量,尤其是语义的正确性,是提升智能体系统可靠性的关键。我们以大模型在数据科学智能体(data science agent)场景中的应用为突破点,深入探索了语义检验的共性问题。数据科学智能体涉及数据预处理、统计分析、机器学习模型开发以及多模态数据可视化等任务。这些任务不仅需要技术上的准确性,还要求与用户意图在语义上保持一致。
为了评估数据科学智能体在不同任务中的表现,我们从“数据”和“框架”两个层面入手,构建了 “DSEval” 和 “VisEval” 两个综合性基准(benchmark)。DSEval 专注于数据科学智能体的全生命周期评估,涵盖数据预处理、分析推理和机器学习模型开发等任务,可以评估输出结果的正确性,并且还关注可能出现的副作用,能更全面地反映智能体系统在复杂任务中的表现。VisEval 则针对自然语言到数据可视化(NL2VIS)的任务,通过采用有效性、合法性和可读性等多维度的评估方法,系统地验证智能体生成的可视化结果是否符合语义要求。
在构建这些基准的过程中,我们开发了“领域特定语言(DSEAL)”和一套内置的“校验原语(validation primitives)”,以系统化地评估数据科学智能体的全生命周期。例如,DSEval 中的校验原语用于验证副作用,确保智能体不会意外修改原始数据;VisEval 中定义了多维度的评估指标,能全面衡量可视化结果质量。这些校验原语从多个角度对智能体系统的输出进行语义验证,确保结果在技术正确的同时也能满足用户意图。
在性能评估之外,我们也在积极探索“离线评估向在线(运行时)检验”的转变。在我们的最新工作 V-Droid 中,实时运行的验证器(verifier)不仅能够给当前的动作打分,还能够指导移动设备上的智能体寻找到完成任务的最优路径。凭借其全新的“验证器驱动”架构,V-Droid 不仅刷新了移动设备上任务自动化的任务完成率记录,同时在决策响应速度上也实现了接近实时的表现,为移动端自动化控制开辟了全新局面。

图3:V-Droid 全新验证器驱动架构
无论是数据科学场景还是移动设备任务自动化场景,高质量的标注数据都极为稀缺,所以我们也特别注重数据集生成的可扩展性和效率。我们在多个项目中都成功引入了人机联合的“自举式标注(bootstrapped annotation)”方法,极大地减少了人工投入,提升了数据的规模和覆盖范围。例如,在 V-Droid 中,系统初始阶段由人工作业完成标注,随后利用经过初步训练的验证器自动生成操作标注,再由人工审核、修正。随着迭代训练的进行,验证器的准确性不断提升,人工介入比例逐渐下降,进而高效构建起一个涵盖上万条任务轨迹的数据集,为后续的大规模训练提供了坚实基础。
通过高质量的数据构建和强化学习,我们正在实现“让模型从检验结果中学习”。当前,检验过程主要作为诊断工具,用于识别模型输出中的错误或局限性,但检验结果通常不能反馈到模型中促进其改进。我们的目标是将检验结果融入模型的学习过程,形成闭环。这将有望打造出能够自我改进的智能体,使其随时间推移更好地适应用户偏好和任务需求,提升语义理解和任务表现。
构建智能体原生服务系统
当前,大多数基于大模型的应用都依赖于公共大语言模型服务,然而这些公共服务只能观察到大量的单独请求,无法了解应用级信息。例如,它们无法判断哪些请求属于同一应用,不同请求之间如何连接,或是否存在相似性。这种信息缺失使得公共服务只能盲目优化单个请求的性能,导致应用整体在端到端之间产生一系列性能次优问题,如网络延迟、排队等额外开销,出现优化调度错位,以及重复提供常见的前缀提示,造成计算、存储等资源的巨大浪费。
我们设想打造一种能将请求间的各种关系“传达”至服务后端的方法,即智能体原生服务系统(agent-native serving systems)。在这个方法中,优化对象从单个请求转变为整个智能体系统,系统成为被优化的核心架构。基于这一思路,我们开发了 Parrot 服务系统。Parrot 引入了“语义变量(semantic variable)”这一核心抽象,用于标注请求提示中的输入/输出变量,并构建请求之间的数据管道,从而将应用级知识呈现给公共大语言模型服务。
“语义变量”是请求提示中的一个文本区域,具有特定的语义目的,如任务指令、输入或输出。通过分析语义变量,Parrot 可以构建请求之间的依赖关系图(DAG),并通过分析 DAG 和最终输出的性能目标,推导出每个请求的调度偏好来优化调度。不仅如此,Parrot 还能通过分析提示结构,快速监测多个请求之间的公共前缀,减少冗余计算。
这些特征使 Parrot 能够大幅优化智能体系统端到端的性能。以多智能体编程任务为例,Parrot 通过识别任务组并优化调度策略,实现了高达11.7倍的性能提升。Parrot 的设计为未来构建原生的智能体系统服务提供了一种新的视角与启发。

图4:Parrot 系统概览

复合型团队的跨领域协作推动智能体系统发展
在智能体系统的研究与优化中,我们深刻认识到,由于其“混合架构”的特征,仅从某一方向进行优化的作用始终是有限的。智能体系统的优化需要系统与算法的协同创新,而这离不开跨领域的复合型团队的贡献与努力。
在微软亚洲研究院,我们有幸汇聚了一支由多领域人才构成的团队。这种跨领域的团队协作模式为我们带来了巨大的优势。例如,在推进前文所述的算法与系统协同创新的过程中,系统专家与算法专家的紧密合作发挥了关键作用。
此外,我们所采用的“网状”团队合作模式极大地促进了创新与思维的碰撞。在这种模式下,具备不同专长的人才能够在高频次、紧密的合作中相互启发,扩大彼此视野,让我们更容易从全局角度探索智能体系统优化的突破口。
微软亚洲研究院正在多角度开展针对大模型效率的研究,涵盖从算法编码层对 token 的低比特量化,到系统架构层对大模型性能的优化,以及针对基础模型和系统底层的研究——例如,微软亚洲研究院开发的 YOCO 和 BitNet,进一步探索了模型本身的能力与效率边界。这些研究方向相辅相成,从不同方向对智能体系统形成“向心”优化,为智能体系统在复杂现实任务中的广泛应用奠定了坚实基础。
对于智能体系统这一源自人工智能发展的产物,智能水平固然重要,但如何以更低的成本和更少的资源获得更大产出,造福于更多人,才是其创造社会价值的关键所在。随着创新方法论的推进和验证,我们相信智能体系统普惠大众的一天并不遥远。
杨玉庆博士现任微软亚洲研究院首席研发经理,带领微软亚洲研究院(上海)系统与工程组专注于大模型系统和多模态系统的研究。他的研究兴趣包括大模型的高效计算和智能体系统的顶层设计等。相关研究成果多次发表于 OSDI、SOSP、EuroSys、ATC、CVPR、ICCV、NeurIPS 等国际顶级会议。
(文:AI科技大本营)