EnCompass框架:用搜索回溯优化AI代理

0 阅读7分钟

无论您是头脑风暴研究想法的科学家,还是希望自动化人力资源或财务任务的CEO,都会发现AI工具正成为您意想不到的得力助手。尤其是许多专业人士正在挖掘半自主软件系统(称为AI代理)的能力,这类系统可在特定节点调用AI来解决问题和完成任务。

当AI代理使用大语言模型(LLM)时尤为高效,因为这些系统强大、高效且适应性强。编程此类技术的一种方法是用代码描述您希望系统执行的“工作流”,包括何时应使用LLM。如果您是一家软件公司,试图革新旧代码库以使用更现代的编程语言实现优化和安全性,可能会构建一个系统,利用LLM逐文件翻译代码库,并边翻译边测试每个文件。

但当LLM出错时怎么办?您会希望代理回溯并再次尝试,同时吸取先前错误的教训。编写这种回溯逻辑可能需投入与实现原始代理相当的努力;如果用于翻译代码库的系统包含数千行代码,那么为了支持LLM出错时的回溯逻辑,您需要修改或添加数千行代码。

为节省程序员的时间和精力,某机构计算机科学与人工智能实验室(CSAIL)及Asari AI的研究人员开发了名为“EnCompass”的框架。借助EnCompass,您无需亲自进行这些修改。相反,当EnCompass运行您的程序时,若LLM出错,它会自动回溯。EnCompass还能克隆程序运行时,并行进行多次尝试以寻找最佳解决方案。在最一般的情况下,EnCompass会搜索代理因LLM调用的不同可能输出而产生的所有可能路径,寻找LLM找到最佳解决方案的那条路径。

您只需标注可能希望回溯或克隆程序运行时的位置,并记录对搜索代理不同执行路径的策略有用的任何信息。然后,您可以单独指定搜索策略——既可以使用EnCompass内置的策略,也可以根据需要实现自己的自定义搜索策略。

“借助EnCompass,我们将搜索策略与AI代理的基础工作流分离开,”第一作者Zhening Li(25届硕士)表示,他是某机构电气工程与计算机科学(EECS)博士生、CSAIL研究员及Asari AI研究顾问。“我们的框架让程序员能轻松尝试不同的搜索策略,找到使AI代理表现最佳的那一种。”

EnCompass被用于实现为调用LLM的Python程序的代理,并展现出显著节省代码量的效果。在多种代理(如翻译代码仓库和发现数字网格转换规则的代理)中,EnCompass将实现搜索的编码工作量减少了高达80%。未来,EnCompass可使代理应对大规模任务,包括管理庞大的代码库、设计并执行科学实验,以及创建火箭和其他硬件的蓝图。

分支探索

在编程代理时,您可以标记特定操作(如对LLM的调用),这些操作的结果可能有所不同。这些注释称为“分支点”。如果您将代理程序想象为生成单一故事线,那么添加分支点就像将故事变为“选择您自己的冒险”游戏,分支点是情节分支出多个未来情节线的位置。

然后,您可以指定EnCompass用于导航该故事游戏并寻找最佳故事结局的策略。这可以包括启动并行执行线程,或在陷入死胡同时回溯到之前的分支点。

用户还可以即插即用地使用EnCompass内置的几种常见搜索策略,或定义自己的自定义策略。例如,您可以选择蒙特卡洛树搜索(通过平衡探索与利用来构建搜索树),或集束搜索(保留每一步的最佳输出)。EnCompass使尝试不同方法变得容易,以找到最大化成功完成任务可能性的最佳策略。

EnCompass的编码效率

那么,EnCompass为代理程序添加搜索的代码效率究竟如何?根据研究人员的发现,该框架大幅减少了程序员为添加搜索而需要添加到代理程序中的代码量,帮助他们尝试不同策略以找到表现最佳的那一种。

例如,研究人员将EnCompass应用于一个代理,该代理将代码仓库从Java(常用于应用程序和企业软件开发)翻译为Python。他们发现,使用EnCompass实现搜索(主要涉及添加分支点注释和记录每一步表现良好的注释)比手动实现少写了348行代码(约减少82%)。他们还展示了EnCompass如何使他们轻松尝试不同搜索策略,确定最佳策略为两级集束搜索算法,在五个不同仓库中,以16倍于无搜索代理的LLM调用次数作为搜索预算下,实现了15%至40%的准确率提升。

“随着LLM成为日常软件中更不可或缺的部分,理解如何高效构建利用其优势并规避其局限性的软件变得越发重要,”合著者Armando Solar-Lezama说,他是某机构EECS教授和CSAIL首席研究员。“EnCompass是朝着这个方向迈出的重要一步。”

研究人员补充说,EnCompass针对的是程序指定高层工作流步骤的代理;该框架当前的迭代不太适用于完全由LLM控制的代理。“在那些代理中,没有指定步骤的程序然后用LLM执行这些步骤,而是LLM自己决定一切,”Li说。“没有底层程序化工作流,因此您可以在LLM即时生成的任何内容上执行推理时搜索。在这种情况下,对像EnCompass这样修改程序执行方式(包括搜索和回溯)的工具需求较小。”

Li及其同事计划将EnCompass扩展到更通用的AI代理搜索框架。他们还计划在更复杂的任务上测试该系统,以优化其在实际应用(包括在公司中)的表现。此外,他们正在评估EnCompass在帮助代理与人类协作完成任务(如头脑风暴硬件设计或翻译更大代码库)方面的效果。目前,EnCompass是一个强大的构建模块,使人类能够更轻松地调整AI代理,提升其性能。

“EnCompass的出现恰逢其时,因为AI驱动的代理和基于搜索的技术正开始重塑软件工程的工作流程,”未参与该研究的某大学教授Yiming Yang说。“通过清晰地将代理的编程逻辑与推理时搜索策略分离,该框架提供了一种原则性的方法来探索结构化搜索如何增强代码生成、翻译和分析。这种抽象为更系统化、更可靠的搜索驱动软件开发方法提供了坚实基础。”

Li和Solar-Lezama与Asari AI的两位研究人员合著了论文:某大学教授Yisong Yue(公司顾问)以及资深作者Stephan Zheng(创始人兼CEO)。他们的工作得到了Asari AI的支持。

该团队的研究成果已于12月在神经信息处理系统大会(NeurIPS)上发表。FINISHED