人工智能咨询培训老师叶梓 转载标明出处
由于LLM生成内容的过程难以控制,导致生成的计划经常无效或无法执行,这不仅影响了计划的性能,还损害了用户对LLM代理的信任。为了提高代理的性能和用户信任度,控制LLM文本生成的尝试不断涌现,例如引入硬约束和软约束。然而,这些方法在控制LLM代理时更注重计划的有效性和工具使用,而不是纯粹的文本生成。
来自罗格斯大学的研究团队提出了一个名为“Formal-LLM”的新框架,通过整合自然语言的表达力和形式语言的精确性,使LLM代理的计划生成过程更加可控。该框架允许用户通过自动机表达他们对计划过程的要求或约束,然后在自动机的监督下进行基于堆栈的LLM计划生成过程,以确保生成的计划满足约束。实验结果表明,该框架在基准任务和实际生活任务中均取得了超过50%的整体性能提升,验证了使用Formal-LLM指导代理计划生成的可行性和有效性。
Formal-LLM框架
自然语言虽然易于人类理解,但在某些应用场景中可能缺乏精确性。与之相对,形式语言虽然对人类用户来说可能难以理解,但具有极高的精确性。因此作者提出了通过下推自动机(PDA)整合自然语言和形式语言的优势,以实现LLM代理的更可控计划生成的目标。面临的挑战包括LLM直接理解和处理形式语言的困难,以及如何确保生成的计划不仅有效且可执行,还要具有高性能和优化性。
![](https://i-blog.csdnimg.cn/direct/ab14ca9f427845859c3cf127b185276f.png)
图1通过一个简化的示例来说明如何控制基于LLM的代理生成计划。在这个流程中,用户首先用上下文无关文法(CFG)表达自然语言约束,然后将这个CFG转换成下推自动机(PDA)。在LLM进行计划生成时,它必须遵循PDA定义的状态转移规则,从而确保最终生成的计划满足所有预定义的约束。选择PDA是因为某些复杂计划需要树状结构,而PDA正好能够处理这种结构。
将自然语言计划约束转化为形式语言和自动机的过程是通过OpenAGI基准任务来说明的。在这个任务中,涉及到的工具和数据类型被抽象为符号,例如文本数据用"T"表示,图像数据用"I"表示。此外,还定义了六种类型的工具,分别用大写字母"A"到"F"表示。每种工具类型都可以对应到特定的操作,比如图像到图像的转换或文本到图像的生成。
为了表达这些操作的数据格式约束,作者使用了上下文无关文法(CFG)。CFG是一种形式语言,能够通过一组产生式规则来描述语言的语法结构。在这个框架中,CFG被用来定义任务中各个步骤的合法性。例如,如果一个任务需要从图像数据开始,最终生成文本数据,那么相应的CFG规则就会确保这一过程的正确性。
为了将CFG转化为可操作的自动机,作者引入了下推自动机(PDA)。PDA是一种能够处理上下文无关文法的自动机,它通过使用栈来跟踪状态和数据。在这个过程中,CFG中的每个规则都被转换为PDA的转移函数。这样,PDA就能够根据输入字符串(即任务的步骤序列)来验证其是否符合定义的规则。
![](https://i-blog.csdnimg.cn/direct/1b66941d437b42fca587eef96d3f832f.png)
尽管PDA能够确保生成的计划是有效和可执行的,但LLM可能难以直接处理CFG或PDA。为了解决这个问题,作者采用了自然语言提示来辅助LLM理解任务需求并生成计划。PDA从初始状态开始,逐步生成计划。在每一步,PDA会根据当前的状态和栈顶元素来确定下一步的可行选项,并生成相应的提示。
这些提示包括详细的任务描述、当前的进度以及由PDA确定的可行选择。例如,如果任务是将灰度图像转换为彩色图像,PDA会提示LLM选择使用哪种工具(如图像上色工具或图像去噪工具)来处理输入图像。通过这种方式,LLM能够在理解任务需求的同时,生成符合约束的计划。
PDA还能够处理涉及多输入单输出工具的复杂计划。如果一个任务需要多个输入步骤来生成一个输出步骤,PDA能够确保这些步骤的顺序和组合是合理的。例如,在一个烹饪任务中,可能需要先将牛肉和西兰花分别煮熟,然后将它们混合并调味。PDA能够确保这些步骤按照正确的顺序执行,从而生成一个有效的烹饪计划。
![](https://i-blog.csdnimg.cn/direct/7a609273fa8f4296b3f296448ab6920c.png)
![](https://i-blog.csdnimg.cn/direct/b0fe4226f88f433a984cc8442b0ec3a4.png)
Formal-LLM框架中的两个关键机制:回溯机制和任务反馈的强化学习(RLTF)。这些机制共同作用,旨在提高LLM代理生成计划的有效性和质量。
回溯机制
在自动机引导的计划生成过程中,可能会遇到所谓的“死胡同”,即自动机在某个状态下无法继续前进,因为所有可能的转移都已经被探索过或者不符合当前的约束条件。为了解决这个问题,作者提出了一种回溯机制。当自动机在某个步骤遇到死胡同时,它会回溯到之前的步骤,重新选择一个未探索的分支继续执行。这个过程涉及到记录自动机在每一步的状态和栈内容,以及已经生成的计划部分。当需要回溯时,自动机可以恢复到之前的状态,并从新的角度探索可能的解决方案。
这种机制的关键在于它允许自动机在遇到障碍时灵活地调整路径,而不是简单地停止生成计划。通过这种方式,Formal-LLM框架能够确保最终生成的计划是有效且可执行的,即使在面对复杂和动态的任务约束时也是如此。
任务反馈的强化学习(RLTF)
为了进一步提高计划的质量,尤其是在使用开源LLM时,作者将任务反馈的强化学习(RLTF)与Formal-LLM框架结合使用。在这种方法中,LLM代理生成的计划会在基准数据上执行,然后根据执行结果来评估计划的性能。这个性能评估结果被用作奖励信号,反馈给强化学习算法,用于优化LLM的参数。
RLTF的过程包括以下几个步骤:
计划生成:LLM代理生成一个计划。
计划执行:在基准数据上执行该计划,并根据执行结果评估计划的性能。
奖励计算:将执行结果转换为奖励信号。
参数优化:使用奖励信号通过强化学习算法更新LLM的参数。
这种方法的优势在于,它能够利用实际的执行结果来指导LLM的学习过程,从而生成更高质量的计划。同时,Formal-LLM框架确保在生成过程中排除无效计划,这意味着只有有效的计划才会被执行和评估,从而增加了用于微调LLM的有效奖励数量。
实验
用于实验的不同大模型(LLMs)包括封闭源和开放源的LLMs。封闭源LLMs包括GPT-3.5-turbo、Claude-2和GPT-4,而开放源LLMs包括Flan-T5-Large、Vicuna-7B和LLaMA-2。这些模型在实验中被用来测试Formal-LLM框架的有效性。
用于训练和优化LLMs的不同学习模式包括:
零样本学习(Zero-shot Learning, Zero):直接将提示输入LLM。
少样本学习(Few-shot Learning, Few):在提示中提供一组高质量的示例,每个示例包括目标任务的输入和期望输出。
任务反馈的强化学习(Reinforcement Learning from Task Feedback, RLTF):执行计划并将其性能作为奖励来优化LLM。
Formal-LLM(F-LLM):提出的框架,利用自动机控制LLM的生成。
Formal-LLM加RLTF(F-LLM+RLTF):在RLTF的基础上应用Formal-LLM框架,排除无效计划并增加有效奖励的数量。
作者使用OpenAGI平台的工具和多步骤任务进行基准实验。这些工具涵盖了图像处理、文本处理等多个领域。任务根据输出类型和真实标签类型进行分类,并使用不同的指标来衡量性能,如CLIP Score、BERT Score和ViT Score。作者还构建了Task X,这是一个需要树状结构计划的任务子集,用于测试Formal-LLM框架的复杂计划能力。
作者还进行了实际生活规划场景的实验,包括日常计划、烹饪食谱和风险管理。在这些场景中,工具的概念被泛化,包括计划中的各种步骤,如事件、动作或活动。这些实验使用GPT-4进行,因为其他LLMs很难为这些任务生成可读的计划。
作者首先在封闭源和开放源LLMs上进行了基准任务的测试。这些任务涵盖了不同的数据类型和任务类型,如图像到图像的转换、文本到图像的生成、文本到文本的转换等。实验结果显示,Formal-LLM框架在大多数任务类型中都取得了显著的性能提升:
- 对于封闭源LLMs(如GPT-3.5-turbo、Claude-2和GPT-4),Formal-LLM框架在没有修改LLM参数的情况下,通过零样本学习(Zero-shot Learning)和少样本学习(Few-shot Learning)取得了最佳成绩。这表明Formal-LLM框架能够有效地引导LLM生成符合约束的计划。
![](https://i-blog.csdnimg.cn/direct/c0777ce3e0b7439e81dd7a690f5353d2.png)
- 对于开放源LLMs(如Flan-T5-Large、Vicuna-7B和LLaMA-2),Formal-LLM框架在大多数情况下也优于任务反馈的强化学习(RLTF)。尤其是在需要树状结构计划的Task X中,Formal-LLM框架能够生成100%可执行的计划,而其他基线方法则无法处理这种复杂的任务。
![](https://i-blog.csdnimg.cn/direct/ca1e868a9daf4029a68441fe9495cdf7.png)
实验中使用了多种性能指标来衡量不同任务的执行效果,如CLIP Score、BERT Score和ViT Score。这些指标分别评估了文本到图像、图像到图像和文本到文本任务的相似度。Formal-LLM框架在这些指标上的表现均优于其他方法,验证了其在生成有效计划方面的优势。
一个关键的发现是,Formal-LLM框架能够确保生成的计划100%有效可执行。这一点在Task X中尤为明显,因为这些任务需要生成树状结构的计划,而不是简单的链状结构。Formal-LLM框架通过自动机的引导,能够有效地避免生成无效的计划,从而提高了整体的执行效率。
作者还通过具体的实际生活例子进一步展示了Formal-LLM框架的应用效果。这些例子包括日常生活计划、烹饪食谱和风险管理。
日常生活计划:在日常生活计划的例子中,Formal-LLM框架能够确保所有活动都在指定的时间内完成。例如,Formal-LLM能够合理安排早餐、午餐、晚餐、购物、做家务和打篮球等活动,同时遵守“不能在饭后一小时内打篮球”的约束。这种精确的时间管理在没有Formal-LLM的情况下很难实现。
烹饪食谱:在烹饪食谱的例子中,Formal-LLM框架能够生成一个逻辑清晰、步骤合理的烹饪计划。例如,Formal-LLM会按照正确的顺序安排牛肉和西兰花的准备、烹饪和调味步骤,避免了不合理的操作,如在水沸腾后立即进行炒制。
风险管理:在风险管理的例子中,Formal-LLM框架能够生成一个针对特定交易的风险管理计划。通过遵循预定义的流程图,Formal-LLM能够引导LLM生成一个详细且符合实际需求的风险管理策略,确保交易的顺利进行。
通过这些实验,作者证明了Formal-LLM框架在提高LLM代理计划生成的可控性和有效性方面的有效性。无论是在基准任务还是实际生活场景中,Formal-LLM框架都能够显著提高计划的质量和可执行性。
论文链接:https://arxiv.org/abs/2402.00798