AIxiv专栏是AI在线发布学术、技术内容的栏目。过去数年,AI在线AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected];[email protected]
AFLOW 作者团队来自于 MetaGPT 开源社区。AFLOW 论文共同第一作者为香港科技大学(广州)的博士生张佳钇和 DeepWisdom 研究员向劲宇,共同通讯作者为 DeepWisdom 创始人兼 CEO 吴承霖(MetaGPT 代码作者、论文通讯作者)和香港科技大学(广州)的助理教授骆昱宇。作者还包括中国人民大学的于兆洋、滕枫蔚和程信,南京大学 LAMDA 实验室博士生陈雄辉,复旦大学的陈家祺和郑炳南,阿卜杜拉国王科技大学的博士生诸葛鸣晨(MetaGPT 论文共同一作),DeepWisdom 研究员洪思睿(MetaGPT 论文共同一作)和王金淋,蒙特利尔大学与 MILA 实验室的助理教授刘邦。
对于 LLM 从业者来说,让 LLM 落地应用并发挥作用需要手动构建并反复调试 Agentic Workflow,这无疑是个繁琐过程,一遍遍修改相似的代码,调试 prompt,手动执行测试并观察效果,并且换个 LLM 可能就会失效,有高昂的人力成本。许多公司甚至专职招聘 Prompt Engineer 来完成这一工作。
现在,Agentic Workflow 也有自己的自动优化工具了。
MetaGPT 开源了 AFLOW,它使用 MCTS 进行 Agentic Workflow 的自动搜索,可以完全自动地构建与优化 Agentic Workflow 问题,让我们不再需要手写代码、调试提示词。
AFLOW 通过蒙特卡洛树搜索优化工作流,极低成本实现 GPT-4o 级能力
这是对提示词自动优化的进一步探索,通过蒙特卡洛树搜索,完全接管了 Agentic Workflow 的生成与优化过程,表现远超其他工作流自动优化工作,甚至超越了对比的所有手工工作流基线。
论文标题:AFlow: Automating Agentic Workflow Generation
论文地址:https://arxiv.org/abs/2410.10762
项目地址:https://github.com/geekan/MetaGPT/tree/main/examples/aflow
什么是自动工作流优化问题?
现有的 Agentic Workflow 自动生成工作难以生成有效的工作流,它们往往需要人工介入初始设置,且无法全面捕捉到完成任务所需的工作流多样性。为了克服这些挑战,研究人员提出了 AFLOW 框架。利用蒙特卡洛树搜索(MCTS)技术来系统地探索和优化 LLM 的工作流。AFLOW 通过将工作流定义为代码可表示的节点和边,从而有效地捕捉 LLMs 调用之间的复杂交互。通过引入操作符的概念,AFLOW 进一步简化了搜索空间,提高了搜索效率。在多个基准数据集上的实验结果表明,AFLOW 能够自动发现和优化工作流,显著提高了任务执行的性能,同时减少了对人工干预的依赖。
AFLOW 的动态演示。通过不断迭代的选择、扩展、评估和反向传播实现工作流的自动化生成和优化
AFLOW 首先将工作流优化问题重新构建为一个搜索问题,其中工作流被表示为代码化的节点序列,每个节点代表 LLM 的一个具体操作,节点之间的边定义了操作的逻辑、依赖关系和执行流程。这种表示方法将工作流转化为一个可以搜索和优化的图结构。具体来说,工作流 W 被定义为一个 LLM 调用节点序列,其中每个节点包含模型 M,提示 P,温度,输出格式 F(如 xml、json、markdown、raw)四个参数。节点通过边连接,边可以由各种结构表示,如图,神经网络,代码。
自动化工作流优化的目标是在给定任务 T 和评估函数 G 的情况下,发现一个工作流 W ,使得 G(W,T) 最大化。这可以被表述为一个搜索过程,其中算法 A 探索搜索空间 S 来确定最优的工作流配置。搜索空间 S 包括所有可能的节点参数和边结构的配置。
Node、Operator 和 Edge 示例。此处展示 Node 的可选参数、Operator 常见结构和 Edge 的常见表示
AFLOW 如何自动优化工作流?
AFLOW 利用蒙特卡洛树搜索(MCTS)来自动化地生成和优化 Agentic Workflow。在 AFLOW 框架中,Operator 扮演着至关重要的角色,它们是预定义的、可重用的节点组合,代表常见的智能体操作(比如审查,投票,生成)。这些 Operator 作为构建工作流的基础构件,被集成到搜索空间中,确保探索过程可以利用已知的有效智能体操作模式。引入 Operator 能够显著提升 AFLOW 框架的搜索效率和工作流的优化效果,减少在庞大搜索空间中的盲目探索。
AFLOW 的目标是在给定任务和评估函数的情况下,发现一个能够最大化任务性能的工作流。AFLOW 算法开始于初始化模板工作流,这个模板提供了一个基本的工作流框架,包括 LLM 节点的调用和 Operator 的使用。然后,算法通过 MCTS 的四个主要步骤进行迭代:选择(Selection)、扩展(Expansion)、评估(Evaluation)和反向传播(Backpropagation)。
AFLOW 整体框架:通过设置一个由仅具有灵活 prompt 参数的节点、给定的运算符集和表示边的代码组成的搜索空间,AFLOW 在此空间内执行基于 MCTS 的搜索。通过为工作流优化而设计的 MCTS 变体,AFLOW 迭代执行软混合概率选择、基于 LLM 的扩展、执行评估和经验反向传播的循环,直到达到最大迭代次数或满足收敛标准
选择阶段 AFLOW 使用软混合概率选择机制来选择一个节点进行扩展。这种机制结合了均匀概率分布和基于分数的加权概率分布,以平衡探索和利用,避免陷入局部最优解。选择过程中,AFLOW 会考虑候选节点的得分和探索的需要,从而选择一个既有可能带来性能提升又具有探索价值的节点。
扩展阶段 AFLOW 使用 LLM 作为优化器来生成新的工作流。优化器利用选定工作流的经验来生成新的提示或通过修改代码来改变节点连接,从而产生新的工作流变体。这些新的工作流变体是通过对现有工作流的微小调整来实现的,例如添加、修改或删除节点和边。
评估阶段 AFLOW 直接执行生成的工作流以获得反馈。由于推理任务具有明确的评估函数,AFLOW 可以通过在验证集上多次运行工作流来计算平均分和标准差,从而获得更准确的优化器反馈。
反向传播阶段 工作流的性能信息被反向传播到 MCTS 的树结构中,用于更新节点的得分,并指导未来的搜索迭代。这些信息包括工作流的执行结果和相对于其父工作流的优化成功与否。通过这种方式,AFLOW 能够从每次迭代中学习,并逐渐改进工作流的性能。
为了避免在优化达到极限后继续执行的不必要成本,当连续几轮中分数优先的前 k 个工作流没有改进时,AFLOW 将停止上述迭代过程。
AFLOW 带来的 Agentic Workflow 变革
显著的性能优势 AFLOW 选取了六个文本推理的任务,覆盖了代码(HumanEval, MBPP),数学(GSM8K, MATH),知识问答(HotpotQA, DROP)三个场景。相比现有手动方法平均提升 5.7%,较其他自动化方法更是提升了 19.5%。在所有六个任务中,AFLOW 展现出全面的领先优势,证明了其在不同任务类型上的稳定性和适应性。
与其他方法的性能比较。为了评估该方法的性能,我们在不同的数据集中采用了各种指标:Math 和 GSM8K 的求解率、HotpotQA 和 DROP 的 F1 分数以及 HumanEval 和 MBPP 的 pass@1。我们的 AFLOW(以黄色突出显示)在所有六个基准测试中始终优于所有自动工作流程优化和手动设计的方法
显著成本降低 AFLOW 为 Agent 领域带来的最大变革在于其显著的成本降低。较小尺寸的模型通过 AFLOW 找出的工作流,仅需 GPT-4o 推理成本的 4.55% 就能实现同等性能。这一突破意味着企业可以用更小的模型实现大模型的效果,为 AI 应用的规模化部署提供了经济可行的解决方案。
成本(Cost)指执行分割后 HumanEval 测试集的总费用。AFLOW(模型)指 AFLOW 使用该模型执行工作流,获得反馈。图例中的颜色代表在测试数据集中执行工作流所使用的不同 LLM
自动化的效率提升 AFLOW 彻底改变了传统的人工调试模式。通过自动化的工作流生成与优化机制,显著减少了人工参与的需求。开发者不再需要花费大量时间进行反复调试和优化,系统能够自动发现最优的工作流组合,大幅缩短了开发周期。
广泛的适用性 实验结果表明,AFLOW 展现出优秀的迁移能力。它不仅支持多种主流 LLM 模型,还能适应不同类型的任务需求。在问答、代码生成、数学问题求解等多个领域的测试中,AFLOW 都表现出色,证明了其作为通用优化框架的价值。此外,用户可以通过简单的提供数据集与 Evaluation Function 来将 AFLOW 使用在自己的任务上。
展望
AFLOW 提出了一种有效生成 Agentic Workflow 的方法,并全面展示了其在降低人力与推理成本上的惊人能力。这一研究成果有望加速 Agent 在各个领域落地的速度,将 Agentic Workflow 的构建过程从专家手工构建转变为小白自动构建。
使用
目前,作者已在 GitHub 上开源了完整代码。用户可通过自定义 Benchmark 与数据集,快速为个性化任务搜索最佳性能或性能成本平衡的工作流方案,帮助个人和企业节省大量时间。
AFLOW 的 Github 指南。可以参照分步指南配置和运行 AFLOW,高效生成和优化工作流