清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页

AutoWebGLM: Bootstrap And Reinforce A Large Language Model-basedWeb Navigating Agent

AutoWebGLM是一个旨在构建更高效的语言模型驱动的自动web导航代理的项目。这个项目建立在ChatGLM3-6B模型之上,扩展了其更有效地浏览网页的能力,并更好地解决现实世界的浏览挑战。

论文地址:https://arxiv.org/pdf/2404.03648.pdf

Github地址:https://github.com/THUDM/AutoWebGLM

 

摘要

现有的大型语言模型(LLM)Agent在现实世界的网页上的表现强差人意,鉴于这一问题,本文开发了AUTOWEBGLM,一个基于ChatGLM3-6B的自动WEB导航Agent。受人类浏览模式的启发,我们设计了一种HTML简化算法来表示网页。我们采用人工智能混合方法构建网页浏览数据,用于模型训练。然后,我们通过强化学习和拒绝采样来引导模型,以进一步促进网页理解,浏览器操作和有效的任务分解。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

为了测试,我们建立了一个双语基准AutoWebBench,用于现实世界的网页浏览任务。我们评估AUTOWEBGLM在不同的网页导航基准,揭示其改进,但也潜在的挑战,以解决实际环境。

简介

AUTOWEBGLM是一个基于ChatGLM3-6B的可部署网页浏览Agent。与其前身WebGLM不同的是,它专注于检索增强网络规模的问答,AUTOWEBGLM致力于通过像人类一样在真实的WEB浏览器上导航和操作来自主完成复杂的现实世界任务。我们提出了各种有效的数据策略,以支持快速构建规模庞大、可靠的训练数据集。

我们通过监督和强化学习方法,在收集的WEB Agent数据集之上训练AUTOWEBGLM。另外,我们在特定的网络环境中使用拒绝采样微调(RFT)进行终身学习,使智能体成为特定领域的专家。

我们基于AUTOWEBGLM开发了一个Chrome扩展。在实验中,它可以在各种网站上进行推理和操作,准确地完成用户任务,使其实际适用于现实世界的服务。此外,考虑到不同地区的网站有很大的风格差异,我们构建了第一个双语(英语和汉语)网页浏览评估数据集。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

本文主要贡献如下:

  • 设计并开发了AUTOWEBGLM Agent,通过课程学习、自采样强化学习和网页浏览环境中的RFT来有效地完成网页浏览任务。
  • 使用模型辅助和手动方法构建了一个真实的网页浏览操作数据集,其中包含大约10,000条痕迹,包括双语(英语和汉语)网页浏览基准AutoWebBench。
  • 通过实验证明,具有6B个参数的AUTOWEBGLM达到了与最先进的基于LLM的Agent相当的性能,更重要的是,它达到了现实世界WEB任务的实际可用水平。

方法

问题设置

我们认为网页浏览任务是一个序列决策过程。状态S包括当前页面状态(如HTML、URL和窗口位置)。操作集A包含所有可能的浏览操作,包括单击、键入、滚动等。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

状态的转换由网页的当前状态和Agent的输出动作决定。当Agent输出完成或达到最大交互数时,任务将结束。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

在决策过程中,函数ϕ根据之前的历史ht−1、最近的动作A t−1和当前状态S t更新历史信息。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

策略π是智能体根据当前状态和历史选择动作的过程。一个完整的决策过程从初始状态S 0和历史H 0开始,通过策略π和过渡函数t进行迭代,当动作A t完成或达到最大长度时停止迭代。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

AUTOWEBGLM

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

我们通过HTML简化和OCR模块处理信息,在获取HTML和网页截图后生成简化的HTML表示。利用便于可操作性判断的属性,标记agent交互的可操作元素。OCR模块用于在图像解析期间标记文本元素。

Agent通过将此表示与其他观察数据相结合来启动动作预测。在输出动作时,使用自动web程序执行动作,这个迭代循环一直持续到任务终止。AUTOWEBGLM通过将这些组件合并到一个单一的框架中来增强交互能力和网页导航精度。

一个全面、精确的观察和操作空间对于构建一个健壮的网页浏览框架至关重要。这些空间标准化了各种数据源到统一格式的转换。

观察空间

使用统一的观察空间来增强模型对网页的理解和操作能力。观察空间应尽可能提供与浏览器图形界面相似的信息,从而最大限度地提高Agent的能力上限。我们确定了网页浏览任务的四个关键指标:任务描述、简化的HTML、当前位置和过去的操作记录。

行动空间

构造动作空间时,重点关注操作的可能性。我们定义了一个完整且自一致的动作空间,表示为函数调用使语言模型在web浏览世界中发挥作用。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

数据准备

创建高质量、复杂的网络浏览数据集的挑战包括任务收集、隐私和安全、客观注释和模型限制。为了解决这些挑战,本文提出了一种混合人工智能数据构建方法,并将数据分为两种类型进行构建。该方法旨在获取多样化的真实用户任务查询,并解决隐私和安全限制、客观注释和模型限制等问题。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

网页识别及简单任务操作构造

网页识别。网页识别的主要目标包括理解特定的HTML格式,识别不同类型的Web元素(如文本框、按钮、图像等),以及理解这些元素在用户交互中的作用。

我们通过收集Similarweb上列出的中英文主流网站的url来启动这个过程。在数据处理阶段,使用HTML解析器识别每个网页中可操作的组件,并记录组件位置和大小等基本信息。然后,我们通过重新排列和简化组件树来生成一个简化的HTML。

设计了网站和组件功能描述等任务来辅助模型识别网页结构和交互组件的功能。对于每个任务,我们开发了一系列自然语言问题作为数据中的源字段。利用GPT-3.5-Turbo为每个问题生成多个公式,从而使问题的形成多样化。

对于目标,利用GPT-3.5-Turbo生成响应。我们在提示中提供一个包含相关问题的简化HTML,并对响应长度进行限制,从而获得目标。

简单任务操作。简单任务操作数据集的主要目标是训练模型执行单步网页操作。这涉及在网页页面上执行基本功能,例如单击链接、填写表单或导航到特定部分。为了构建我们的数据,我们以与网页识别相同的方式收集各种网站。然后,我们为每个操作类型构建一个切分,以确保我们的数据集涵盖简单任务操作的所有需求。我们根据实践中每个操作的频率来调整每次划分的数据大小。

构建数据集的关键是通过规则而不是模型生成。我们在网页中识别各种可操作的元素,将它们组合成网页操作。然后,使用GPT-3.5-Turbo为这些动作产生相应的任务和操作意图。对于Scroll、Jump_to等行为相对固定的操作类型,直接使用模板生成其对应的任务。对于灵活且功能丰富的操作,如单击和键入,我们使用GPT-3.5-Turbo来帮助完成构建。该方法既保证了指令的可执行性,又保证了操作任务的丰富性。

复杂任务操作构造

为了捕捉网页任务执行,使用了浏览器插件进行手动注释。使用GPT-4作为操作意图预测器,采用全局思维链提示方法,提高了每个步骤的准确性和连贯性。最后将数据与Mind2Web和MiniWob++的训练集合并,形成最终的训练数据集。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

构造AutoWebBench

AutoWebBench可以模拟人类用户在Web上的操作。AutoWebBench的目标是在不需要人类干预的情况下,自动执行Web浏览任务。性能评估分为两个部分:域内和域外。域内数据集是从同一网站收集的训练数据,域外数据集是从完全不在训练集中的网站收集的数据。操作步骤包括:页面加载、表单填写、按钮点击、页面跳转、数据提取和数据存储。AutoWebBench的操作步骤的准确性和整体准确性都得到了评估。

训练

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

步骤1:课程学习

第一步是监督微调(SFT)。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

这种方法增强了模型对网页的理解能力,增强了模型作为agent在环境中执行操作的能力。使用课程学习(CL),模仿人类的学习过程,提倡模型从简单样本开始学习,并逐渐向复杂样本推进。

使LM能够在Web上阅读和操作。在初始阶段,使模型具有:1)理解网页结构和各种web组件的功能,2)对当前网页执行预定义操作的能力,从而实现简单的用户指令。

让LM学会在网络上规划和推理。在此阶段,该模型能够将任务分解为子任务,并根据当前网页和之前的操作序列执行后续步骤。

经过上述训练,我们的模型具备了完成网页浏览任务的基本能力,能够独立执行基于用户指令的操作。

步骤2:强化学习

由于SFT训练的独特性质,模型试图模仿推理过程和操作,但有时会忽略网页的状态和之前的操作序列,从而导致幻觉。本文提出一种自采样强化学习来减轻这些操作错觉。

首先,我们使用模型对训练集中的复杂任务操作样本进行n倍采样(n=20)。我们将采样的输出和真实答案相结合,以构建正负对的对比数据。随后,我们保留合适的样本。

构造对比数据后,我们采用DPO方法,使模型从错误中吸取教训,进一步增强其能力。在训练过程中,我们发现直接使用DPO损失会导致不稳定。为缓解这个问题,本文建议加入SFT损失来稳定强化学习过程,并增加训练步骤的数量,同时确保不损失原始模型的自然语言和智能体能力,实现更鲁棒的模型:

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

步骤3:拒绝采样微调

通过从现有模型中进行大量采样,选择缺少准确轨迹的实例来进行有针对性的训练。我们的奖励信号可以通过环境本身或预先设计的奖励模型提供。由于真实网页环境中存在网络策略限制,我们在MiniWob++和WebArena提供的沙盒环境中进行实验。

在MiniWob++中,我们利用MiniWob++中的查询生成器为每个任务自动生成多个用户查询。我们根据任务的难度确定生成的查询数量,然后使用MDPO来尝试解决这些查询。如果一个轨迹完成了任务(由MiniWob++环境判断),我们将其视为正面轨迹。在WebArena的情况下,为了避免与测试集重叠,我们根据WebArena的模板手动构建多个不同的用户查询。对于每个样本,我们使用MDPO进行64次采样。同样地,如果我们的模型至少完成了一次任务(由手动编写的规则判断),我们将成功的轨迹视为正面轨迹。

通过以上方法,我们构建了两个不同的成功数据集,一个来自MiniWob++,另一个来自WebArena。这些数据集分别包含约15k个轨迹(66k个步骤)和240个轨迹(2k个步骤),用于在这两个任务上对AUTO WEB GLM进行个别微调。

实验

通过在多个基准测试上进行了广泛的实验,评估了AUTOWEBGLM在涉及浏览英文和中文网站的各种任务中与几个基准线的性能对比。

结果

AutoWebBench。如我们使用Step Success Rate (SSR)作为我们的评估指标。实验表明,AUTOWEBGLM经过多任务训练后,在预测一般用户操作模式方面表现出色,与用户操作保持良好一致。相比之下,其他模型在缺乏足够训练的情况下,很难根据网页内容和任务描述准确地学习不同真实世界网站的用户操作。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

Mind2Web。我们使用Mind2Web的设置和SSR作为我们的主要评估指标。为了公平地比较模型,我们利用Mind2Web提供的MindAct框架来评估模型的性能。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

MiniWoB++ & WebArena。MiniWoB++,遵循WebAgent的实验设置。对于WebArena,我们将我们的HTML解析模块和动作执行模块集成到WebArena环境中。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

消融分析

通过综合消融研究,我们评估了数据和训练策略的不同阶段对模型性能提升的影响。在训练数据消融中,我们发现复杂任务数据集显著提高了模型性能,而简单任务数据集在单独训练时只有轻微改进,但与复杂任务数据集联合训练时有显著改进。在训练策略消融中,DPO训练有助于模型从错误中学习,进一步提高了模型性能,而RFT使模型能够在不同领域进行自举增强。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

案例学习和错误分析

系统仍存在一些错误,包括幻觉、图形识别不佳、任务上下文误解和弹出窗口干扰。作者正在努力改进系统以提高其性能。

《清华发表AutoWebGLM,基于大模型的自动网页导航Agent,让大模型帮我们浏览网页》- 投稿作者:灵度智能 - 发布于:GetAI社区

总结

AUTOWEBGLM是一个基于语言模型的智能Agent,能够在各种自主网页导航基准测试中展现出强大的性能。该模型解决了现有LLM的局限性,并通过有效控制HTML文本长度和处理开放域的网页,简化了网页。我们采用课程学习、强化学习和拒绝抽样微调等策略来提高网页理解和浏览器操作学习。我们还引入了一个独特的双语网页浏览基准测试,为未来的研究奠定了坚实的基础。我们的发现在利用LLMs进行智能Agent方面取得了重要进展。

0

评论0

请先
显示验证码