LLM大模型:将爬虫与大语言模型结合

news2024/12/26 20:56:25

摘要

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,但这种做法降低了动作序列的通用性。为了提高动作序列的重用性,我们提出引入综合阶段。具体实施如下:

  1. 随机选择ns个测试页面作为种子页面。
  2. 为每一个种子页面生成一个动作序列。
  3. 利用多个不同的动作序列从这些种子页面中提取信息。收集所有动作序列及其相应的结果,并从中挑选一个能够从所有种子页面中提取出全部目标信息的动作序列,作为最终的动作序列。

动作序列的长度依赖于大型语言模型(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%免费】🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2113212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

国内短剧系统怎么搭建以及都需要那些资质?

聊到国内短剧,相信大家都不陌生,在各大短视频平台可谓是火的一批,您或许有想加入进来的想法,或是已经有规划还未实现的,请停下脚步,耐心看完该文章,相信一定会对你有所帮助的。本文介绍短剧平台…

C语言中结构体struct和联合体union的区别

C语言 文章目录 C语言前言一、什么是结构体二、什么是联合体三、结构体和联合体的区别 前言 一、什么是结构体 在C语言中,结构体指的是一种数据结构,是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数…

单调栈的实现

这是C算法基础-数据结构专栏的第二十四篇文章,专栏详情请见此处。 引入 单调栈就是满足单调性的栈结构,它最经典的应用就是给定一个序列,找出每个数左边离它最近的比它大/小的数。 下面我们就来讲单调栈的实现。 定义 单调栈就是满足单调性…

SnapGene 5.3.1下载安装教程百度网盘分享链接地址

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 SnapGene介绍 SnapGene 5.3.1下载安装教程百度网盘分享链接地址,SnapGene 是一款由美国公司开发(后被收购)的分子生物学软件,…

Deepspeed框架学习笔记

DeepSpeed 是由 Microsoft 开发的深度学习优化库,与PyTorch/TensorFlow等这种通用的深度学习框架不同的是,它是一个专门用于优化和加速大规模深度学习训练的工具,尤其是在处理大模型和分布式训练时表现出色。它不是一个独立的深度学习框架,而是依赖 PyTorch 等框架,扩展了…

Vue 向标签中传入 this

我曾经问过 chatgpt 这个问题,chatgpt 说不行! 但是,chatgpt 说的就算吗? 来试试吧: https://andi.cn/page/621733.html 当然是可以的!

apk反编译修改教程系列-----修改apk 解除软件限制功能 实例操作步骤解析_6【二十五】

目前很多软件都需要票票才可以使用完全的功能。纯免费的功能性app已经很少见了。 今天继续以一款app为大家来演示如何去除软件的限制功能。教程的目的主要是学习反编译的基础修改方法,了解app的修改步骤以及基础的入门修改常识。每个使用修改方法不一定适用于所有app。只是给你…

springboot、flowable 生成图片发布到Docker乱码问题

flowable自带的方法生成图片时,如设置字体为宋体,则本地测试没有问题,因为windows自带宋体字体库,但是如果发布到Docker,则会出现乱码问题,因为大部分Docker并不包含宋体字体库; 通过Java代码&a…

AAudio的延迟优化

AAudio | Android NDK | Android Developers

yolov8 pt转onnx

第一步: 安装onnx pip install --upgrade onnx 第二步: 将以下代码创建、拷贝到yolov8根目录下。具体代码test.py: from ultralytics import YOLO # Load a model model YOLO(yolov8n.pt) # load an official model # Export the mode…

Python利用pyecharts实现数据可视化

小编会持续更新知识笔记,如果感兴趣可以三连支持。闲来无事,水文一篇,不过上手实践一下倒还是挺好玩的,这一块知识说不定以后真可以尝试拿来做数据库的报表显示。 有梦别怕苦,想赢别喊累。 目录 前言 JSON数据格式的…

Leetcode3259. 超级饮料的最大强化能量

Every day a Leetcode 题目来源:3259. 超级饮料的最大强化能量 解法1:记忆化搜索 本题的状态定义 dfs(i,j)。其中 j0,1,分别表示最后选的是 energyDrinkA[i] 还是 energyDrinkB[i]。 为方便实现,把 energyDrinkA 和 energyDri…

你读文献的方式可能错了!掌握这些技巧,让阅读事半功倍!

我是娜姐 迪娜学姐 ,一个SCI医学期刊编辑,探索用AI工具提效论文写作和发表。 科研新手如何精读一篇论文? 很多科研新手,一上来就疯狂下载几十上百篇文献。囫囵吞枣看完了,还是什么都不知道,大脑一片空白。…

Windows 一键定时自动化任务神器 zTasker,支持语音报时+多项定时计划执行

简介 zTasker(详情请戳 官网)是一款完全免费支持定时、热键或条件触发的方式执行多种自动化任务的小工具,支持win7-11。其支持超过100种任务类型,50种定时/条件执行方法,而且任务列表可以随意编辑、排列、移动、更改类…

[每周一更]-(第113期):JWT说明以及与Session,Cookie区别

JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以JSON方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密&am…

舒适度和音质再升级,南卡OE Pro2以标杆级实力,体验革命性提升!

​在音频技术不断革新的今天,南卡科技以其深厚的技术底蕴和不懈的创新追求,再次站在了行业革新的前沿。今日,南卡科技隆重推出了其最新力作——南卡OE Pro2开放式蓝牙耳机,这款耳机以其独特的设计理念和卓越的音质表现&#xff0c…

《深度学习》OpenCV轮廓检测 轮廓近似 解析及实现

目录 一、轮廓近似 1、什么是轮廓近似 2、参数解析 1)用法 2)参数 3)返回值 4)代码解析及实现 运行结果为: 二、总结 1、概念 2、轮廓近似的步骤: 一、轮廓近似 1、什么是轮廓近似 指对轮廓进行…

Apache Pig

目录 一、配置说明1.本地模式2.集群模式 二、pig的数据模型三、pig的数据类型四、惰性执行五、pig的基本语法5.1语法说明5.2案例操作 六、pig的自定义函数 一、配置说明 1.本地模式 操作的是Linux系统文件 pig -x local关键日志 当前处于root目录下 2.集群模式 连接的是…

数据结构之堆的创建

1、堆的概念及结构 1.1堆的概念 如果有一个关键码的集合K{k0,k1,k2,…,kn-1}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足ki<k2i1且ki<k2i2&#xff08;或满足ki>k2i1且ki>k2i2&#xff09;&#xff0c;其中i0…

Windows环境下SD卡多分区 隐藏分区 解决python裸读写扇区失败

SD卡分区 右键“我的电脑”->“管理”->“磁盘管理”&#xff1b; 如果SD卡有文件系统&#xff0c;点击"删除卷"&#xff0c;重新做卡&#xff1b; 删除文件系统后如下图&#xff0c;点击“新建简单卷”&#xff1b; 在导航页“指定卷大小”&#xff0c;设置…