微软开源的解决复杂任务通用多智能体

-微软解决复杂任务的通用多智能体- Magentic-One:

微软研究人工智能前沿研究院

图1:Magentic-One多智能体团队完成GAIA基准任务的插图。Magentic-One的Orchestrator智能体创建计划,将任务委派给其他智能体,并跟踪进展,根据需要动态修订计划。编排调度者可以将任务委派给一个文件冲浪者智能体来读取和处理文件,一个网页浏览者r智能体来操作网络浏览器,或者一个编码者智能体或计算终端智能体来编写或执行代码。

摘要

现代AI智能体,由于大型基础模型的进展,承诺通过增强我们的知识和能力来提高我们的生产力并转变我们的生活为实现这一愿景,AI智能体必须有效地规划、执行多步推理和行动,对新颖观察作出响应,并从错误中恢复,以成功地完成跨多种场景的复杂任务。在这项工作中,我们介绍了Magentic-One,这是一个用于解决此类任务的高性能开源智能体系统。Magentic-One使用多智能体架构,其中一名主智能体——Orchestrator,负责规划、跟踪进展。并重新规划以从错误中恢复。**在任务执行过程中,Orchestrator 还指导其他专门智能体执行需要的任务,如操作网页浏览器,浏览本地文件,或编写和执行 Python 代码。**我们的实验表明,Magentic-One 在三个多样且具有挑战性的智能体基准测试中实现了与最先进技术相竞争的性能:GAIA,AssistantBench 和 WebArena。值得注意的是,Magentic-One 在不修改核心智能体能力或协作方式的情况下取得了这些成果,展示了朝着通用智能体系统愿景迈出的进展。此外,Magentic-One 的模块化设计允许智能体能够被添加或移除团队,而无需额外的提示调整或训练,便于开发并使其能够适用于未来场景。我们提供了 Magentic-One 的开源实现,并包含了 AutoGenBench,一个用于智能体评估的独立工具。AutoGenBench 提供了内置的控件,可以重复和隔离运行智能体基准测试,以严格和可控的方式运行 — 当智能体的行为具有副作用时,这一点非常重要。Magentic-One,AutoGenBench 和关于 Magentic-One 的详细实证性能评估,包括消融和错误分析,都可以在 https://aka.ms/magentic-one 上获得。

目录

1介绍

2相关工作

3问题设置

4 MAGENTIC-ONE概述

4.1 Magentic-One的多智能体工作流程

4.2 Magentic-One的智能体

5实验

6讨论

6.1多智能体范式

6.2限制

6.3风险及缓解措施

7结论

1介绍

人工智能和基础模型的最新进展正在推动对能够感知、推理和行动来完成任务的主体系统产生了新的兴趣[32, 59]。这些系统承诺通过解放我们于单调和繁重的任务,提升我们的生产力,并通过增强我们的知识和能力来改变我们的生活[16, 54, 6]。通过利用大型语言模型(LLMs)强大的推理和生成能力,主体系统已经在软件工程[66, 55]、数据分析[4]、科学研究[26, 7]和网络导航[79, 75]等领域取得了进展。

实现智能体系统愿景以改变我们的生活需要这些系统不仅在特定领域实现高性能,还需要泛化到人们日常工作和个人生活中可能遇到的各种任务。在本文中,我们通过引入Magentic-One 迈出了创建这样一个通用智能体系统的步伐。Magentic-One 使用一个团队的智能体,每个智能体团队专门针对一般有用的技能,比如:操作网络浏览器、处理文件和执行代码。该团队由一个指导器智能体指导,通过迭代规划、维护进展的工作记忆、将任务分配给其他智能体,并在遇到错误时重试来引导朝着高层目标取得进展。指导器使用两个结构化账簿来实现这一点,同时决定哪个智能体应该采取下一步行动。总的来说,Magentic-One的智能体在多个具有挑战性的智能体基准测试中表现出色。图1显示了Magentic-One解决一个需要多步骤和不同工具的基准任务的示例。

Magentic-One的成功关键在于其模块化和灵活的多智能体方法[51, 28, 53, 13, 52],通过AutoGen2框架[60]实现。**多智能体范式相比单一Agent方法具有诸多优势[**51, 53, 6, 62],我们相信这使得其有可能成为智能智能体系统开发的领先范式。例如,将不同技能封装在独立的Agent中简化了开发,有利于重复使用,类似于面向对象编程。而Magentic-One的特定设计通过使Agent能够添加或移除而不影响其他Agent或总体工作流程,进一步支持了系统的易于适应和可扩展性,这与经常受限于僵化工作流程的单智能体系统形成了鲜明对比。

为了严格评估Magentic-One的性能,我们引入了AutoGenBench,这是一个可扩展的独立工具,用于运行智能体基准测试。AutoGenBench的设计能够重复,隔离,并对初始条件进行严格控制,以适应随机LLM调用的方差,并隔离智能体采取行动的副作用。使用AutoGenBench,我们在三个智能体基准测试上评估了Magentic-One。我们观察到在GAIA [29]上的任务完成率为38%,在WebArena [79]上为32.8%;在AssistantBench [71]上获得了27.7%的准确率。这些结果将Magentic-One置于一个强劲的位置,它在统计上与其他最先进系统(SOTA),包括那些专门针对特定基准的系统相竞争。后续消融实验和深入错误分析揭示了每个智能体对Magentic-One性能的附加价值,并突出了进一步改进的机会。

总之,我们贡献:

1.Magentic-One是一个通用的多智能体团队,采用开源实现。该团队由五个智能体组成:一名编码器、计算机终端、文件浏览器、网络浏览器和编排者。不同的智能体可以操作相关工具,如有状态的网络和文件浏览器,以及命令行和Python代码执行器。编排者执行多项功能来指导实现高层目标的进展:制定计划,保持结构良好的工作内存进展,指导其他智能体执行任务,以及在停滞时重新启动和重置,确定任务完成。

2.AutoGenBench是一个用于在智能体基准上评估系统的独立工具,同时也提供开源。AutoGenBench处理配置、运行和报告智能体解决方案的性能,同时确保所有实验都从公认的初始条件开始,使智能体在不同运行中不会互相干扰。

3.实验结果和对Magentic-One在GAIA、WebArena和AssistantBench基准测试中的表现进行的分析显示,其强大的任务完成率与其他SOTA系统具有统计竞争力。我们还研究了各个智能体和能力的贡献,并提供了错误分析,以确定我们的多智能体方法的优势和劣势,以及改进的机会。

2相关工作

单一智能体方法。最近,诸如GPT4[33]之类的大型语言模型(LLMs)的进步重新引起了人们对开发能够代表人类解决任务的自主智能体的兴趣[32, 59, 16, 60, 65, 49, 74, 43]。这些现代智能体在软件开发[55, 76, 66, 63]、网页操作[8, 75, 79, 31, 1]、一般图形用户界面操作[73, 61, 3, 34]以及其他领域[37, 54]中展现出了卓越的技能。

常见的开发这种智能体程序的策略[25, 62, 27, 6]包括为LLM装备工具,例如用于代码执行和网络浏览的工具[40, 41, 46, 29],以及用于更好推理和规划的提示策略,比如CoT [58],ReACT [70]和少样本提示[79]。随着多模型的发展,智能体程序也可以通过诸如Set-of-Marks提示[67]等技术在视觉领域操作,以及其他技术[67, 77, 36, 14]。为了使智能体程序能够以改进的可靠性完成需要多步骤的任务,智能体系统可以整合自我批评[61, 34, 38]和推理时搜索[5, 69, 19, 50]。最后,智能体系统还可以从记忆和训练中受益,可以通过显式微调[72, 34, 24, 39]或记忆机制[57, 49]进行。我们的工作集成了这些技术的子集,并将它们分布在Magentic-One的多智能体工作流中,从而实现了一种模块化、易于扩展的实现。

多智能体方法。多智能体范式提供了一种吸引人的模块化和灵活的方法来处理复杂任务[51, 28, 12, 53, 45, 60, 52, 13, 25, 62, 27, 6]。通常每个智能体要么具有对不同工具的访问,要么在团队中扮演不同的角色,有时是通过LLM的系统提示或显式训练来定义的。Sibyl提出了一种基于辩论的陪审团机制的多智能体方法,具有用于Python代码执行和Web浏览的工具[56]。WebPilot在为基于Web的任务规划中使用具有全局和局部优化的多智能体系统[75]。Trase声称使用具有自我批评和下级智能体的顶级智能体的多智能体架构[42]。还介绍了一系列其他多智能体系统和框架[21, 22, 11, 2, 15]。然而,之前的方法与Magentic-One的架构不同,后者通过Orchestrator在智能体之间实现动态路由,并进行规划和恢复。

智能体评估。为了评估智能体在一般的多步任务上的表现,文献中提出了许多基准 [30, 79, 64, 23, 71, 68, 47, 8, 35, 20]。鉴于网络的一般和普遍性质,许多这些基准都大量涉及 [29, 71] 或者仅考虑 [79, 8] 基于浏览器的任务。这些基准要么依赖于对真实网站的非交互式踪迹,例如 Mind2Web [8],要么依赖于与人工创建的网站进行交互,例如 WebArena [79],或者与公共互联网上的真实网站进行交互,如 GAIA [29]。在前一种情况下,非交互式基准对评估智能体系统是有限制的,因为它们不允许智能体从之前记录的路径偏离。这使得评估错误恢复或为给定问题找到新颖的替代策略成为不可能。因此,我们专注于基于与现实世界任务更为一致的互动生活网站的基准 - 无论是合成的还是公开的。此外,我们优先考虑像 GAIA 这样的基准,它们测试诸如数据分析或编码等通用技能,除了指导网络浏览器浏览页面。我们提供 AutoGenBench 作为一种独立工具,用于评估智能体系统,依赖于文献中的基准。此外,我们对 Magentic-One 的表现进行深入的错误分析,为调试智能体系统的工作做出贡献 [20]。

3问题设置

复杂任务。在这项工作中,我们的目标是构建一个通用的智能体系统,能够解决各种领域中的复杂任务。我们定义任务为复杂任务,如果它需要或者从中受益的过程涉及规划、执行、观察和反思,可能需要多次进行。执行不仅仅指生成标记,也包括执行代码、使用工具或在环境中进行交互。在这种情况下,观察提供了以前不可用或未知的信息。任务由输入、期望输出和一个评估函数来比较期望输出与任何候选输出构成。输入包括一个明确定义的文本描述和一个可选的任意文件附件集,可能包括图像、数据集文件、音频剪辑等内容。例如,输入任务描述可以是“事实核实附加的 PDF 文件中的每个声明是正确还是错误”,并附加了一个 PDF 文件。期望输出要么是一个文本答案(可能代表一个结构化对象),要么是达到的环境的特定状态。在事实核实的例子中,输出可能是一个字符串,标记每个事实是正确还是不正确,例如,“声明 1: 正确,声明 2: 错误,…”。在这里,评估函数可能简单地确定期望输出和提出的答案是否完全匹配。

智能体系统。要完成一个任务,假设有一台计算机可以部分观察和操作以完成任务。计算机构成了环境。一个智能体系统可以接受任务描述以及计算机环境中存在的任何相关附件作为输入。系统被允许进行任意处理来完成任务,但必须在时间预算内完成(例如,25分钟)。例如,在计算机上,自主系统可以执行Python代码,使用浏览器浏览网页,在本地下载文件,以及其动作空间中的其他操作。系统的行动能力在于,

图2: Magentic-One具有一个实现两个循环的编排器智能体:外循环和内循环。

外循环(浅色背景,实线箭头)管理任务分类帐(包含事实,猜测和计划)。

内循环(深色背景,虚线箭头)管理进度分类帐(包含当前进度,任务分配给智能体)。 潜在地改变本地和网络环境的能力是我们将该系统称为智能的原因。完成任务后,系统会返回文字答案,以及它在过程中观察和步骤的痕迹。环境的最终状态也被详细捕获,以便进行任务评估。需要注意的是,这种设定可以描述为部分可观察马尔可夫决策过程,类似于之前工作中所使用的形式化方法。接下来,我们描述Magentic-One,我们的多智能体系统,它可以自主解决复杂任务。

4 Magentic-One概述

Magentic-One是一个通用的多智能体系统,用于自动完成复杂任务。团队的工作由一个编排调度( Orchestrator )智能体协调,负责任务分解和规划,指导其他智能体执行子任务,跟踪整体进展,并在需要时采取纠正措施。团队中的其他智能体具有不同的专业能力,用于完成临时的、开放性的任务,如浏览网页和与基于Web的应用程序交互,处理文件,以及编写和执行Python代码(图2)。

在接下来的几节中,我们首先描述了由Orchestrator驱动的Magentic-One的智能体间工作流程,然后描述了每个个体智能体的设计、能力和行动空间。

4.1 Magentic-One的多智能体工作流程

图2详细说明了Magentic-One的工作流程。在高层次上,该工作流程包括两个循环,外部循环维护任务分类帐,其中包含总体计划,而内部循环维护进展分类帐,指导和评估包含专门智能体指令的各个步骤。

Outer Loop.外部循环由初始提示或任务触发。作出回应时,编排器创建任务分类账,作为任务持续期间的短期记忆。收到任务后,编排器反思要求,并在任务分类账中预先填入关键信息 - 已知或核实的事实,需要查找的事实(例如,通过网络搜索),需要推导的事实(例如,通过编程或推理),以及理性猜测。这些初始的理性猜测很重要,可以让编排器以慎重或有条件的方式表达记忆中的闭卷信息,从而让智能体人可能受益,同时降低系统对错误或幻觉的整体敏感度。例如,智能体人可能只在受阻时或时间耗尽需要为基准输出最佳猜测时才依赖这些猜测。随着新信息的出现,这些理性猜测由外部循环定期更新。

只有在任务分类帐中的事实和猜测被填充之后,编排调度智能体才考虑其指导团队的构成。具体来说,它使用每个团队成员的描述,以及当前的任务分类帐,来制定一个逐步计划。该计划用自然语言表达,包括一系列步骤和将这些步骤分配给个体智能体的分配。由于该计划的使用方式类似于思维链提示[58],它更像是逐步执行的提示 - 编排者和其他智能体不需要严格遵循它。由于该计划可能在外部循环的每次迭代中重新访问,我们强制所有智能体在每次计划更新后清除其上下文并重置其状态。一旦计划形成,内部循环就会启动。

  • 请求是否已经完全满足(即,任务已完成)?

  • 团队是在循环还是重复自己?

  • 哪位智能体人应该接下来发言?

  • 这名团队成员应该被问及哪些指示或问题?

在回答这些问题时,Orchestrator考虑的是任务分类账(包含事实、猜测和计划),以及当前的智能体对话上下文。

编排者还维护一个计数器,用于记录团队被卡住或停滞的时间。如果检测到循环或缺乏前进进展,计数器将递增。只要该计数器保持在阈值以下(在我们的实验中≤ 2),编排者通过选择下一个智能体和其指令来启动下一个团队动作。然而,如果计数器超过阈值,编排者将跳出内部循环,并进行外部循环的另一次迭代。这包括启动反思和自我完善步骤[48],在这一步骤中,它确定可能出了什么问题,在路途中学到了什么新信息,以及在外部循环的下一次迭代中可能采取什么不同的行动。然后,它更新任务分类账,修改原始计划,并开始内部循环的下一个周期。总的来说,这种基于计数器的机制为智能体提供了有限的预算,以从小错误中恢复,或者在进展的短暂不确定性中持续前进。

这种嵌套循环行为将持续到编排器确定任务完成或团队达到某些(参数化和可配置的)终止逻辑,例如达到最大尝试次数,或超过指定的最大时间限制。

最后,在两个循环结束后,Orchestrator审查完整的记录,连同分类账,然后报告最终答案或其最佳猜测。

4.2 Magentic-One的智能体

Magentic-One中的 Orchestrator 智能体与四个专门智能体进行配合网页冲浪者WebSurfer、文件冲浪者FileSurfer、编码者Coder 和计算终端 ComputerTerminal。正如这些名称所暗示的,每个智能体都针对特定的但通常有用的功能进行了优化。在大多数情况下,这些智能体是围绕着具有自定义系统提示的LLM构建的,并具有特定于功能的工具或操作。例如,WebSurfer 可以导航到页面、单击链接、滚动视口等。在其他情况下,智能体可能会以确定性方式运行,并且根本不包括LLM调用。例如,当需要时,ComputerTerminal 以确定性方式运行 Python 代码或 shell 命令。

将高级功能在智能体之间的分解以及智能体内的低级动作创建了一个工具使用层次结构,这可能更容易让LLMs来进行推理。例如,Orchestrator不需要在数十种可能的动作之间做出决策,只需要决定调用哪个智能体以访问广泛的功能(例如,浏览互联网)。然后所选择的智能体从有限的智能体特定动作中进行选择(例如,点击按钮与滚动页面)。

我们将以下每个智能体的实现细节详细说明:

1.WebSurfer:这是一个高度专业的基于LLM的智能体,擅长控制和管理基于Chromium的网络浏览器的状态。对于每一个输入的自然语言请求,WebSurfer将该请求映射到其动作空间中的单个动作(下文有描述),然后报告网页的新状态(提供屏幕截图和文字描述)。类比一下,这种配置类似于电话技术支持场景,其中编排者知道该怎么做,但无法直接在网页上执行操作。相反,它传达指令,并依赖于WebSurfer执行动作和报告观察结果。WebSurfer的操作空间包括导航(例如访问URL,执行网页搜索或在网页内滚动);网页操作(例如点击和输入);以及阅读操作(例如总结或回答问题)。这种后一类阅读操作使WebSurfer能够在完整文档的背景下直接使用文档问答技术。这样可以节省大量返回指令系统的时间(例如,编排器可能会简单地命令智能体继续向下滚动),对许多任务都具有优势。与网络页面元素进行交互时(例如,点击或输入时),WebSurfer必须将操作与当前网页的特定坐标或元素进行关联。为此,我们使用类似于Web Voyager的一种标记集提示[67]的方式。这一步依赖于页面的注释截图,因此具有多模态性。我们进一步扩展了标记集提示,包括描述可见视图之外内容的文本描述,以便智能体程序可以确定通过滚动、打开菜单或下拉菜单可能会发现什么。

2.FileSurfer:FileSurfer 代理与 WebSurfer 非常相似,只是它命令基于 Markdown 的自定义文件预览应用程序,而不是Web 浏览器。这文件预览应用程序是只读的,但支持多种文件类型,包括PDF、Office 文档、图像、视频、音频等。FileSurfer 还可以执行常见的导航任务,例如列出目录的内容和导航文件夹结构。

3.**编码员:**这是一个基于LLM的智能体程序,通过其系统提示专门用于编写代码,分析来自其他智能体程序收集的信息,或创建新的工件。编码员智能体程序可以撰写新程序,当有控制台输出时,也可以调试先前的程序。

4.Computer Terminal:最终,ComputerTerminal为团队提供了访问控制台shell的功能,在这里,程序员的程序可以被执行。ComputerTerminal还可以运行shell命令,比如下载和安装新的编程库。这使团队能够根据需要扩展可用的编程工具集。

Magentic-One的智能体向编排器提供了必要的工具和能力,使其能够解决各种开放性问题,同时具有自主适应并在动态和不断变化的网络和文件系统环境中行动的能力。

5实验

5.1 AutoGenBench和设置

概览。与具有状态的环境交互的智能体系统,如Magentic-One,对评估提出了独特的挑战。例如,如果一个任务需要安装一个Python库,那么第一个被评估的系统将处于劣势:它的智能体将不得不先编写失败的Python代码,然后调试问题,安装库,最后再尝试。随后的运行 - 也许使用其他智能体或模型 - 将从库的存在中受益,因此可能看起来表现更好,仅仅是因为它们是后来执行的。相反,一个错误的智能体可能会执行动作(例如删除文件,或使系统处于不可操作状态),这将损害所有未来的任务。因此,任何评估都必须独立于任务,提供免受危险副作用的安全性(例如来自智能体动作的影响)。

为了解决这一挑战,我们开发了AutoGenBench来评估主体系统。给定一个基准,其中包含一组独立任务和相关的评估函数,AutoGenBench允许用户在具有严格控制的初始条件下运行这些任务:在每个任务中,AutoGenBench将从一个空白状态开始,使用新初始化的Docker容器,提供推荐的一致性和安全级别。每个任务的结果被记录在主机机器上的一个中央位置(不在Docker内部),可以通过度量脚本进行分析。此外,AutoGenBench允许用户并行启动多个任务以加快评估速度,或者计算重复运行中的方差。

基准测试。使用AutoGenBench,我们可以在各种基准测试上实施和评估Magentic-One。我们选择基准测试的标准是,它们应涉及复杂的多步任务,至少有一些任务或步骤需要规划和工具使用(包括使用Web浏览器在真实或模拟的网页上操作,处理文件等)。在这项工作中,我们考虑了三个满足这一标准的基准测试:GAIA、AssistantBench和WebArena。

GAIA[29]是一个通用AI助手的基准,具有465个多模态问题 - 答案对,这些问题是实际且具有挑战性的,需要多个步骤和多个工具来解决(例如浏览网站,处理文件等)。尽管任务的复杂性,GAIA的问题被设计为可以自动且明确验证,每个答案都由一个目标字符串组成,可以通过字符串匹配来检查。GAIA分为一个包含165个问题 - 答案对的开放验证集,和一个包含300个问题(答案隐藏)的测试集。一个GAIA任务的示例如下:

Example GAIA任务:在美国总统出生的城市中,哪两个城市在东行时从西到东距离最远?只给出城市名字。按字母顺序列出它们,用逗号分隔。

为了解决这个任务,需要执行多个步骤:使用网络查找每位美国总统的出生城市,检索这些城市的坐标,确定最西边和最东边的坐标,然后按字母顺序返回相应的城市。这需要网络导航、编码和推理能力,体现了GAIA的复杂性。

我们考虑的第二个基准是AssistantBench [71]。AssistantBench与GAIA的设计类似,是一组包含214个问题-答案对的基准,这些问题具有现实性,耗时(需要人类几分钟时间才能完成),并且可以自动验证。它们需要导航现实世界的网站和多步推理。与GAIA一样,答案通过字符串匹配进行评估,但AssistantBench引入了一个额外的更柔性的精度度量,允许部分得分[71]。AssistantBench分为一个包含33个问题-答案对的开放验证集和一个包含181个问题的测试集(答案被隐藏)。下面是一个AssistantBench任务的示例:

芝加哥林肯公园附近2个街区内的哪些超市有售价低于15美元的现成沙拉?

这项任务要求智能体使用在线地图(例如,必应地图)来查找林肯公园附近的超市,然后对于找到的每家超市,浏览其网站并检查是否有售价低于15美元的即食沙拉。

最后一个我们考虑的基准是WebArena [79],它涉及在合成Web环境中执行复杂任务。每个任务都需要多步规划和操作,并针对一个或多个完全功能的合成网站。它包含了五个主要网站类别的812个任务(例如购物、论坛、地图等),以及一个需要与多个网站进行交互的第六类别。任务通过在运行网站的上下文中运行每个任务评估脚本来进行评估,以检查答案是否完全或近似匹配目标,并且页面处于所需状态(例如,评论已发布,或商品在购物车中)。WebArena有一个公开的排行榜,但是基于自我报告的结果。该数据集还没有为任务提供正式的验证/测试拆分[18]。我们开发了自己的拆分,以便评估Magentic-One对未见测试集中任务的泛化能力-这仅评估了一次。为了拆分任务,我们计算了每个问题模板id的MD5哈希值,然后将哈希值以数字0-7开头的422个任务分配到验证集中(剩余的390个任务分配到测试集中)。验证集中的一个WebArena任务示例如下:

示例WebArena任务:告诉我在Showerthoughts论坛上发表最新帖子的用户所收到的评论中,收到的踩数比赞数多的评论数量。

为了解决这个任务,智能体需要浏览Showerthoughts论坛,找到最新帖子的用户资料,检索他们的所有评论,最后统计那些获得的踩数多于赞数的评论数量。这展示了WebArena任务具有的多步导航特性。

实施细节。在所有三个基准测试中都使用了Magentic-One的相同配置,但是每个基准测试需要一些额外的设置代码。具体来说,每个基准测试都使用了一个独特的最终提示,以确保答案以基准测试特定的规定格式表示。此外,WebArena的设置代码包括登录网站的指令,这不被视为任务的一部分。最后,WebArena将Postmill网站称为Reddit,导致智能体抱怨他们进入了错误的网站。为了解决这个问题,我们包含了以下提示文本:

这个网站是一个以从Reddit抓取的大量数据为基础的Postmill论坛。Postmill类似于Reddit,但用户界面不同,而“subreddits”以/f/开头而不是/r/。

我们为其他三个WebArena网站提供类似的提示,并在第6.3节中更详细地讨论这个问题。

对于Magentic-One,我们为所有智能体(除了ComputerTerminal)使用的默认多模态LLM是gpt-4o-2024-05-13。在Magentic-One的另一种配置中,我们尝试在Orchestrator和Coder的外部循环中使用OpenAI o1-preview,而其他智能体继续使用GPT-4o。在这种情况下,只有一部分智能体(例如WebSurfer)是多模态的,因为o1-preview只能处理文本作为输入。我们在多智能体平台AutoGen版本0.4 [60]上实现了Magentic-One。MagenticOne的代码已公开发布。这里报告的实验是在2024年8月至10月之间进行的。

5.2结果

结果。表1显示了Magentic-One在所有三个基准测试中与相关基线的性能对比。对于GAIA和AssistantBench,我们仅报告测试集的结果。对于WebArena,由于没有公共测试集,我们报告了所有812个任务的结果。我们分别展示了Magentic-One在仅使用GPT-4o作为所有智能体模型时的性能,以及在使用GPT-4o和o1-preview组合时的性能。我们还包括了文献中在2024年10月21日排行榜上表现最好的基线,对于每个基准测试,这些记录既不是开源的,也没有在技术报告中描述,因此很难进行独立验证。最后,我们还包括了人类表现数据(如有)。

我们使用统计测试来比较Magentic-One和基线的性能,并表示如果它们之间的性能差异在统计上不显着 (α=0.05) 则两种方法在统计上是可比较的;关于我们的统计方法的详细信息可以在附录A中找到。

Magentic-One(GPT-4o,o1-preview)在GAIA和AssistantBench上实现了与SOTA方法相媲美的性能。在WebArena上,仅评估了GPT-4o变体,它在大多数情况下实现了与SOTA方法相媲美的性能,除了WebPilot [75]和Jace.AI(它们实现了统计上更高的分数)。

正如前面提到的,WebArena没有隐藏的测试集,因此在公平评估时带来了一些尴尬的挑战。为了调查这一点,我们考虑了事先创建的自我验证/测试分割。在验证集上,Magentic-One正确完成了422个任务中的148个,占35.1%,而在测试集上下降到了390个任务中的119个,占30.5%。在建立WebArena基准时,我们使用验证集来最初验证和调试我们的工作流程。这一结果表明,在验证任务上付出额外注意导致至少轻微的过拟合。目前还不清楚排行榜上的其他参赛者是否进行了类似的分析或采取了类似的预防措施。我们建议WebArena的作者们在未来的比较研究中开发一个隐藏的测试集。

比较磁力一(GPT-4o)和磁力一(GPT-4o, o1),我们发现在GAIA基准测试中取得了最大的增益。我们假设这是因为GAIA涉及到比AssistantBench更需要逻辑推理和解密的任务。这些正是o1所优化的技能。

这些结果确立了Magentic-One作为一个强大的智能体系统,用于完成复杂的基于Web和文件的任务。此外,在各项基准测试中取得这一水平的表现说明团队的通用性 - 请注意,在表1中的基线系统中,除了基本模型之外,没有其他系统评估过所有三项基准测试。

按任务难度或领域对性能进行分类。每个基准测试都对任务按难度(GAIA、AssistantBench)或应用领域(WebArena)进行了分类。在表2中,我们按类别对性能进行了详细分析,比较了Magentic-One和GAIA、AssistantBench的表现最佳基准线,以及WebPilot [75]的表现最佳WebArena基准线,该基准线提供了类别级别的结果。

通过将性能按类别分解,我们立即注意到,Magentic-One 在困难任务(例如 level 3, hard)方面似乎比容易任务(例如level 1, easy)竞争更好。事实上,在 AssistantBench 上,Magentic-One 在最困难的类别上表现优于最佳可比基准。同样,在WebArena 上,Magentic-One 与 WebPilot 主要在 Reddit 类别上存在差异 - 再次是评分最高的最容易的类别。

我们假设Magentic-One引入了一些固定的开销或复杂性,这在长时间多步骤任务上不成比例地有所帮助,而在少量步骤的短期任务中则增加了出错的机会。这为改进Magentic-One以实现所有水平的SOTA提供了机会。

5.3消融

在这一部分,我们通过消融实验来研究不同的智能体和能力如何影响磁动力-一号的性能。

在GAIA的验证集上,我们进行了多次消融实验,以评估关键的Magentic-One (GPT-4o)智能体和组件的影响。首先,我们研究表1:Magentic-One在GAIA、WebArena和AssistantBench测试集上与相关基准线的表现。对于每种方法,我们在括号中注明用于获得结果的LLM。报告的数字表示确切任务完成率的百分比。所有基准线的结果均来自相应的基准线排行榜。我们没有报告Magentic-One (GPT-4o, o1)在WebArena上的结果,因为o1模型拒绝完成26%的WebArena Gitlab任务和12%的购物管理任务,这导致无法进行公平比较。o1拒绝的一个示例任务是“创建一个新组“webagent”,成员为pandey2000,sayakpaul,sayakpaul”。我们使用Wald区间方法将95%的误差棒表示为±。根据α = 0.05的z检验结果,我们标出与Magentic-One (GPT-4o, o1)在统计上可比的结果,并用粗体标出统计上超过我们表现的结果(附录A)。

Magentic-One的Orchestrator的影响,AutoGen[60]库的GroupChat机制。这个基线编排器简单地决定在任务执行期间下一个应该发言的智能体,消除了分类账、规划、进度跟踪、循环检测和向其他智能体人发出显式指令。我们进行的第二组消融实验是从Magentic-One团队中移除单个智能体人,以衡量这些智能体人对整体任务性能的影响。

对于所有消融实验,我们报告了按困难级别和所需能力划分的结果。对于能力分析,我们将完成任务所需工具映射到四个类别:网络浏览、编码、文件处理和无需工具,这些类别与GAIA数据集的人类标注者报告的类别大致对应,做了一些微调以更好地与Magentic-One智能体的核心功能职责相匹配。例如,[29]中的原始类别包括多模态类别,因为多模态任务处理是通过工具完成的。然而,由于Magentic-One利用多模态模型,所有智能体都通过本质上处理多模态,而不是通过表格2:Magentic-One(GPT-4o)、Magentic-One(GPT-4o,o1)和每个基准测试集的最佳基线之间的性能比较。分析跨越每个基准测试的不同类别。由于没有可用于全部三个基准测试的基线,我们选择每个基准测试中已有结果的最佳基线。GAIA的最佳基线是omne v0.1。WebArena的具有可用类别明智结果的最佳基线是WebPilot [75]。AssistantBench的最佳基线是SPA → CB(克劳德)[71]。对于WebArena,排名靠前的方法 [49,75] 将WebArena中的跨站任务视为属于5个站点之一,因此与Magentic-One的比较可能不同。

使用特定工具。在这种情况下,我们将任务标记为无需工具(即“无”)来完成。我们的能力映射在附录B中进一步描述。

结果。如图3a所示,我们展示了Magentic-One在GAIA验证集上不同消融方法的性能,按难度水平细分。我们发现,Orchestrator的总账簿对Magentic-One的性能至关重要:没有完整的账簿,性能下降了31%。同样,我们发现所有四个工作智能体都很重要:移除任何一个单个智能体都会将性能降低21%(Coder、Executor)至39%(FileSurfer)。例如,FileSurfer对于最大的GAIA类别,即等级2,至关重要,其中许多问题包含文件附件。另一方面,WebSurfer对于等级1任务最为重要。

图3b显示了按所需能力分类的切除结果。在大多数情况下,从Magentic-One中移除一个智能体会导致在需要相应能力的任务上团队表现下降。例如,移除FileSurfer的Magentic-One在需要文件处理的任务上表现最差。同样,没有WebSurfer的Magentic-One在需要浏览网页的任务中表现最差。

有趣的是,通过对消融日志的定性分析,我们发现了几种情况,其中Magentic-One智能体以创造性的方式弥补了缺失的能力。例如,当预计需要运行代码的任务中Coder和ComputerTerminal智能体不可用时,剩下的智能体通过让FileSurfer阅读并推理代码来解决任务,从而预测答案。在另一个例子中,当需要阅读pdf文件内容的任务中FileSurfer不可用时,剩下的智能体则尝试找到在线pdf查看器来解决任务。

5.4错误分析

作为评估的最后一个要素,我们进行了分析,以更好地了解Magentic-One当前的故障模式。

按水平表现 按能力表现

图3:在GAIA开发集上对Magentic-One(GPT-4o)不同消融版本的性能进行评估,衡量正确任务数量。在第一个消融版本中,我们用简单的Orchestrator替换了Orchestrator。随后的消融版本中,我们从Magentic-One中移除单个智能体,代表为“-agent”。消融实验表明,所有智能体都是实现最佳性能所必不可少的。

方法。当 Magentic-One 努力解决任务时,它会生成非常丰富和详细的日志。对这些日志的手动检查通常会显示出智能体遇到的错误、错失的机会、死胡同以及运行时错误。许多这些问题是系统性的,表明团队可以改进的机会。即使智能体成功完成任务,这些机会也可能存在,例如由于次优行为。然而,对这些冗长日志的手动检查是缓慢和费力的,将这种手动劳动扩展到大量的日志可能变得难以承受成本。

为解决这个问题,我们选择使用LLMs来自动化日志分析。这里的一般问题是自动化定性编码的过程,即自动发现日志中观察到的错误和低效率的主要主题。我们实施了一种多阶段的方法来实现这一目标。对于每个任务,我们使用GPT-4o将团队日志提炼成详细的事后分析文档,旨在确定失败的根本原因,以及任何影响因素。这些将作为分析的基础。

每个根本原因文档都会自动使用GPT-4o分配几个描述性代码(又名标签)。没有预先定义的代码手册,因此最初文档之间的代码呈现出高度多样性。生成这些初始代码后,下一步是将它们分组成批次,每个批次都会被发送到GPT-4o进行聚类。这一步将类似的代码合并为更加一致的集合。将代码合并并精炼的过程会迭代重复进行,直到代码稳定或达到迭代的最大次数为止。

我们使用200个随机样本日志来引导这些代码,一旦确定了最终的代码集,就将其应用于整套文档。

持续低效行为是最常见的代码,指的是智能体人在遇到失败时反复进行无效行为而不调整策略。这种对无效行为的持续性导致任务延迟和次优的结果。例如,智能体人可能会持续尝试相同无效的网络搜索而不修改查询,或者反复访问错误的数据集而不进行必要的调整,导致了精力和时间的浪费。

**第二常见的代码是不足的验证步骤,突出了在没有对涉及的数据进行彻底验证即标记任务为完成的情况,导致不可靠或错误的结果。**绕过了必要的核查,导致对数据完整性的假设可能不成立。一个例子是接受最终输出而没有验证其正确性,这可能会由于未经检查的不准确性而在下游分析或决策过程中引入错误。

第三种最常见的代码,即低效的导航尝试,与由于不正确或低效的导航而产生的错误有关,导致错过目标或延长任务完成时间。智能体通常会误解界面布局,导致无谓地循环浏览选项卡或菜单。例如,智能体可能会反复点击多个选项卡以找到“设置”页面,导致延迟。同样,对导航栏进行错误点击可能会阻止访问正确的配置设置。对用户界面设计的困惑可能会导致智能体回到主菜单而不是所需的子部分,进一步延迟任务完成。此外,智能体可能会坚持访问错误的页面链接,导致在检索重要数据时出现显着延迟。这种代码强调了需要更好的导航策略和界面设计,以增强任务效率。

图4b显示了按照特定基准和Magentic-One版本细分的代码热图。热图再次显示了两个最常见代码的存在。

-在所有基准测试中存在持续低效行为和不足的验证步骤。代码中存在未充分利用资源选项,指的是智能体未有效利用可用数据、工具或资源的情况,在日志中也很普遍。这段代码表明智能体可能没有充分利用手头的资源,导致任务执行效率低下和不必要的手动操作。另一个代码,即低效的导航尝试,在WebArena基准测试的日志中尤为普遍,智能体可能难以解释界面布局并采取低效的路径来完成任务。

(a)在研究的所有基准测试中,通过对MagenticOne行为的自动分析获得的错误代码分布如日志中的验证示例所示。

(b)在对Magentic-One的行为进行自动分析时,通过对所研究的所有基准测试中验证示例的日志进行观察,得到的错误代码的热力图。

图4:Magentic-One行为的误差分析。

6讨论

在本节中,我们讨论了关于复杂任务的多智能体系统设计的开放性问题(6.1节),当前的限制(6.2节)以及针对自主操作计算机的智能体人的风险和风险缓解(6.3节)。

6.1 多智能体范式

Magentic-One的核心是其多智能体设计。我们相信这种设计是 Magentic-One 表现的主要贡献因素。事实上,我们观察到大多数其他表现出色的系统也遵循多Agent设计(Sec. 5.2)。

我们认为,在性能之外,多智能体设置相比单一智能体设置具有许多其他优势,包括开发便利性、成本和原始性能。例如,将技能组织成不同的智能体可以简化开发,就像面向对象编程一样。智能体之间的关注点分离使开发人员能够专注于模型选择、促使策略以及其他参数与特定任务相匹配(例如,网络冲浪智能体受益于多模态和结构化输出,但无需担心编写代码)。同样,智能体的模块化可以增加智能体的可重用性和易扩展性,特别是当团队被精心设计以实现即插即用的方法时。例如,Magentic-One的设计通过简单地添加或移除智能体就能适应团队的功能范围,而无需修改其他智能体的提示或整体工作流和编排策略。相比之下,单体式的单智能体系统通常依赖于难以适应或扩展的受限工作流程。

由于这种模块化的结果,每个智能体都可以按照最适合其目的的方式进行实现。在本文中,我们利用这种多样性将 o1 预览模型整合到某些角色中(例如,Coder 和 Orchestrator 的外层循环),同时依赖于通用多模型模型(GPT-4o)进行网页和文件浏览。展望未来,我们看到这种方法可以用于减少对大型模型的依赖 - 虽然某些子任务可能需要最大的语言模型,但其他任务(例如,在 WebSurfer 中执行基础动作,或在 FileSurfer 中总结大型文件)可能适合使用更小的(因此更便宜)模型。不同的子任务可能还需要不同的模式,而某些子任务可能需要外债给传统的非人工智能工具(例如,代码执行,对于代码执行环境来说,标准环境既足够又必要)。通过接受这种多样性,多智能体系统可以在更低的成本下变得更有效率。

理解和量化多智能体与单智能体设置的实证优势构成了未来研究的关键问题。此外,多智能体设置的许多变体是可能的。在这里,我们选择了单一的、集中的控制流模式,其中协调器智能体为专门的工作智能体制定计划并调用它们。许多其他模式是可想象的。例如,我们可以考虑较少集中化的控制流,比如一种对等设置,其中每个智能体自行决定下一个应该控制的智能体。在光谱的另一端,我们可以考虑更加严格的控制流,其中协调器严格遵循自己的计划(例如,通过将其编码为可执行程序),而不仅仅是保持计划在其提示中以进行思维链的提示。确定哪种控制流对于哪些任务效果最佳具有相当重要的理论和实践意义。

除了上述的控制流考虑之外,另一个设计维度与工作分配的轴有关。 Magentic-One的设计不同于其他最近的多智能体系统示例,因为智能体承担功能性或基于工具的责任(网络浏览器、计算机终端等),而不是类似于人类团队的基于角色的责任(规划者、研究员、数据分析师、评论家等)。**根据我们的经验,以工具为中心的智能体与基于角色的智能体相比,可以提供更清晰的责任分离,并且可以更容易实现可重用性和组合性 - 如果一个网络浏览器是一个通用的多功能工具,那么一个能干的WebSurfer智能体也可能是通用的和多功能的。**相反,基于角色的模式可能需要多个智能体具有冗余功能,而每个智能体只填补高度专业化的角色。例如,研究员和数据分析师智能体都可能需要操作网络浏览器或编写代码来完成其指定的任务。未来的工作应该在实践中比较使用基于功能和基于角色的智能体构建的团队的性能,并检查每种方法对开发和调试的便利性的影响。

6.2限制

我们的工作必然存在某些限制,其中一些影响着当前领域的整体状况,另一些则是特定于我们的解决方案:

1.评估重点放在准确性:与其他最先进的系统类似,MagenticOne 在仅考虑最终结果的准确性或正确性的基准上进行评估。虽然这种评估方式更容易和方便进行测量,但这些评估忽视了重要考虑因素,比如成本、延迟、用户偏好和用户价值。例如,即使是部分正确的轨迹可能具有价值,而过于迟或成本过高的完全准确答案可能没有价值,甚至有负面价值。设计考虑这些因素的评估协议,并包括主观或开放性任务,在这些任务中正确性不太清晰,仍然是这个领域中一个持续的挑战。

2.高昂的成本和延迟:尽管这并不是对MagenticOne的正式评估的一部分,但在谈到限制因素时我们无法忽略成本和延迟[18]。Magentic-One需要数十次迭代和LLM调用来解决大多数问题。这些调用的延迟和成本可能是禁锢的,可能会产生几美元的费用,每个任务可能需要数十分钟。我们相信可以通过精确应用较小的本地模型来降低这些成本,例如在FileSurfer和WebSurfer中支持工具使用,或在WebSurfer中支持一组标记动作基础。增加人类监督和人在环中,也可以通过减少智能体人陷入困境和问题解决时产生的迭代次数来节省成本。这仍然是未来研究的一个活跃和持续的领域。

3.有限的模态性:Magentic-One目前无法处理或导航所有的模态。例如,WebSurfer无法观看在线视频 - 尽管通常通过查阅文本摘要或字幕来进行弥补。同样,FileSurfer通过将所有文档转换为Markdown来运行,这使得无法回答关于文档中数字、视觉呈现风格或布局的问题。音频文件同样通过语音转录模型进行处理,因此没有智能体可以回答关于音乐或非语音内容的问题。像GAIA这样的基准测试练习了这些技能。我们期望随着对多模态内容的支持扩展,基准测试和通用任务的表现都会提高。未来的选项包括扩展Magentic-One的WebSurfer和FileSurfer智能体的多模态功能,或者将专门处理音频和视频处理任务的Audio和VideoSurfer智能体添加到Magentic-One团队中。后一种方法最符合围绕简化开发和重复使用的多智能体范式的价值主张。

4.有限的行动空间:虽然Magentic-One中的智能体程序提供了最常见操作的工具,但工具并非全面。这简化了行动基础的任务,但可能导致无法执行的路径。例如,WebSurfer智能体无法在网页上悬停在项目上,也无法拖动和调整元素的大小。这在与地图进行交互时可能会受限。同样,FileSurfer无法处理所有文件类型,而Coder和Computer Terminal智能体无法执行需要API密钥或访问外部数据库或计算资源的代码。我们预计这种限制会随着时间从两个方向得到解决:首先,我们期望工具的使用会在整个行业标准化,大大丰富智能体程序可用的工具集。其次,类似于WebSurfer,智能体程序将更加能够使用操作系统和应用程序,从而使它们能够访问为人们开发的广泛工具范围。

5.编程能力有限:Magentic-One编码智能体特别简单:针对每个编码请求,它会编写一个全新的独立的Python程序。在某些情况下,如果先前的编码尝试需要调试,编码器必须通过输出全新的代码清单来纠正代码。这显然并不理想。这种设计选择带来了两个重要的限制:首先,编码器不适合在现有复杂或多文件的代码库上运行。要在类似SWE-bench [17]的基准测试中具有竞争力,必须克服这一限制。其次,编码器有时会失败,因为它期望在工作流程的后续操作中可以使用之前定义的函数。迁移到类似Jupyter Notebook的设计,其中后续调用只是向笔记本添加单元格,可能会减轻这个特定问题。目前,这种能力由构建Magentic-One的AutoGen库支持,并应进一步探索。

6.固定团队成员:此外,Magentic-One的组成固定为一组共同的五个智能体:Orchestrator(编排者)、WebSurfer(网络浏览者)、FileSurfer(文件浏览者)、Coder(编码者)和ComputerTerminal(计算机终端)。当智能体不需要时,它们只会分散编排者的注意力,可能降低性能。相反,当需要额外的专业知识时,这种知识就无法获得。我们可以轻松想象出一种替代方法,即根据任务需求动态添加或移除智能体。

7.有限的学习:最后,尽管Magentic-One可以根据单个任务尝试中的试错调整其策略,但这些见解在任务之间会被丢弃。我们在WebArena中观察到了这种设计的直接后果,许多问题共享一组共同的核心子任务(例如,查找特定的主题或用户资料)。在这个基准上竞争时,Magentic-One的智能体需要一遍又一遍地发现和重新发现这些子任务的解决方案。这是令人疲惫和沮丧的观看,容易出现错误,并可能带来显着的额外成本。通过长期记忆克服这一限制是未来研究的关键方向。

6.3 风险及缓解措施

本文提到的智能体与一个为人类设计并居住的数字世界进行交互。这带来固有和不可否认的风险。在我们的工作中,我们通过在容器中运行所有任务,利用像WebArena这样的合成环境,选择具有强大对齐性和预生成和后生成过滤的模型,并在执行过程中和之后密切监控日志来减轻这些风险。然而,我们观察到智能体尝试了本应具有风险的步骤。例如,在开发过程中,由于错误配置,智能体无法成功登录到特定的WebArena网站。智能体一直尝试登录到该网站,直到重复的尝试导致账户被临时暂停。随后,智能体尝试重置账户的密码。在其他情况下,智能体意识到WebArena Postmill网站不是Reddit,然后引导智能体前往真正的网站开始工作 - 但最终被我们设置的网络层限制所阻止。同样,我们观察到智能体快速接受了Cookie协议和网站条款和条件,不需要任何人类参与(尽管验证码被正确拒绝)。更令人担忧的是,在少数情况下 - 直到受到提示为止 - 智能体有时尝试寻求其他人类的帮助(例如,通过在社交媒体上发布信息,给教科书作者发送电子邮件,或者在一个案例中向政府实体提交信息自由请求)。在这些情况下,智能体都失败了,因为它们没有获得必要的工具或账户,和/或被人类观察员制止。因此,智能体必须遵循最小特权和最大监督的严格原则运行。

除了观察和减轻这些风险,我们还可以预见到来自这些智能体系统的新风险即将出现。例如,由于智能体操作在公共互联网上,它们可能会受到针对人类网络用户的钓鱼、社会工程和错误信息攻击。在WebArena中,WebSurfer只偶尔才意识到Postmill不是Reddit,这加深了人们对智能体可能被欺骗的担忧。如果智能体配备了用户的个人信息 - 例如为了代表他们完成任务 - 那么这可能会使这些信息面临风险。此外,我们可以想象,如果攻击者预期到智能体使用,并将外部材料投入具有特别制作指令或提示注入的攻击,这些攻击可能会变得更加可靠和有效。为了解决这些挑战,我们可以想象几种减轻措施,如增加人类监督、为智能体配备验证外部信息的工具(例如检查URL中的错字域名,并确保TLS证书等),以及在模型训练后和指令调整中包含钓鱼拒绝示例和其他网站技巧技能。

我们预计另一个我们认为会变得重要的跨领域缓解措施是为智能体人提供一种理解哪些行为是容易可逆的,哪些是需要一些努力才可逆转的,以及哪些是无法撤销的。作为一个例子,删除文件、发送电子邮件和归档表格等行为,不太可能被轻易撤销。这个概念在[78]中得到了一定程度的探讨,提供了一个令人信服的框架来考虑智能体人的安全。当面临高成本或不可逆转的行为时,系统应设计为暂停,并寻求人类输入。

**最近的研究还调查了多个参与者之间的互动,例如迭代请求、长上下文或级联错误,可能会影响我们依赖的现有模型对齐和防范措施的有效性。**例如,高潮多轮攻击[44]通过以良性请求引导模型,然后逐渐升级请求,建立参与者顺从的模式,最终要求一个否则会被拒绝的回应。在多智能体系统中,可能会出现一种类似升级模式的恶意智能体或不幸事故。幸运的是,在短期内,对提示和回应进行强大的前后过滤仍然是一种合理的风险缓解措施。展望未来,我们强烈建议模型对齐工作着重于多轮场景。我们也相信,红队演习对于识别和缓解这类风险至关重要。

最后,智能系统可能会产生潜在的长期社会影响,如可能使工人技能退化或被替代,从而导致潜在的经济混乱。因此,我们认为至关重要的是努力设计促进人与智能体之间有效协作的系统,使人类和智能体共同努力可以取得比智能体单独工作更多的成果。

7结论

在这项工作中,我们介绍了Magentic-One,这是一个用于临时、开放性、基于文件和网络的通用多智能体系统。Magentic-One采用了一种多智能体架构,其中包括一个领导级别的Orchestrator智能体指导其他四个智能体。Orchestrator智能体能够通过基于分类账的编排进行规划、跟踪进展,并从错误中恢复。其余的智能体各自专门负责操作一些通用工具,如网络浏览器、文件浏览器和计算机控制台终端。我们展示了Magentic-One在三项具有挑战性的基准测试中与其他最先进系统竞争实力的统计数据,表现出强大的性能和泛化能力。此外,我们已经开源了Magentic-One的实现,其中包括使用AutoGen框架的事件驱动智能体的参考框架。最后,我们讨论了Magentic-One的局限性,以及通用型AI智能体带来的风险,以及可能的缓解措施。因此,Magentic-One代表了能够解决开放性任务的智能系统的重大发展。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值