当前位置: 首页 > news >正文

大模型GUI系列论文阅读 DAY2续:《一个具备规划、长上下文理解和程序合成能力的真实世界Web代理》

摘要
预训练的大语言模型(LLMs)近年来在自主网页自动化方面实现了更好的泛化能力和样本效率。然而,在真实世界的网站上,其性能仍然受到以下问题的影响:(1) 开放领域的复杂性,(2) 有限的上下文长度,(3) 在 HTML 结构上的归纳偏差不足。

我们提出 WebAgent,一个由 LLM 驱动的智能代理,能够通过自我学习的方式,在真实网站上按照自然语言指令完成任务。WebAgent 通过将指令提前规划,将其分解为子指令,并将长 HTML 文档提炼为与任务相关的摘要内容,最终通过生成的 Python 代码在网站上执行操作。

我们在 WebAgent 的设计中,结合了 Flan-U-PaLM 进行稳健的代码生成,同时使用 HTML-T5(一种针对长 HTML 文档预训练的新型 LLM)进行规划和摘要。HTML-T5 采用了局部与全局注意力机制,以及结合长跨度去噪目标的混合训练方法。

实验结果表明,我们的模块化方法在真实网站上的任务成功率提升了50%以上。此外,HTML-T5 在各种 HTML 理解任务中表现最佳,在 MiniWoB 网页自动化基准测试上,成功率比先前方法高出 18.7%,并在 Mind2Web(一个离线任务规划评估基准)上达到了**最先进(SoTA)**的性能。

1 引言

大语言模型(LLM)(Brown 等, 2020; Chowdhery 等, 2022; OpenAI, 2023)在多种自然语言任务中展现了卓越的能力,例如算术推理、常识推理、逻辑推理、问答、文本生成(Brown 等, 2020; Kojima 等, 2022; Wei 等, 2022),甚至交互式决策任务(Ahn 等, 2022; Yao 等, 2022b)。近年来,LLM 还成功应用于自主网页导航,通过多步推理和决策,使代理能够控制计算机或浏览器,根据自然语言指令执行操作(Furuta 等, 2023; Gur 等, 2022; Kim 等, 2023)。

然而,真实世界网站的网页自动化仍然面临以下挑战:

  1. 缺乏预定义的操作空间
  2. 真实网站的 HTML 文档远长于模拟环境的观测数据
  3. 缺乏专门用于理解 HTML 文档的领域知识(如图 1 所示)

考虑到真实网站的开放性和指令的复杂性,预先定义合适的操作空间 是一项具有挑战性的任务。此外,尽管已有研究表明,通过指令微调从人类反馈中进行强化学习可以提高 HTML 理解和网页自动化的准确性(Furuta 等, 2023; Kim 等, 2023),但现有架构通常难以处理真实网站的 HTML 文档。

如图 2 所示,真实网站的 HTML 令牌长度远超模拟器,且大多数 LLM 的上下文长度比真实网站的平均 HTML 令牌数要短。直接将如此长的 HTML 文档作为输入成本极高,而使用诸如文本-XPath 对齐(Li 等, 2021b)或文本-HTML 令牌分离(Wang 等, 2022a)等现有技术,也存在一定局限性。为了实现更广泛的任务泛化和模型规模扩展,现有 LLM 往往忽略了针对 HTML 文档的领域知识。


WebAgent 介绍

在本研究中,我们提出了 WebAgent,这是一个由 LLM 驱动的自主智能代理,能够通过自我学习经验,在真实网站上按照用户指令完成任务。

WebAgent 通过在程序空间中结合标准网页操作,完成任务(如图 3 所示),其关键功能包括:

  1. 任务规划:将自然语言指令分解为子指令。
  2. HTML 摘要:根据规划结果,将长 HTML 文档提取为与任务相关的片段。
  3. 网页操作:将子指令和 HTML 摘要转化为可执行的 Python 代码,在真实网站上执行操作。

WebAgent 采用两种 LLM 进行模块化集成:

  • HTML-T5:一个新推出的领域专家语言模型,专为任务规划HTML 摘要而设计。
  • Flan-U-PaLM(Chowdhery 等, 2022; Chung 等, 2022):用于稳健的代码生成。

HTML-T5 采用编码-解码架构,并通过局部和全局注意力机制(Guo 等, 2022)来更好地捕获长 HTML 文档的结构。与模拟环境(平均约 0.5K 令牌)相比,真实网站的 HTML 令牌数量显著更高(7K 至 14K),占用了 LLM 大部分的上下文长度。因此,我们在预处理阶段移除了无关的 HTML 标签(例如 <script><meta>),仅保留必要的属性(例如 idtypevalue)。

HTML-T5 采用长跨度去噪目标(Tay 等, 2022)在来自 CommonCrawl 的大规模 HTML 语料库上进行预训练,以更好地捕捉 HTML 的语法和语义信息。

为了将语言模型代理更好地适配真实网站,我们引入了自我经验监督,即使用脚本化的规划/摘要以及自主生成的程序数据对领域专家语言模型进行微调。


与现有 LLM 代理的比较

现有 LLM 驱动的代理通常采用单一 LLM,并根据不同角色提供不同的提示(Kim 等, 2023; Sun 等, 2023; Zheng 等, 2023)。然而,这种方法不足以处理比模拟环境更复杂的真实世界任务

我们的方法通过自引导的专用语言模型改进了 HTML 理解和操作的泛化能力,并显著优于单一 LLM 代理。在真实网页自动化任务中,WebAgent 将成功率提高了 50%。错误分析表明,将任务规划HTML 摘要相结合的专用语言模型对于任务成功至关重要。

此外,HTML-T5 不仅是 WebAgent 的核心模块,还在独立的网页任务中表现优异。在 MiniWoB++(Liu 等, 2018; Shi 等, 2017)基准测试上,HTML-T5 的成功率比先前的 LLM 代理高 18.7%,并超越了竞争基线,如本地-全局注意力模型(Guo 等, 2022)及其指令微调版本(Chung 等, 2022)。

在 Mind2Web(Deng 等, 2023)这一离线任务规划数据集上,HTML-T5 在 Synapse(Zheng 等, 2023)与 GPT-3.5,以及 MindAct(采用 FLan-T5-XL 和 GPT-4)等方法中取得了**最先进(SoTA)**的性能。


我们的关键贡献

  • 提出 WebAgent:将两个模块化的 LLM 进行自监督整合,以实现真实世界的网页自动化。专用语言模型负责任务规划和 HTML 摘要,而通用语言模型负责生成可执行的 Python 程序。
  • 引入 HTML-T5:一种基于局部-全局注意力机制的新型语言模型,在来自 CommonCrawl 的大规模 HTML 语料库上进行预训练,能够更好地捕获 HTML 的语法和语义信息。

 

2 相关工作

网页自动化

网页自动化是一种序列决策任务,其中代理根据给定指令操作浏览器(Shi 等, 2017),例如通过一系列计算机操作执行表单填写(Diaz 等, 2013)或信息检索(Adolphs 等, 2022)(Li 等, 2020; Mazumder & Riva, 2020; Shvo 等, 2021)。

以往的研究主要通过以下方法实现网页自动化:

  • 强化学习(RL):通过强化学习训练代理完成网页任务(Gur 等, 2019; Humphreys 等, 2022; Jia 等, 2019; Shaw 等, 2023)。
  • 微调 LLM:对大语言模型进行微调,以适应特定的网页自动化任务(Furuta 等, 2023; Gur 等, 2022)。
  • 提示工程(Prompting):使用提示策略指导 LLM 执行网页任务(Kim 等, 2023; Sun 等, 2023; Yao 等, 2022b; Zheng 等, 2023)。

上述研究大多在模拟网站(Shi 等, 2017; Toyama 等, 2021; Yao 等, 2022a)上进行。然而,简化的模拟环境与真实网页环境之间仍存在巨大差距,例如:

  • 真实网站的 HTML 页面平均令牌数大约是模拟环境的 15 倍(如图 2 所示)。
  • 针对特定网站的预定义操作空间假设较强,可能会影响模型对分布外网页或指令的泛化能力

与本研究最相关的工作可能是 MindAct(Deng 等, 2023),其方法通过对微调的语言模型进行 HTML 摘要提取,并使用另一模型以多选问答格式预测网页操作。尽管 MindAct 结合了多个语言模型,但其仅使用 DeBERTa(He 等, 2021)和 Flan-T5(Chung 等, 2022)作为摘要和执行模块,并仅在离线数据集上进行了评估。

相比之下,我们提出的 WebAgent 采用专门设计的 HTML-T5 来处理网页任务,专门用于长 HTML 文档的摘要和规划。同时,WebAgent 结合了微调后的 HTML-T5 进行摘要和规划,以及 Flan-U-PaLM 作为功能强大的代码生成器,使其能够生成开放式网页操作,并在真实在线网站上执行。


程序合成(Program Synthesis)

除了常见的 LLM(Brown 等, 2020; Chowdhery 等, 2022; Touvron 等, 2023),许多研究提出了专注于编程的语言模型(Chen 等, 2021a; Feng 等, 2020; Li 等, 2022; Wang 等, 2021)及其相关基准(Austin 等, 2021; Hendrycks 等, 2021a; Lu 等, 2021)。

另一条研究路径探索了工具增强 LLM(Parisi 等, 2022),通过解码 API 调用(Schick 等, 2023)或 Python 代码片段,交由解释器执行(Gao 等, 2023)。

大多数研究针对静态数据集进行程序合成,而在机器人学(Liang 等, 2023)和游戏(Trivedi 等, 2022; Wang 等, 2023a)领域,也有部分研究尝试让 LLM 生成 Python 或 JavaScript 代码以指挥代理操作。

类似地,我们利用 LLM 的代码生成能力作为网页代理的开放式操作空间,使其能够在真实网站上执行操作。实验表明,LLM 能够根据提供的子指令和 HTML 内容,顺序解码 Python Selenium 代码,从而完成网页自动化任务。

有关文档理解和基于 LLM 任务规划的更多相关工作,请参见附录 B

3 WebAgent

WebAgent 是一种新的架构,结合了两个大语言模型(LLM)以实现高效的真实世界网页自动化。HTML-T5 作为领域专家 LLM,负责预测下一个子指令(任务规划)并生成相关的 HTML 片段(内容摘要)。Flan-U-PaLM(540B)(Chowdhery 等,2022;Chung 等,2022)在 HTML-T5 提供的规划和摘要基础上,被提示生成可执行的 Python 程序(见图 3)。这种模块化的两阶段方法使 WebAgent 能够有效地导航并处理 HTML 文档。


工作流程

用户以自然语言的方式提出请求,例如“搜索公寓”。收到初始请求后,HTML-T5 生成一个 “前往 <URL>” 的子指令,触发 Flan-U-PaLM 生成相应的 Python 程序,导航到指定网站。

新打开页面的原始 HTML 内容将被提取,并与用户指令及之前的规划步骤一起输入到 HTML-T5 中,以预测下一个子指令并识别相关的 HTML 片段进行摘要。接着,Flan-U-PaLM 根据这些子指令和 HTML 片段生成 Python 程序。

该规划、摘要和程序合成的迭代过程将持续进行,直到预测到指定的“结束”指令或达到最大迭代次数。


3.1 HTML-T5

先前研究表明,通用 LLM(如 T5、Flan-T5 和 InstructGPT)在网页环境中表现良好(Furuta 等, 2023; Gur 等, 2022; Kim 等, 2023)。然而,与专门的 Transformer 模型(Li 等, 2021b; Wang 等, 2022a; Zhao 等, 2022)不同,通用 LLM 未能充分利用 HTML 特定的信息,导致对 HTML 内容的理解能力受限。

为了解决这一局限性,我们提出了 HTML-T5,这是一种专为基于 HTML 的网页自动化任务设计的预训练编码-解码语言模型。HTML-T5 巧妙地融合了通用模型和专业模型的特性,以文本到文本的方式处理 HTML,并在编码器中采用局部和全局注意力机制(Ainslie 等, 2020),以捕获长 HTML 文档的层次结构。

HTML-T5 在来自 CommonCrawl 的大规模 HTML 语料库上,使用长跨度去噪目标(long-span denoising objective) 进行预训练,并针对每个下游任务进行微调。在 WebAgent 框架中,我们采用自我经验监督(self-experience supervision) 方法,以使模型与真实网站对齐。


模型架构

与自然语言不同,HTML 文档具有明确的层次结构。其结构包括元素(如 <input><label><button>)及其相关属性(如 classlabelid)。这些元素在局部定义,并在整个 HTML 文档中层次化地组合。

为建模这一层次结构,我们用局部和全局注意力机制(Ainslie 等, 2020)替代了常见的密集注意力(Vaswani 等, 2017)。

  • 局部注意力(Local Attention) 使每个令牌仅关注相邻令牌,
  • 瞬时全局注意力(Transient Global Attention) 允许每个令牌关注超出其局部窗口的内容,通过在每个窗口内的聚合和归一化,形成全局记忆表示。

如图 4 所示,HTML-T5 处理 HTML 叶子元素(绿色)时使用局部注意力,而处理内部元素(紫色)时则使用全局注意力,这种方法自然地适应了 HTML 的层次结构。


长跨度去噪预训练

HTML-T5 的预训练使用跨度去噪目标(span denoising objective),即在 HTML 文档中随机屏蔽一定长度的令牌序列,并使用其余令牌预测屏蔽内容。

与自然语言文本不同,短跨度屏蔽(例如长度 µ = 3)往往会遮盖无意义的内容(如 </, id= 等),信噪比较低。而更长的跨度 可以捕获更有意义的片段(如 <form class="type="submit">)。实验表明,将跨度长度设置为 µ ∈ {8,64} 可优化 HTML 文档的建模(详见第 4.2 节)。

预训练使用的输入序列长度为 4096,输出序列长度为 910,共屏蔽 15% 的输入令牌。在预训练数据集方面,我们从 CommonCrawl 语料库(2019 年 4 月)中收集了 100 个 WARC 文件,并移除了非 Unicode 或仅包含字母数字的 HTML 文档。


3.2 面向真实网站的自我经验监督

为 LLM 提供示例来学习如何理解网站,仍是网页自动化领域的重大挑战。尽管人类可以轻松地遵循网页指令,但手动标注规划、摘要和程序合成的每个步骤是不现实的。

为解决这一问题,我们提出了一种自我经验监督(self-experience supervision)半监督学习方法,该方法仅需最小的人为干预:

  1. 手动编写脚本 生成规划和摘要步骤。
  2. 使用 Flan-U-PaLM 生成相应的 Python 代码。
  3. 通过微调,使 HTML-T5 等领域特定语言模型与这些自我收集的真实世界经验保持一致(Wang 等, 2022b)。

这样,代理能够泛化并适应复杂的真实世界任务。


指令模板

我们维护了一组包含占位符的指令模板,例如:

“请在 <mapwebsite> 网站上,按 <n-th> <transportation> 的方式,从 <start> 到 <goal>。”

指令的值通过从预定义的键值对中随机抽取来填充。


脚本化规划与提示式编程

我们使用基于规则的解析器,将指令分解为子指令序列,并通过正则表达式从 HTML 中提取参考 ID。在每个步骤,Flan-U-PaLM 接收子指令及相关 HTML 片段,并生成可由 Selenium WebDriver 执行的导航程序。

尽管记录的演示成功率各异,但自动化真实世界任务的成功标准仍然具有挑战性。为改进学习体验,我们利用环境反馈来消除关键失败,例如程序执行错误、检索错误和明显的 URL 前缀错误(Ni 等, 2023)。


规划和摘要的微调

WebAgent 的核心组件 HTML-T5 通过以下数据进行微调:

  • 任务指令(如“在纽约,搜索 2 室 2+ 卫的房屋,最高预算 $7500”),
  • 子指令历史记录(如“打开房地产网站,输入‘纽约’,点击搜索”),
  • 原始 HTML 文档。

随后,HTML-T5 生成新的子指令(如“输入 7500 到最高租金”)并提取相关 HTML 片段。

第 4.1 节展示了将 HTML 摘要整合到子指令预测中的重要性,以增强真实世界网页自动化的性能。

 

3.3 基于上下文的程序合成

在真实世界的网站上进行网页自动化面临诸多挑战,主要是由于其开放式操作空间,这与简化的模拟器环境有所不同(Shi 等, 2017; Yao 等, 2022a)。与以往的方法(Gur 等, 2019; Humphreys 等, 2022; Jia 等, 2019; Liu 等, 2018)相比,真实世界的网页代理无法预定义一个固定的操作空间来指定网页上的交互元素。

为了解决这一开放领域的挑战,我们在网页自动化中引入了基于编程的操作范式(act via programming paradigm),利用 LLM 的条件代码生成能力(Chen 等, 2021a; Liang 等, 2023)。

给定少量示例(例如复选框选择、文本输入、点击选项、滚动等),以及 HTML-T5 生成的下一个子指令和提取的 HTML 片段,Flan-U-PaLM(Chowdhery 等, 2022; Chung 等, 2022)能够解码生成可在 Selenium WebDriver(一个浏览器自动化库)上执行的 Python 程序(见图 3)。

这种条件化的程序合成不仅要求 LLM 生成遵循自然语言指令的代码,还必须理解 HTML 元素的语义和功能

以下是 Flan-U-PaLM 生成的 Python 代码示例(子指令作为脚本中的注释):

 

python

复制编辑

# 在搜索框中输入 walnut creek, ca driver.find_element(By.CSS_SELECTOR, '[data-ref="175"]').clear() driver.find_element(By.CSS_SELECTOR, '[data-ref="175"]').send_keys("walnut creek, ca") # 提交搜索 driver.find_element(By.CSS_SELECTOR, '[data-ref="175"]').submit() # 点击公寓选项 driver.find_element(By.CSS_SELECTOR, '[data-ref="572"]').click() # 向下滚动房屋类型 200px driver.execute_script('getScrollParent(document.querySelector("#type-of-housing")).scrollBy({top: 200})')


4 实验结果

为了研究在自监督框架下,模块化 LLM 组合如何克服网页自动化中的开放性长上下文问题,我们在真实网站上执行了指令跟随任务(详见 4.1 节)。此外,在附录 E 中,我们还在 WebSRC(Chen 等, 2021b)基准测试中测试了 WebAgent,该数据集专注于 HTML 结构化文档理解,并与专门的 Transformer 模型(Li 等, 2021b; Zhao 等, 2022)进行了对比。

我们还量化了 HTML-T5 本身在模拟网页基准 MiniWoB++ 以及离线任务规划基准 Mind2Web 上的性能(详见 4.2 节)。


4.1 真实世界网页自动化

评估方法

我们首先在人类监督下评估 WebAgent 在真实网站上的导航性能,测试了以下三类网站:

  1. 房地产网站(房屋平台)——需要长规划(每个任务约 20 个步骤),涉及复杂的表单填写和多个页面跳转(至少 2 页)。
  2. 社交媒体网站(社交网络)——需要较短规划(每个任务约 10 个步骤),但涉及多个页面跳转(至少 4 页),依赖于超链接选择。
  3. 地图网站(地图导航)——任务最简单,规划较短,页面跳转较少。

WebAgent 接收自然语言指令,例如:

  • “请在房地产网站上搜索 Oroville, CA 地区的 1 室 1+ 卫的公寓,适合企业住房。”
  • “请展示 Python 社区中按‘教程’标签筛选的最新帖子。”

WebAgent 通过 HTML-T5 进行规划和摘要,并使用 Flan-U-PaLM 进行编程(如图 5 所示)。

通过自我经验监督,我们在房地产、社交媒体和地图网站上分别收集了 260、230 和 410 个任务实例,用于对 HTML-T5 进行微调。

我们准备了 20 个不同的自然语言指令(完整列表见附录 F),并使用成功率得分作为评估指标:

  • 成功率:指代理是否完全满足指令的所有要求。
  • 得分:表示任务中满足的属性占比。例如,在房地产搜索任务中,要求满足以下属性:
    1. 位置(Oroville, CA),
    2. 适合企业住房,
    3. 一室,
    4. 1+ 卫生间。

如果代理仅满足其中 3 项,得分计算为:60 = 100×3/5100 \times 3/5100×3/5。如果得分达到 100,则视为成功。


实验结果

为进行对比,我们使用了三个基线方法:

  1. 单一 LLM(Flan-U-PaLM) 仅基于提示进行开放式规划(Plan: ),
  2. Flan-U-PaLM+P:使用额外的 LLM 进行任务规划,
  3. Flan-U-PaLM+S:使用额外的 LLM 进行 HTML 摘要。

如果不使用语言模型模块,Flan-U-PaLM 将进行开放式规划,并使用正则表达式从原始 HTML 中提取信息。

表 1 显示:

  • WebAgent 在房地产网站上成功率达到 65%,得分为 87.6%
  • 社交媒体网站上成功率为 70%,得分 85.8%
  • 地图网站上成功率为 80%,得分 93.8%

WebAgent 显著优于仅使用 Flan-U-PaLM 或部分使用 LLM 模块的方法(大多数基线成功率仅为 10%-30%)。

实验结果表明:

  • 自我经验监督显著提高了性能
  • 基于微调 HTML-T5 的闭环规划比基于少样本 LLM 的开放式规划更适合处理开放域网页自动化。

这一趋势在房地产网站上尤为明显,即使使用 Flan-U-PaLM+P 进行长规划,其成功率也仅为 50%。

此外,子指令预测与 HTML 摘要的结合在任务成功中起到了至关重要的作用。


错误分析

我们将失败案例归类为以下三种错误类型(见表 1):

  1. 编程错误:未能正确执行给定的子指令或 HTML 片段。
  2. 规划错误:预测的子指令与用户指令冲突。
  3. 摘要错误:HTML 片段的提取与目标任务不匹配。

改进更强大的规划模块,以自适应和准确地分解指令,将有助于进一步提升 WebAgent 的性能。

4.1 失败原因分析

我们将失败原因归纳为以下三类:

  1. 编程错误(Programming Errors):未能满足给定的子指令或正确处理 HTML 片段。
  2. 规划错误(Planning Errors):预测的子指令与用户指令存在冲突。
  3. 摘要错误(Summarization Errors):未能提取与给定子指令相关的 HTML 片段。

从网站角度来看,房地产网站的失败主要集中在规划阶段,因为任务具有较长的决策路径。而地图网站在混淆起点和目的地时也容易在规划上出错。相较之下,社交媒体网站的失败主要发生在编程阶段,原因在于子指令的歧义或摘要中包含冗余的超链接,导致页面跳转错误或点击无法执行的元素。

从方法角度来看,WebAgent 主要在规划阶段失败(在房地产网站上的失败任务中,70% 的情况是由于错误的规划)。其他基线方法更容易在编程摘要步骤中失败。

这一观察表明,通过自我经验监督,编程和摘要的错误比例已减少,但规划阶段的根本困难仍然存在,因为它需要在长任务序列中保持一致性和准确性,而不会积累错误。


4.2 HTML-T5 的消融实验

实验结果概览:

表 3 显示了在 MiniWoB++(包含 56 项任务)上的平均成功率,我们使用了 12K 个示例来比较 HTML-T5 在各类微调方法中的表现。

  • **HTML-T5-XL(我们的方法)**在成功率方面显著优于先前最佳模型 WebN-T5-XL(Gur 等, 2022),提高了 18.7%
  • HTML-T5-XL 在 347K 个训练示例上微调后,优于 11B 参数的 Flan-T5-XXL,仅使用 3B 参数即可达到 85.6% 的成功率,接近 SOTA(GPT-3.5)。

HTML-T5 在其他基准测试中的表现:

  1. Mind2Web(Deng 等, 2023):一个包含 2K+ 指令的真实世界数据集,涵盖 137 个网站(例如旅游、购物等)。

    • HTML-T5-XL 在元素精度、操作 F1 分数和任务成功率方面,分别比 Flan-T5-XL 或 GPT-4 提高了 5-8%、6-8% 和 4-8%。
    • 结果表明 HTML-T5 在跨任务、跨网站和跨领域泛化方面具有出色的能力。
  2. MiniWoB++(Liu 等, 2018; Shi 等, 2017):用于评估网页自动化能力的标准基准测试。

    • HTML-T5-XL 在 56 项模拟任务上表现优异,成功率超越了 LongT5 和之前的微调方法,验证了 HTML 去噪(denoising)目标比传统的指令微调方法(instruction tuning)更有效。

架构和目标分析:

  • 研究表明,局部与全局注意力机制比传统的密集注意力(dense attention)更适合捕获 HTML 文档的层次结构。
  • 在 MiniWoB++ 56 项任务的实验中,结合局部和全局注意力的模型比仅使用局部注意力的模型提高了 18% 的成功率,而局部注意力仍然比密集注意力高 9%,说明 HTML 中的局部元素和属性关系对网页任务至关重要。
  • 采用**长跨度去噪(µ ∈ {8,64})**目标优于其他配置,如常见的 µ ∈ {3,8,64} + Prefix LM,能够更好地减少无意义的预测,并将 HTML 结构信息注入语言模型。

5 讨论与局限性

模块化方法与专家语言模型

  • 我们证明了将网页自动化拆分为规划、HTML 摘要、代码生成的模块化方法是有效的,并结合领域专家模型与自我经验数据对齐。
  • 这种模块化方法已在 LLM 推理(Xu 等, 2023)、多模态任务(Zeng 等, 2022)和机器人学(Ahn 等, 2022)中得到采用,然而,它可能带来额外的计算成本和延迟。

跨互联网的广泛泛化能力

  • 由于基于 Flan-U-PaLM 的开放式规划最多仅能达到 10-30% 的成功率,我们证明了在真实网站上的自我经验监督对于规划模块至关重要。
  • 在 Mind2Web 数据集上的实验表明,如果有足够的数据,我们的方法可以推广到整个互联网。未来研究可以通过大规模收集示例并使用更大的专家语言模型来进一步提高泛化能力。

程序合成的反馈

  • 我们使用具有 540B 参数的 Flan-U-PaLM 作为程序合成模块,尽管该模型功能强大,但与较小模型相比,难以快速反映错误反馈。
  • 未来研究可以探索如何将反馈整合到更大的语言模型中,以提高程序合成的精确性。

真实世界网页自动化的评估

  • 我们证明了 WebAgent 可以在房地产、社交媒体和地图网站上,遵循复杂且有时存在歧义的指令。
  • 然而,在现实世界中评估自主代理的性能是昂贵的,因此开发最小人工干预的自动评估方法将有助于大规模开发网页代理。

6 结论

我们构建了一个面向真实世界网页自动化的系统,结合了:

  • HTML-T5 进行规划和 HTML 摘要,
  • Flan-U-PaLM 进行基于上下文的程序合成。

我们的 WebAgent 通过自我经验监督,在真实网站上的成功率达到 70-80%,相比单一 LLM 方法提高了 50% 以上,这表明使用多个语言模型分解子问题序列可显著提高任务的成功率。

我们还提出了一种可扩展的 HTML 专用语言模型架构,结合局部与全局注意力机制,并使用长跨度去噪目标来捕获 HTML 文档的层次结构。

HTML-T5 不仅是 WebAgent 的核心,还在多个 HTML 基准测试(如 Mind2Web 和 MiniWoB++)中取得了最佳表现。

我们希望我们的研究能够推动自主网页代理系统的实际部署。

相关文章:

大模型GUI系列论文阅读 DAY2续:《一个具备规划、长上下文理解和程序合成能力的真实世界Web代理》

摘要 预训练的大语言模型&#xff08;LLMs&#xff09;近年来在自主网页自动化方面实现了更好的泛化能力和样本效率。然而&#xff0c;在真实世界的网站上&#xff0c;其性能仍然受到以下问题的影响&#xff1a;(1) 开放领域的复杂性&#xff0c;(2) 有限的上下文长度&#xff…...

如何提升IP地址查询数据服务的安全?

随着网络科技深入人们的生活之中&#xff0c;数据相关服务顺时代浪潮应运而生。而在数据查询相关服务之中&#xff0c;数据安全乃是重中之重。而如何部署数据查询服务安全&#xff0c;今天让我们来大致了解一下&#xff1a; 数据加密 数据加密是数据查询服务安全的核心技术之…...

【Leetcode】--- 接雨水

题目传送门 方法一&#xff1a; 前缀和后缀和 算法原理 需要两个数组。 第一个数组存储最左边到第 i 个位置的最大高度&#xff08;前缀最大值&#xff09; 第二个数组存储最右边到第 i 个位置的最大高度&#xff08;后缀最大值&#xff09; 最终第 i 个位置的 接水量 min&am…...

深入探索Math.NET:开启高效数值计算之旅

一、引言 在当今数字化时代&#xff0c;数值计算已然成为科学研究、工程设计、金融分析等众多领域的核心驱动力。从探索宇宙奥秘的物理学计算&#xff0c;到优化建筑结构的土木工程设计&#xff0c;再到预测市场趋势的金融建模&#xff0c;数值计算的身影无处不在&#xff0c;…...

案例研究丨浪潮云洲通过DataEase推进多维度数据可视化建设

浪潮云洲工业互联网有限公司&#xff08;以下简称为“浪潮云洲”&#xff09;成立于2018年&#xff0c;定位于工业数字基础设施建设商、具有国际影响力的工业互联网平台运营商、生产性互联网头部服务商。截至目前&#xff0c;浪潮云洲工业互联网平台连续五年入选跨行业跨领域工…...

Logback日志文件详细配置

完整版Logback.xml文件 放在Resources目录下即可 Mac用户更改一下日志文件存放地点即可 <FileNamePattern>/Users/***/***/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern> <?xml version"1.0" encoding"UTF-8"?> <configurati…...

TDengine 与上海电气工业互联网平台完成兼容性认证

在工业数字化转型和智能化升级的浪潮中&#xff0c;企业对高效、可靠的数据管理解决方案的需求日益增长。特别是在风电智能运维、火电远程运维、机床售后服务等复杂多样的工业场景下&#xff0c;如何实现海量设备和时序数据的高效管理&#xff0c;已经成为推动行业升级的关键。…...

VMware虚拟机安装macOS11

1.安装虚拟机 如果尚未安装虚拟机&#xff0c;请先进行安装。地址&#xff1a;VMware17下载地址​​​​​​ 2、下载苹果镜像文件 macOS Big Sur 11.0.1 (20B29) 3、下载unlock文件&#xff08;目的是开启VMware的macOS选项功能&#xff09; https://download.csdn.net/d…...

PostgreSQL中级专家是什么意思?

数据库技术领域&#xff0c;PostgreSQL 作为一种广泛使用的开源关系型数据库管理系统&#xff0c;吸引了众多技术人员深入学习和研究。“PostgreSQL 中级专家” 是对掌握该数据库特定技能层次的一种描述。 知识储备 中级专家深入理解 PostgreSQL 的体系结构&#xff0c;包括进程…...

ubuntu20使用apt安装mysql8

目录 ubuntu20使用apt安装mysql8报错列表参考链接首先删除旧mysql 一、下载配置mysql8库索引下载apt包解压包配置更新apt库索引 二、下载安装mysql8三、启动mysql服务配置开机自启动&#xff0c;忽略 本地登录远程登录查看mysql的所有用户使用客户端远程登陆如果报错完成 参考链…...

FastDFS的安装及使用

分布式存储发展历程 前段时间 618 活动火热进行&#xff0c;正是购物的好时机。当我们访问这些电 商网站的时候&#xff0c;每一个商品都会有各式各样的图片展示介绍&#xff0c;这些图 片一张两张可以随便丢在服务器的某个文件夹中&#xff0c;可是电商网站如此 大体量的…...

二叉树(了解)c++

二叉树是一种特殊的树型结构&#xff0c;它的特点是: 每个结点至多只有2棵子树(即二叉树中不存在度大于2的结点) 并且二叉树的子树有左右之分&#xff0c;其次序不能任意颠倒&#xff0c;因此是一颗有序树 以A结点为例&#xff0c;左边的B是它的左孩子&#xff0c;右边的C是…...

头像生成小程序搭建(免费分享)

如下图为小程序页面的基本效果&#xff0c;下面将介绍该小程序的功能 页面template代码如下&#xff1a; <template><view class"avatar-containner"><block v-if"!showCropper"><image class"pageback" src"../../s…...

Alluxio 联手 Solidigm 推出针对 AI 工作负载的高级缓存解决方案

作者&#xff1a;Wayne Gao, Yi Wang, Jie Chen, Sarika Mehta Alluxio 作为全球领先的 AI 缓存解决方案供应商&#xff0c; 提供针对 GPU 驱动 AI 负载的高速缓存。其可扩展架构支持数万个节点&#xff0c;能显著降低存储带宽的消耗。Alluxio 在解决 AI 存储挑战方面的前沿技…...

【ComfyUI专栏】ComfyUI 部署Kolors

什么是Kolors?我相信一定会有朋友可能第一次听说这个生图的模型,开始我也很难想象,这竟然是快手推出的可灵AI的项目,我们可以直接利用模型来生成图片和视频。 大家可以通过直接访问可灵AI的网址获取到可灵的项目,但是对于我们来说我们需要基于ComfyUI来生成必要的图片和视…...

HBase的原理

一、什么是HBase HBase是一个分布式&#xff0c;版本化&#xff0c;面向列的数据库&#xff0c;依赖Hadoop和Zookeeper &#xff08;1&#xff09;HBase的优点 提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统 (2) HBase 表的特性 Region包含多行 列族包含多…...

Spring Boot中如何实现异步处理

在 Spring Boot 中实现异步处理可以通过使用 Async 注解和 EnableAsync 注解来实现。以下是如何配置和使用异步处理的步骤和示例代码。 步骤&#xff1a; 启用异步支持&#xff1a; 在 Spring Boot 配置类上使用 EnableAsync 注解启用异步处理。使用 Async 注解异步方法&…...

SSM电子商城系统

&#x1f345;点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345; 项目视频 电…...

新版IDEA创建数据库表

这是老版本的IDEA创建数据库表&#xff0c;下面可以自己勾选Not null&#xff08;非空),Auto inc&#xff08;自增长),Unique(唯一标识)和Primary key&#xff08;主键) 这是新版的IDEA创建数据库表&#xff0c;Not null和Auto inc可以看得到&#xff0c;但Unique和Primary key…...

二叉树的存储(下)c++

链式存储 我们可以创建两个数组L[N]、r[N]&#xff0c;分别存储i 号结点的左右孩子的编号&#xff0c;这样就可以通过数组下标实现链式访问。 本质上还是孩子表示法&#xff0c;存储的是左右孩子的信息 #include <iostream>using namespace std;const int N 1e6 10; …...

Flutter中PlatformView在鸿蒙中的使用

Flutter中PlatformView在鸿蒙中的使用 概述在Flutter中的处理鸿蒙端创建内嵌的鸿蒙视图创建PlatformView创建PlatformViewFactory创建plugin&#xff0c;注册platformview注册插件 概述 集成平台视图&#xff08;后称为平台视图&#xff09;允许将原生视图嵌入到 Flutter 应用…...

Docker—搭建Harbor和阿里云私有仓库

Harbor概述 Harbor是一个开源的企业级Docker Registry管理项目&#xff0c;由VMware公司开发。‌它的主要用途是帮助用户迅速搭建一个企业级的Docker Registry服务&#xff0c;提供比Docker官方公共镜像仓库更为丰富和安全的功能&#xff0c;特别适合企业环境使用。‌12 Harb…...

一篇博文了解JVM的各个内存区域

​ JVM的内存区域可以细分为程序计数器、虚拟机栈、本地方法栈、堆和方法区 其中&#xff0c;方法区和堆是线程共享的&#xff0c;虚拟机栈、本地方法栈和程序计数器是私有的&#xff1b; 先来说说程序计数器&#xff0c;它也被称为PC寄存器&#xff0c;占据着很小的内存空间…...

无监督学习:聚类、异常检测

聚类 工作原因我对聚类特别熟悉&#xff0c;因此视频课程基本快进看完&#xff0c;不做记录 异常检测 高斯(正态)分布 多特征异常检测 将每个特征作为独立特征&#xff08;实践证明即使不完全独立也影响不大&#xff09;计算高斯分布的参数&#xff0c;然后将待预估样本代入…...

pdf与ofd的区别详细对比

PDF&#xff08;Portable Document Format&#xff09;和OFD&#xff08;Open Fixed-layout Document&#xff09;是两种常见的电子文档格式&#xff0c;它们在设计理念、技术实现、应用场景等方面存在显著差异。以下是对这两种格式的详细对比分析&#xff0c;涵盖其历史背景、…...

DDD架构实战第六讲总结:领域驱动设计中的聚合

云架构师系列课程之DDD架构实战第六讲总结:领域驱动设计中的聚合 聚合提升了对象系统的粒度,保证了业务逻辑的完整性,减少了错误产生的概率 一、引言 本讲将探讨领域驱动设计(DDD)中的重要概念——聚合。聚合是业务完整性的单元,是一个更大力度的封装。在领域驱动设计中…...

CentOS7使用源码安装PHP8教程整理

CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…...

vue3中自定一个组件并且能够用v-model对自定义组件进行数据的双向绑定

1. 基础用法 在 Vue3 中&#xff0c;v-model 在组件上的使用有了更灵活的方式。默认情况下&#xff0c;v-model 使用 modelValue 作为 prop&#xff0c;update:modelValue 作为事件。 1.1 基本示例 <!-- CustomInput.vue --> <template><input:value"mo…...

【win11】解决msrdc.exe窗口启动导致周期性失去焦点

msrdc.exe randomly stealing focus 最近写代码时&#xff0c;经常出现周期性失去焦点的情况非常恼人,不确定是否是Q4的微软更新引起&#xff1f;换了输入法也不行&#xff0c;只能借助工具来查看&#xff1a;大神的工具非常好&#xff1a; 可以发现是remote app 启动了一个UI…...

【2024年终总结】深圳工作生活评测

距离上次写年终总结已经过了一年半了&#xff0c;这一年半中哪怕经历了很多的事情&#xff0c;但是感觉又没发生什么。想写一些骚话&#xff0c;却总觉得自己无法完全表达&#xff0c;便也就这样&#xff0c;静静地记录下这一段时光。 现在是2025年&#xff0c;春节前的时光&am…...

【29】Word:李楠-学术期刊❗

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片&#xff0c;对应位置填入对应文字 (手动调整即可&#xff09;复制样式&#xff1a;开始→样式对话框→管理…...

npm常用命令

以往nodejs版本 Node.js — Node.js 版本 CNPM Binaries Mirror 查看当前版本 npm -v 查看node安装在哪里 where node 清除缓存 npm cache clean --force 淘宝镜像&#xff08;只支持下载&#xff0c;不支持上传发布&#xff09; npm config set registry https://reg…...

安装最小化的CentOS7后,执行yum命令报错Could not resolve host mirrorlist.centos.org; 未知的错误

文章目录 安装最小化的CentOS7后&#xff0c;执行yum命令报错"Could not resolve host: mirrorlist.centos.org; 未知的错误"错误解决方案&#xff1a; 安装最小化的CentOS7后&#xff0c;执行yum命令报错"Could not resolve host: mirrorlist.centos.org; 未知…...

现代 JavaScript 的入门教程

现代 JavaScript 的定义 现代 JavaScript 通常指的是自 ECMAScript 2015&#xff08;也称为 ES6&#xff09;以来的一系列语言更新和改进&#xff0c;以及随之而来的开发工具、库和框架的生态系统。这些变化不仅增强了 JavaScript 的功能性和表达能力&#xff0c;还推动了更高…...

linux naive代理设置

naive linux客户端 Release v132.0.6834.79-2 klzgrad/naiveproxy GitHub Client setup Run ./naive with the following config.json to get a SOCKS5 proxy at local port 1080. {"listen": "socks://127.0.0.1:1080","proxy": "htt…...

Java数据结构 (链表反转(LinkedList----Leetcode206))

1. 链表的当前结构 每个方框代表一个节点&#xff0c;每个节点包含两个部分&#xff1a; 左侧的数字&#xff1a;节点存储的值&#xff0c;例如 45、34 等。右侧的地址&#xff08;如 0x90&#xff09;&#xff1a;表示该节点 next 指针指向的下一个节点的内存地址。 例子中&a…...

游戏与硬件深度协同,打造更精细的体验优化

高画质的游戏往往带来手机的发热和卡顿从而影响游戏体验。开发者希望能够获取到手机运行的实时状态&#xff0c;从而能够进行主动的负载调节&#xff0c;将手机发热时游戏体验影响降到最低&#xff1b;同时手机也可以通过游戏传入的关键场景如"正在下载资源"“团战中…...

C++实现设计模式---命令模式 (Command)

命令模式 (Command) 命令模式 是一种行为型设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使得可以用不同的请求对客户端进行参数化、对请求排队或记录日志&#xff0c;以及支持可撤销的操作。 意图 将操作的调用者与接收者分离&#xff0c;通过将请求封装为独…...

office 2019 关闭word窗口后卡死未响应

最近关闭word文件总是出现卡死未响应的状态&#xff0c;必须从任务管理器才能杀掉word 进程&#xff0c;然后重新打开word再保存&#xff0c;很是麻烦。&#xff08;#其他特征&#xff0c;在word中打字会特别变慢&#xff0c;敲击键盘半秒才出现字符。&#xff09; office官网…...

flutter入门系列教程<三>:tabbar的高度自适用,支持无限滚动

背景 在之前的文章中&#xff0c;简介了tabbar组件的使用&#xff0c;它通常用于顶部放置tabbar标签页头&#xff0c;内容全部都是TabbarView的全部内容&#xff0c;且内容通常是占满屏幕的&#xff08;尽可能大&#xff09;&#xff0c;如下&#xff1a; 但是有时候我们需要…...

前端三件套详解之 HTML

HTML&#xff1a; 师承b站pink老师【黑马程序员pink老师前端入门教程&#xff0c;零基础必看的h5(html5)css3移动端前端视频教程】 HTML概述 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创…...

【pytorch 】miniconda python3.11 环境安装pytorch

ubuntu24.04 miniconda python3.11 环境安装pytorch 组件:langgraph本身不需要有一些模型是需要的:python3.11环境:报错ModuleNotFoundError: No module named ‘torchaudio’ ModuleNotFoundError: No module named ‘torchaudio’File "/root/miniconda3/envs/05_ep_…...

支持大功率输出高速频闪的图像处理用光源控制器

机器视觉系统中的光源控制器在确保图像质量、提高系统稳定性、降低能耗以及方便系统扩展和升级等方面发挥着重要作用。它可提供稳定光源&#xff0c;调节参数&#xff0c;另外具有操作便捷性。 下面我们来看Gardasoft的光源控制器&#xff0c;Gardasoft拥有作为图像处理用LED光…...

使用 Python 和 Tesseract 实现验证码识别

验证码识别是一个常见且实用的技术需求&#xff0c;尤其是在自动化测试和数据采集场景中。通过开源 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;工具 Tesseract&#xff0c;结合 Python 的强大生态&#xff0c;我们可以高效实现验证码识…...

Opencv学习

Long time no see!哈哈&#xff0c;假期终于有时间做一点自己喜欢的东西了 还是想说&#xff0c;每天花一点时间投在自己喜欢的事情上&#xff0c;或者专攻一些平时不学的方向&#xff0c;真的很酷&#xff01; 图片绘制 对于图像绘制&#xff0c;可以分为&#xff1a;图像创…...

数学大模型MAmmoTH:通过混合说明调整建立数学通才模型

向悦和陈文虎是该项目的主要作者。他们这个项目推出 MAmmoTH&#xff0c;这是一系列专为解决一般数学问题而定制的开源大型语言模型 (LLM)。 MAmmoTH 模型在 MathInstruct 上进行训练&#xff0c;MathInstruct 是我们精心策划的指令调整数据集。 MathInstruct 已编译 来自 13 个…...

springboot 配置多数据源以及动态切换数据源

场景 我们springboot项目&#xff0c;通常会有多个数据库&#xff0c;例如mysql,vertica,postgresql等等数据库&#xff0c;通常我们需要动态切换使用我们想要的数据库&#xff0c;这时候就需要配置多数据源了 多数据源特性 支持多数据库类型&#xff1a;例如&#xff0c;同…...

计算机图形学:实验三 光照与阴影

一、程序功能设计 设置了一个3D渲染场景&#xff0c;支持通过键盘和鼠标控制交互&#xff0c;能够动态调整光源位置、物体材质参数等&#xff0c;具有光照、阴影和材质效果的场景渲染。 OpenGL物体渲染和设置 创建3D物体&#xff1a;代码中通过 openGLObject 结构体表示一个…...

idea修改模块名导致程序编译出错

本文简单描述分别用Idea菜单、pom.xml文件管理项目模块module 踩过的坑&#xff1a; 通过idea菜单创建模块&#xff0c;并用idea菜单修改模块名&#xff0c;结构程序编译报错&#xff0c;出错的代码莫名奇妙。双击maven弹窗clean时&#xff0c;还是报错。因为模块是新建的&am…...

Arcgis国产化替代:Bigemap Pro正式发布

在数字化时代&#xff0c;数据如同新时代的石油&#xff0c;蕴含着巨大的价值。从商业决策到科研探索&#xff0c;从城市规划到环境监测&#xff0c;海量数据的高效处理、精准分析与直观可视化&#xff0c;已成为各行业突破发展瓶颈、实现转型升级的关键所在。历经十年精心打磨…...