摘要
Web自动化是一种重要技术,通过自动化常见的Web操作来完成复杂的Web任务,可以提高运营效率并减少手动操作的需要。
传统的实现方式,比如包装器,当面对新的网站时,面临着适应性和可扩展性的限制。
另一方面,由大型语言模型(LLM)赋能的生成型代理在开放世界场景中表现出较差的表现和可重用性。
在这项工作中,我们提出了一个面向垂直信息网页的爬虫生成任务,以及将自然语言模型(LLMs)与爬虫结合的范式,这有助于爬虫更高效地应对多变的网络环境。
我们提出了一种名为AUTOCRAWLER的两阶段框架,利用HTML的层次结构进行逐步理解。
通过自上而下和回溯操作,AUTOCRAWLER可以从错误的行为中学习,并持续精简HTML,以生成更好的动作。我们使用多个LLM进行了全面的实验,并展示了我们框架的有效性。
介绍
Web自动化是指通过程序化方式与基于网络的应用程序或网站交互的过程,以执行通常需要人工操作的任务。
Web自动化通过简化重复且耗时的任务,显著提高了各种在线流程的效率、准确性和可扩展性。
在传统网络自动化中,方法主要依赖于包装器,这是一些专门设计用于从特定网站或页面中提取数据的脚本或软件。这种方法是封闭世界场景的特征,自动化系统仅与预定义的、有限的网站或页面集合交互,并且不扩展到该指定域之外。因此,这些传统方法在适应性和可扩展性方面存在局限性,当遇到新的或改变的网站结构时,难以有效地运行。
在这些限制下,基于规则的封装器和自动生成的封装器( Bronzi等,2013年),尽管它们之间有所不同,但都共同依赖于为每个网站手动标注的示例。例如,已经使用了超过1,400个网页标注来进行信息抽取(Lockard等,2019年)。
LLMs的出现彻底改变了Web自动化,通过引入诸如规划、推理、反思和工具使用等高级能力。利用这些能力,Web自动化通过LLM构建生成型代理,这些代理可以自主浏览、解释并与Web内容交互。
这通过复杂的语言理解和决策过程有效地解决了开放世界的基于Web的任务。然而,尽管取得了这些进展,这一模式仍面临两个主要问题。
一方面,现有的web代理框架通常表现出较差的性能,成功率被提到为2.0(Deng等人,2023年,在开放世界的任务。
另一方面,这种方法遇到的一个重大弱点是它的可重用性不足。
这意味着这些代理即使在处理类似的任务时也过度依赖LLM,从而导致在管理大量重复和类似的网页时效率低下。
在这项工作中,我们提出了一个爬虫生成任务的垂直信息网页。该任务的目标是自动生成一系列预定义的规则或动作序列,以自动提取目标信息。
这个任务需要一个LLM生成爬虫的范例。与传统的包装器相比,这种范式可以根据不同的网站和任务需求快速调整。
这种灵活性使抓取器能够更有效地处理多样化和不断变化的网络环境。与生成式代理范式相比,它引入了中间规则来增强可重用性,并在处理类似任务时减少对LLM的依赖,从而在处理大量Web任务时提高效率。
尽管LLM具有强大的网页信息提取能力,但LLM的爬虫生成仍然存在以下挑战:
首先,LLM主要是在大量干净的高质量纯文本语料库上进行预训练,缺乏对HTML等标记语言的接触。因此,LLM对HTML中固有的复杂结构和语义的理解有限。
其次,HTML作为一种半结构化数据,包含结构化(标签和属性)和非结构化(文本内容)的元素,同时包含嵌套的多层信息。它增加了爬虫生成的复杂性。
第三,尽管LLM在理解文本内容方面表现出色,但他们在理解冗长的结构信息文档方面仍然存在不足。这表明在准确捕获和利用长HTML文档中固有的层次结构方面存在潜在的挑战。
因此,我们引入AUTOCRAWLER,一个两阶段的框架,旨在解决这些爬虫生成任务中的困难。AUTOCRAWLER的概述如图2所示。我们的框架利用HTML的层次结构进行渐进式理解。
我们提出了一种基于LLMs的启发式算法,该算法包含上下分治和回溯操作。首先,尝试逐步细化到DOM树中包含目标信息的特定节点,当执行失败时,则向上回溯DOM树。这个过程能够修正错误的执行,并逐步剔除HTML内容中与目标无关的部分,直到成功执行。
我们的贡献可概括如下:
- 我们提出了网络爬虫生成任务和利用大型语言模型(LLMs)生成爬虫的范式,并对抽取效率进行了分析。
- 我们引入了AUTOCRAWLER,这是一个两阶段框架,具有逐步理解能力,用于生成可执行的操作序列。
- 全面的实验结果证明了我们框架在网页爬虫生成任务中的有效性。
AUTOCRAWLER
在本节中,我们解释了AUTOCRAWLER框架的开发,用于根据从半结构化的HTML中提取特定信息生成网络爬虫。我们的方法分为两个阶段:首先,我们采用了一种基于网页层级结构的渐进式生成框架;其次,我们基于从多个网页获取的结果建立了合成框架。整体框架如图2所示。
与生成XPath的包装器方法不同,我们将爬虫生成任务建模为行动序列生成任务。具体来说,我们生成一个行动序列Aseq,它由一组种子网页(即测试案例中生成序列的小部分网页)中的一系列XPath表达式组成。
n 代表动作序列的长度。我们在顺序使用解析器的方式执行XPath。在序列中,除了最后一个XPath表达式之外的所有 XPath 表达式都用于筛选网页,最后的表达式用于从筛选后的网页中提取相应的元素值。
然而,HTML内容组织为DOM树结构,这使得可以剔除无关的页面组件,因而限制DOM树的长度和高度,从而改善LLM生成的性能。
具体来说,我们执行的遍历策略由自顶向下和步回操作。
自上而下指的是从当前DOM树的根节点开始,逐步细化以找到包含目标信息的特定节点。反向推进指的是通过向上遍历DOM树,重新评估并调整选择标准,从而选择一个更可靠、更具有普遍适用性的节点作为定位目标信息更加一致、准确的定位基础。在每一步中,首先执行自上而下的操作,指导LLMs直接写出通向包含目标信息节点的XPath,并判断使用XPath提取出的值是否与其识别的值一致。如果执行失败,则采取反向推进操作,从中失败的节点后退,同时确保网页中包含目标信息,这一过程也是基于LLMs的导向。
尽管在递增生成过程中我们能够获取执行动作序列,但不同网页的目标信息具体位置和结构的差异仍然存在。这一过程可能在单个HTML页面中收集具有特定特征的XPath,但这种做法降低了动作序列的通用性。为了提高动作序列的重用性,我们提出引入综合阶段。具体实施如下:
- 随机选择ns个测试页面作为种子页面。
- 为每一个种子页面生成一个动作序列。
- 利用多个不同的动作序列从这些种子页面中提取信息。收集所有动作序列及其相应的结果,并从中挑选一个能够从所有种子页面中提取出全部目标信息的动作序列,作为最终的动作序列。
动作序列的长度依赖于大型语言模型(LLMs)的能力。为了全面探讨不同模型在理解网页结构方面的性能,我们研究了模型对步骤数量分布的影响。具体来说,我们收集了所有动作序列,并计算了不同LLMs与AUTOCRAWLER之间的平均步骤数。实验结果报告在表格3中。 我们注意到,具有更强LLMs的AUTOCRAWLER产生更短的动作序列。使用GPT4的AUTOCRAWLER平均需要1.57步,而使用Mistral 7B的AUTOCRAWLER平均需要3.82步。这一现象可以解释为更强大的模型具有更好的了解网页层次结构的能力,因此能够准确地输出更长、更深网页中的适当XPath,从而减少步骤的数量。
将HTML的长度定义为其HTML中词条的数量,其高度定义为表示HTML的DOM树的高。我们定义长度和高度的压缩比为原始网页的长度和高度与网页被AUTOCRAWLER精简后的长度和高度比值。
我们计算了在正确情况下,各个LLM的长度和高度压缩比,并据此对它们的性能进行了排名。图3显示了结果。令人感兴趣的观察是,长度和高度的压缩比都呈现出一个U形曲线。这种现象可以从两个方面进行解读:一方面,当LLM的性能强大时,它能在不返回并重新访问子DOM树的情况下生成正确的XPath;另一方面,当模型较弱时,它无法有效理解网页的层次结构,因此无法为网页生成可靠且有效的XPath。
自动爬虫中XPath的脆弱性 关于XPath的脆弱性,主要指的是XPath表达式在面对新的网页时,往往因为依赖特定信息的预测(如文本、@class等)变得无效或不准确地匹配目标元素。这种脆弱性在很大程度上依赖于XPath通过使用如文本信息这样的预测来指定具体信息。
我们主要关注基于文本特征生成XPath的重复使用性,因为这些文本信息来自于同一个网站(如@class就是一个生成稳定操作序列的好特性)。表4列出了依赖于文本的XPath表达式。我们旨在探索通过文本特征来生成XPath的具体情况再利用性。我们人工计算了不同类型预测(包含和等于)两种情况下的失效案例的比例。表5中的结果显示,较强的大型语言模型(LLM)的能力与使用自动爬虫时的失效案例比例呈下降趋势。然而,目前的前沿LLM GPT-4仍面临着XPath的脆弱性问题,这表明完全依赖LLM来生成可靠的XPath仍存在一定的差距。
Related Work
Web Automation with LLMs
许多研究探索了在网页模拟环境中开放世界的概念(Shi等人,2017;Yao等人,2023;Deng等人,2023;Zhou等人,2023),包涵了一系列涵盖现实生活场景的任务,比如在线购物、航班预订和软件开发等。当前的网页自动化框架主要致力于简化网络环境(Sridhar等人,2023;Gur等人,2023;Zheng等人,2024),并为计划和与网络交互制定策略(Sodhi等人,2023;Ma等人,2023)。然而,这些框架在重用性方面存在局限,代理在执行类似任务时对LLMs的依赖性过强,导致了效率低下。
DOM-based Web Extraction
这些方法利用了网页的层次结构。此类方法包括基于规则的方法(Zheng等,2008),学习封装器(即,一个DOM特定解析器,可以提取内容)(Gulhane等,2011;Kushmerick,1997;Dalvi等,2011)。现代策略采用了远距离监督,通过将现有知识库与web源进行匹配,以自动创建训练样本从而降低注释所需的努力(Lockard等,2018, 2019)。这种方法虽然大大减少了标注工作,但不可避免地会导致误删(即负样本)问题,因为是由于知识库的不完整性导致的(Xie等,2021)。
Conclusion
在这篇论文中,我们提出了一种名为“爬虫生成任务”的概念,该任务融合了LLM(Large Language Model)和爬虫的范例,以提升当前网络自动化框架的有效复用性。随后,我们提出了一个称为AUTOCRAWLER的两阶段渐进理解框架,旨在生成一个更加稳定和可执行的行动序列。全面的实验结果表明,AUTOCRAWLER在爬虫生成任务中能显著超越最佳基准。
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓