近年来,大型语言模型 (LLM) 的功能已经改变了自然语言处理和理解,取得了显著的里程碑。尽管取得了这些进步,但 LLM 在交互式环境中仍面临重大挑战,尤其是在需要多步推理的任务(如网页导航)中。当前依赖静态语言数据集的训练方法不足以使这些模型适应动态的现实世界交互。这里解释下静态数据集为啥达不到现实交互,主要的原因是数据滞后性和真实性,但把大模型数据联网不就解决了么,但这里就需要考虑成本问题问题,如果大模型具备 AGI,那么必然会走上所有知识都需要更新,成本就在于这些数据去微调和训练无穷无尽。(AGI专业领域挑战科普,RAFT(检索增强微调)改进这一切) Agent Q 的问世,是 Agent 的一个重要里程碑,它将搜索、自我批评和强化学习结合起来,创造出能够规划和自我修复的最先进的自主网络代理。团队突破性方法通过引入一种用于自主网络导航的学习和推理新框架,解决了以前 LLM 训练技术的局限性。Agent Q 原理
Agent Q通过将引导式蒙特卡洛树搜索 (MCTS) 和 AI 自我批评与迭代微调相结合,利用强化学习人类反馈 (RLFH) 方法(直接偏好优化 (DPO) 算法)进行创新。这种方法使 LLM 代理能够从成功和不成功的轨迹中学习,从而增强其在多步骤推理任务中的泛化能力。
什么是 MCTS ?
蒙特卡洛树搜索是一类树搜索算法的统称,是一种抉择算法,从全局来看,蒙塔卡洛树搜索的主要目标是:给定一个游戏状态来选择最佳的下一步。MCTS 受到关注主要是由计算机围棋程序的成功以及潜在的众多难题上的应用所致。超越博弈游戏本身,MCTS 理论上可以被用在以(状态 state,行动 action)对定义和用模拟进行预测输出结果的任何领域。- 选择(Selection):从根节点 R 开始,选择连续的子节点,直到到达叶节点 L。根节点是当前游戏状态,叶节点是任何具有潜在子节点但尚未启动模拟(播放)的节点。这是蒙特卡洛树搜索的本质。
- 扩展(Expansion):除非L果断结束游戏(例如,赢/输/平局),否则创建一个(或多个)子节点并从其中一个中选择节点C。子节点是从 L 定义的游戏位置开始的任何有效移动。
- 模拟(Simulation):从节点 C 完成一次随机比赛。比赛可能很简单,只需选择均匀的随机动作,直到游戏结果确定(例如,在国际象棋中,游戏获胜、失败或平局)。
- 反向传播(Backpropagation):使用播放的结果来更新从 C 到 R 的路径上的节点中的信息。
举个例子,我们需要一个简单的游戏,我们可以从中画出一棵游戏树。游戏规则:配对相邻两个球,玩家人数:2,棋盘上的盒子数量:4。 如上图,想一下,不管选哪个,下一个都是邻近第一次选的才能胜利。绿为获胜位置,即+1(共6个节点)。
黄为平局,即 0(共 4 个节点)
红正在失去位置,即 -1(总共 2 个节点)
S0是初始状态,我们需要在m1和之间选择下一步行动m2,这将导致状态S1或S2。S1和S2在这里我们计算上限置信界限 (UCB) 值,由于两者都是叶节点,因此两者的值都将为无穷大,因此我们随机选择S1并模拟S1。
由于S1是叶节点且未被访问,我们用随机移动模拟游戏直到叶节点,也就是 S4 区域。发现仅模拟一次并做出 m3 移动 m4,结果是平局,因为这里被隔开了。那么根据游戏规则分配 S4 = 0 并增加访问次数 N4 = 1。然后反向传播,同步到 S1 处。 更新 S1 和 S2,因为,由于N不一样,前者 UCB 为0(取整),后者 UCB 为无穷大。以贪心原则,策略选取最大的,也就是 S2 方向。
由于 S2 是叶节点且未被访问,我们用随机移动模拟游戏,直到到达叶节点。为了简单起见,我们只模拟一次并进行 m5 , m6 移动,结果获胜。根据游戏规则 Win = 1,分配 S6=1 并增加访问次数 N4 = 1。然后反向传播更新直到 S2 处。 选择阶段再次计算 UCB 值,现在 N 都是 1,但是 S2 > S1, UCB 值为1,所以再次选 S2。S2已经被访问过,所以现在扩展S2。S2将成为父级,我们将对其子级进行选择。为什么这里变成 m7-9选择,因为这里是UCB值是无穷大。 S7、S8、S9。由于所有都是叶节点,UCB 值将为无穷大。因此我们将随机选择 S7 并模拟 S7。 由于 S7 是叶节点且未被访问,我们用随机移动模拟游戏,直到到达叶节点。模拟一次并采取 m10 行动,最终获得胜利。根据规则,Win = 1,因此分配 S10 = 1 并增加访问次数 N7 = 1。反向传播更新到 S2,更新 UCB 值和 N2 =2。
后续一葫芦画瓢得出所有 UCB 得值和探索步数,就能得到一张策略图。Direct Preference Optimization
DPO 针对人类偏好进行优化,同时避免强化学习。这是一种简单的非强化学习算法,用于根据偏好训练语言模型。现有的使用人类反馈微调语言模型的方法首先将奖励模型拟合到提示和人类对响应的偏好数据集,然后使用 RL 找到最大化学习奖励的策略。相比之下,DPO 直接优化最能满足偏好的策略,使用简单的分类目标,拟合一个隐式奖励模型,其对应的最优策略可以以封闭形式提取。
回到 Agent,为了指导搜索,我们在每个节点分支上使用相同的模型作为零样本批评家评估器,以 AI 自我批评的形式进行。虽然这种方法解决了 Web 代理的先前问题,但它在推理时仍然很昂贵,因此我们使用节点级别的直接偏好优化 (DPO) 算法的离策略变体进一步细化 MCTS 轨迹上的基础代理。我们的方法允许 LLM 代理从成功和不成功轨迹的聚合数据集中有效地学习,从而提高它们在多步推理任务中的泛化能力。我们在 WebShop 环境中验证了我们的方法,其中 agent 浏览模拟的购物网站。从基于 SFT 的预训练的 LLM 开始,我们的迭代微调将零样本性能相对于基线提高了50%。在我们的长期现实世界预订实验中,我们在一天的数据收集后将 LLaMa-3 零样本性能的成功率从18.6% 提高到 81.7%,优于 GPT-4。
- 使用 MCTS 进行引导搜索:该技术通过探索不同的动作和网页自主生成数据,平衡探索和利用。MCTS 使用高采样多样化提示来扩展动作空间,确保多样化和最佳的轨迹集合。
- AI 自我批评:在每一步中,基于 AI 的自我批评都会提供宝贵的反馈,从而完善代理的决策过程。这种步骤级反馈对于长期任务至关重要,因为稀疏信号通常会导致学习困难。
- 直接偏好优化:DPO 算法通过从 MCTS 生成的数据构建偏好对来微调模型。这种离线策略训练方法允许模型从聚合数据集(包括搜索过程中探索的次优分支)中有效地学习,从而提高复杂环境中的成功率。
上图展示了 Agent Q 的使用 case, 使用蒙特卡洛树搜索 (MCTS) 来指导轨迹收集,并使用直接偏好优化 (DPO) 迭代改进模型性能。从左侧开始,从数据集中的任务列表中抽取用户查询。使用 UCB值 作为启发式方法迭代扩展搜索树,以平衡不同操作的探索和利用。存储树中每个节点获得的累积奖励,在此图中,灰绿色表示奖励较高,深红色表示奖励较低。 Agent 提供以下输入格式,包括系统提示、执行历史、当前观察(以 DOM 表示)以及包含目标的用户查询。将 Agent 的输出格式分为总体分步计划、思路、命令和状态代码。
首先 agent 观察,“在 OpenTable 上预订 Cecconi's 餐厅 2024 年 5 月 22 日晚上 7:00 的 4 人座位”, 后续观察包括来自浏览器的网页,以 HTML DOM 格式表示。对于某些任务,agent 可能会要求用户确认反馈,这也成为观察的一部分。 然后基于历史数据进行初步规划,对于初步观察后的第一个行动,利用基础 LLM 的规划功能,逐步生成计划。随后所有行动都由思想行动组成,它将参与环境交互,这些环境包括按钮,滑动操作,最终结果作用影响在抉择后搜索展示的内容。
实验结果
团队做了初步实验,尽管进行了额外的强化学习训练,团队的 agent 仍然无法在该环境中达到人类的平均表现。团队发现 DPO 策略的核心失败模式之一是它在寻找与产品查询匹配项时执行贪婪搜索。例如,对于每个搜索查询,WebShop 环境都会产生多页结果。然而,发现该模型几乎总是贪婪地在第一页结果中搜索最匹配的项目,而不是使用“[NEXT]”和“[PREV]”按钮在页面之间导航,本质上部署了一种弱探索策略。 虽然基于 DPO 的结果监督的训练取得了有意义的改进,但由于探索有限,该模型仍然无法与人类表现相匹配。团队加入了 MCTS 算法,将 Web 代理执行公式化为网页上的树搜索。由 agent 历史记录和当前网页的 DOM 树组成。与国际象棋或围棋银牌等棋盘游戏不同使用的复杂 Web 代理。将使用基础模型作为动作建议分布,并在每个节点(网页)上采样固定数量的可能动作。一旦在浏览器中选择并执行一个动作,就会遍历下一个网页,该网页与更新的历史记录一起成为新节点。然后就回到前面算法推导,一步一步套娃。 该策略在推理时间搜索期间每一步都会提出K 个动作。批评者也初始化为该策略使用的相同基础 LLM 模型,对策略提出的动作进行排名。用于指导扩展后的节点选择,并用于在策略训练期间构建偏好。 期间团队利用使用的 MCTS 的上限置信边界 (UCB) 公式。来选择节点,旨在平衡探索和开发,基于网络的环境不提供中间奖励来指导搜索,因此我们结合基于人工智能的批评,在步骤级别提供流程监督来指导探索过程(这个过程就是0样本学习策略)。团队最终使用基础模型为每个操作生成反馈分数,方法是要求它根据其在帮助代理完成用户任务方面的感知效用对生成的操作进行排名。
OpenTable 网站中真实使用
在 OpenTable 中,agent 的任务是为用户预订餐厅。agent 必须在 OpenTable 网站上找到餐厅页面,在特定日期和时间寻找预订,选择符合用户偏好的座位选项并提交用户联系信息才能成功完成任务。由于 OpenTable 是一个实时环境,很难以编程方式衡量指标,因此使用语言模型 GPT-4-V 根据以下指标收集每条轨迹的奖励:(1) 正确设置日期和时间,(2) 正确设置聚会人数,(3) 正确输入用户信息,(4) 点击完成预订。如果满足上述每个约束条件,则任务标记为已完成。结果监督设置上图所示。团队也尝试使用 LLaMa 70B 进行结果监督,但发现视觉能力准确性显著高了纯文本推理。 为了生成 OpenTable 基准数据集的查询,我们通过组合餐厅名称、所需日期和时间以及用户信息,以编程方式生成一组多样化的用户查询。在实时网站上导航会带来各种各样的挑战。例如,假设用户指定的餐厅位于与浏览器初始化位置不同的城市,则模型必须采取额外步骤才能找到该餐厅。此外,如果无法获得用户请求的确切日期和时间,则模型可能必须选择最近的可用预订时段。最后,如果有偏好设置,例如模型显示的是室内或室外座位选项,则期望的行为是与用户交互以确定最佳行动方案。
OpenTable 为网络导航代理带来了一系列复杂的挑战,完成任务所需的步骤数平均为 13.9 步,是 Webshop 平均步骤数 6.8 的两倍多。 说明MCTS分支太多了,需要优化删减一些分支条件,来加快决策。
结果表明 Agent Q 本身可达到 81.7%,而 Agent Q + MCTS 明显优于所有其他技术,在 OpenTable 上的性能为95.4%。