摘要
预训练的大语言模型(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)。
然而,真实世界网站的网页自动化仍然面临以下挑战:
考虑到真实网站的开放性和指令的复杂性,预先定义合适的操作空间 是一项具有挑战性的任务。此外,尽管已有研究表明,通过指令微调或从人类反馈中进行强化学习可以提高 HTML 理解和网页自动化的准确性(Furuta 等, 2023; Kim 等, 2023),但现有架构通常难以处理真实网站的 HTML 文档。
如图 2 所示,真实网站的 HTML 令牌长度远超模拟器,且大多数 LLM 的上下文长度比真实网站的平均 HTML 令牌数要短。直接将如此长的 HTML 文档作为输入成本极高,而使用诸如文本-XPath 对齐(Li 等, 2021b)或文本-HTML 令牌分离(Wang 等, 2022a)等现有技术,也存在一定局限性。为了实现更广泛的任务泛化和模型规模扩展,现有 LLM 往往忽略了针对 HTML 文档的领域知识。
在本研究中,我们提出了 WebAgent,这是一个由 LLM 驱动的自主智能代理,能够通过自我学习经验,在真实网站上按照用户指令完成任务。
WebAgent 通过在程序空间中结合标准网页操作,完成任务(如图 3 所示),其关键功能包括:
WebAgent 采用两种 LLM 进行模块化集成:
HTML-T5 采用编码-解码架构,并通过局部和全局注意力机制(Guo 等, 2022)来更好地捕获长 HTML 文档的结构。与模拟环境(平均约 0.5K 令牌)相比,真实网站的 HTML 令牌数量显著更高(7K 至 14K),占用了 LLM 大部分的上下文长度。因此,我们在预处理阶段移除了无关的 HTML 标签(例如 、
),仅保留必要的属性(例如
id
、type
、value
)。
HTML-T5 采用长跨度去噪目标(Tay 等, 2022)在来自 CommonCrawl 的大规模 HTML 语料库上进行预训练,以更好地捕捉 HTML 的语法和语义信息。
为了将语言模型代理更好地适配真实网站,我们引入了自我经验监督,即使用脚本化的规划/摘要以及自主生成的程序数据对领域专家语言模型进行微调。
现有 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)**的性能。
网页自动化是一种序列决策任务,其中代理根据给定指令操作浏览器(Shi 等, 2017),例如通过一系列计算机操作执行表单填写(Diaz 等, 2013)或信息检索(Adolphs 等, 2022)(Li 等, 2020; Mazumder & Riva, 2020; Shvo 等, 2021)。
以往的研究主要通过以下方法实现网页自动化:
上述研究大多在模拟网站(Shi 等, 2017; Toyama 等, 2021; Yao 等, 2022a)上进行。然而,简化的模拟环境与真实网页环境之间仍存在巨大差距,例如:
与本研究最相关的工作可能是 MindAct(Deng 等, 2023),其方法通过对微调的语言模型进行 HTML 摘要提取,并使用另一模型以多选问答格式预测网页操作。尽管 MindAct 结合了多个语言模型,但其仅使用 DeBERTa(He 等, 2021)和 Flan-T5(Chung 等, 2022)作为摘要和执行模块,并仅在离线数据集上进行了评估。
相比之下,我们提出的 WebAgent 采用专门设计的 HTML-T5 来处理网页任务,专门用于长 HTML 文档的摘要和规划。同时,WebAgent 结合了微调后的 HTML-T5 进行摘要和规划,以及 Flan-U-PaLM 作为功能强大的代码生成器,使其能够生成开放式网页操作,并在真实在线网站上执行。
除了常见的 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。
WebAgent 是一种新的架构,结合了两个大语言模型(LLM)以实现高效的真实世界网页自动化。HTML-T5 作为领域专家 LLM,负责预测下一个子指令(任务规划)并生成相关的 HTML 片段(内容摘要)。Flan-U-PaLM(540B)(Chowdhery 等,2022;Chung 等,2022)在 HTML-T5 提供的规划和摘要基础上,被提示生成可执行的 Python 程序(见图 3)。这种模块化的两阶段方法使 WebAgent 能够有效地导航并处理 HTML 文档。
用户以自然语言的方式提出请求,例如“搜索公寓”。收到初始请求后,HTML-T5 生成一个 “前往
新打开页面的原始 HTML 内容将被提取,并与用户指令及之前的规划步骤一起输入到 HTML-T5 中,以预测下一个子指令并识别相关的 HTML 片段进行摘要。接着,Flan-U-PaLM 根据这些子指令和 HTML 片段生成 Python 程序。
该规划、摘要和程序合成的迭代过程将持续进行,直到预测到指定的“结束”指令或达到最大迭代次数。
先前研究表明,通用 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 文档具有明确的层次结构。其结构包括元素(如 、
、
)及其相关属性(如
class
、label
、id
)。这些元素在局部定义,并在整个 HTML 文档中层次化地组合。
为建模这一层次结构,我们用局部和全局注意力机制(Ainslie 等, 2020)替代了常见的密集注意力(Vaswani 等, 2017)。
如图 4 所示,HTML-T5 处理 HTML 叶子元素(绿色)时使用局部注意力,而处理内部元素(紫色)时则使用全局注意力,这种方法自然地适应了 HTML 的层次结构。
HTML-T5 的预训练使用跨度去噪目标(span denoising objective),即在 HTML 文档中随机屏蔽一定长度的令牌序列,并使用其余令牌预测屏蔽内容。
与自然语言文本不同,短跨度屏蔽(例如长度 µ = 3)往往会遮盖无意义的内容(如 , id=
等),信噪比较低。而更长的跨度 可以捕获更有意义的片段(如 )。实验表明,将跨度长度设置为 µ ∈ {8,64} 可优化 HTML 文档的建模(详见第 4.2 节)。
预训练使用的输入序列长度为 4096,输出序列长度为 910,共屏蔽 15% 的输入令牌。在预训练数据集方面,我们从 CommonCrawl 语料库(2019 年 4 月)中收集了 100 个 WARC 文件,并移除了非 Unicode 或仅包含字母数字的 HTML 文档。
为 LLM 提供示例来学习如何理解网站,仍是网页自动化领域的重大挑战。尽管人类可以轻松地遵循网页指令,但手动标注规划、摘要和程序合成的每个步骤是不现实的。
为解决这一问题,我们提出了一种自我经验监督(self-experience supervision)的半监督学习方法,该方法仅需最小的人为干预:
这样,代理能够泛化并适应复杂的真实世界任务。
我们维护了一组包含占位符的指令模板,例如:
“请在
网站上,按 的方式,从 到 。”
指令的值通过从预定义的键值对中随机抽取来填充。
我们使用基于规则的解析器,将指令分解为子指令序列,并通过正则表达式从 HTML 中提取参考 ID。在每个步骤,Flan-U-PaLM 接收子指令及相关 HTML 片段,并生成可由 Selenium WebDriver 执行的导航程序。
尽管记录的演示成功率各异,但自动化真实世界任务的成功标准仍然具有挑战性。为改进学习体验,我们利用环境反馈来消除关键失败,例如程序执行错误、检索错误和明显的 URL 前缀错误(Ni 等, 2023)。
WebAgent 的核心组件 HTML-T5 通过以下数据进行微调:
随后,HTML-T5 生成新的子指令(如“输入 7500 到最高租金”)并提取相关 HTML 片段。
第 4.1 节展示了将 HTML 摘要整合到子指令预测中的重要性,以增强真实世界网页自动化的性能。
在真实世界的网站上进行网页自动化面临诸多挑战,主要是由于其开放式操作空间,这与简化的模拟器环境有所不同(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})')
为了研究在自监督框架下,模块化 LLM 组合如何克服网页自动化中的开放性和长上下文问题,我们在真实网站上执行了指令跟随任务(详见 4.1 节)。此外,在附录 E 中,我们还在 WebSRC(Chen 等, 2021b)基准测试中测试了 WebAgent,该数据集专注于 HTML 结构化文档理解,并与专门的 Transformer 模型(Li 等, 2021b; Zhao 等, 2022)进行了对比。
我们还量化了 HTML-T5 本身在模拟网页基准 MiniWoB++ 以及离线任务规划基准 Mind2Web 上的性能(详见 4.2 节)。
我们首先在人类监督下评估 WebAgent 在真实网站上的导航性能,测试了以下三类网站:
WebAgent 接收自然语言指令,例如:
WebAgent 通过 HTML-T5 进行规划和摘要,并使用 Flan-U-PaLM 进行编程(如图 5 所示)。
通过自我经验监督,我们在房地产、社交媒体和地图网站上分别收集了 260、230 和 410 个任务实例,用于对 HTML-T5 进行微调。
我们准备了 20 个不同的自然语言指令(完整列表见附录 F),并使用成功率和得分作为评估指标:
如果代理仅满足其中 3 项,得分计算为:60 = 100×3/5100 \times 3/5100×3/5。如果得分达到 100,则视为成功。
为进行对比,我们使用了三个基线方法:
如果不使用语言模型模块,Flan-U-PaLM 将进行开放式规划,并使用正则表达式从原始 HTML 中提取信息。
表 1 显示:
WebAgent 显著优于仅使用 Flan-U-PaLM 或部分使用 LLM 模块的方法(大多数基线成功率仅为 10%-30%)。
实验结果表明:
这一趋势在房地产网站上尤为明显,即使使用 Flan-U-PaLM+P 进行长规划,其成功率也仅为 50%。
此外,子指令预测与 HTML 摘要的结合在任务成功中起到了至关重要的作用。
我们将失败案例归类为以下三种错误类型(见表 1):
改进更强大的规划模块,以自适应和准确地分解指令,将有助于进一步提升 WebAgent 的性能。
我们将失败原因归纳为以下三类:
从网站角度来看,房地产网站的失败主要集中在规划阶段,因为任务具有较长的决策路径。而地图网站在混淆起点和目的地时也容易在规划上出错。相较之下,社交媒体网站的失败主要发生在编程阶段,原因在于子指令的歧义或摘要中包含冗余的超链接,导致页面跳转错误或点击无法执行的元素。
从方法角度来看,WebAgent 主要在规划阶段失败(在房地产网站上的失败任务中,70% 的情况是由于错误的规划)。其他基线方法更容易在编程或摘要步骤中失败。
这一观察表明,通过自我经验监督,编程和摘要的错误比例已减少,但规划阶段的根本困难仍然存在,因为它需要在长任务序列中保持一致性和准确性,而不会积累错误。
实验结果概览:
表 3 显示了在 MiniWoB++(包含 56 项任务)上的平均成功率,我们使用了 12K 个示例来比较 HTML-T5 在各类微调方法中的表现。
HTML-T5 在其他基准测试中的表现:
Mind2Web(Deng 等, 2023):一个包含 2K+ 指令的真实世界数据集,涵盖 137 个网站(例如旅游、购物等)。
MiniWoB++(Liu 等, 2018; Shi 等, 2017):用于评估网页自动化能力的标准基准测试。
架构和目标分析:
模块化方法与专家语言模型
跨互联网的广泛泛化能力
程序合成的反馈
真实世界网页自动化的评估
我们构建了一个面向真实世界网页自动化的系统,结合了:
我们的 WebAgent 通过自我经验监督,在真实网站上的成功率达到 70-80%,相比单一 LLM 方法提高了 50% 以上,这表明使用多个语言模型分解子问题序列可显著提高任务的成功率。
我们还提出了一种可扩展的 HTML 专用语言模型架构,结合局部与全局注意力机制,并使用长跨度去噪目标来捕获 HTML 文档的层次结构。
HTML-T5 不仅是 WebAgent 的核心,还在多个 HTML 基准测试(如 Mind2Web 和 MiniWoB++)中取得了最佳表现。
我们希望我们的研究能够推动自主网页代理系统的实际部署。