AutoWebGLM测评:2024年最佳AI生成工具推荐
结论写在前面
大语言模型确实让不少agent任务有了质的飞跃,尤其是Web导航这类场景。但坦白讲,大部分现有agent在真实网页上的表现,离“好用”还差得很远。这个问题的核心矛盾,其实集中在三个地方:第一,网页上能做的操作确实五花八门;第二,那些动辄几万token的HTML文本,模型实在“消化”不了;第三,互联网的开放本性,让决策逻辑变得异常复杂。
针对这些痛点,研究团队拿出了AUTOWEBGLM——一个基于ChatGLM3-6B的agent方案,在多个自主网页导航的基准测试里,表现相当稳健。关键思路是,不跟模型的短板硬碰硬,而是通过有效控制HTML文本长度、妥善处理网络的开放域特性,把复杂的网页任务“简化”到模型能驾驭的程度。训练策略上,课程学习、强化学习、拒绝采样微调,一环扣一环,逐步提升模型对网页理解和浏览器操作的学习能力。此外,论文还配套构建了一个独特的双语网页浏览基准,为后续研究打下了不错的基础。相关代码、模型和数据会在 https://github.com/THUDM/AutoWebGLM 公开。
论文的简单介绍
2.1 论文的背景
把自主的数字agent当成得力助手,这个想法确实很吸引人。借着大语言模型强大的理解和响应能力,很多以前只能想想的场景,现在都有了落地的可能。比如,基于LLM的agent可以一边吃早餐,一边帮你把网上的新闻简报整理好。把LLM集成到日常任务里,意味着人机交互方式的深刻转变,既能提升效率,也在重新定义机器辅助的边界。
不过,理想很丰满,现实却有不少“硬骨头”。
首先是缺乏统一的操作空间:很难找到一个通用、方便的接口,能覆盖各种网站上浏览器所需的全部必要操作。其次是网页简化方法的缺失:网页的多样性、复杂性,加上动不动就长篇大论的措辞,让LLM理解内容和执行正确操作变得相当困难。内容丰富的网页,token长度常常超过3万。最后是高质量训练轨迹的匮乏:用于训练强大网络agent的轨迹数据太少,现有模型明显缺乏网络任务上的正确推理和自我检查能力,一陷入错误循环就很难自拔。
为了解决这些问题,论文提出了AUTOWEBGLM。它不同于前身WebGLM(侧重检索增强的网络问答),而是专注于像人类一样,通过导航和操作真实浏览器,自主完成复杂的现实世界任务。研究团队设计了一套高效的数据策略,来快速构建庞大且可靠的训练数据集——要知道,即便最先进的模型,也难以可靠地完成数据标注任务。在此基础上,结合监督学习和强化学习方法,在收集的网络agent数据集上训练AUTOWEBGLM,让它在通用网页浏览任务上取得了性能优势。更进一步,采用拒绝采样微调(RFT)进行终身学习,使agent能在特定的Web环境中“学成专家”。
2.2 论文的方法
2.2.1 问题设置
论文把Web浏览任务看作一个序列决策过程。状态S包含当前页面的状态,比如HTML、URL和窗口位置。动作集A则涵盖了所有潜在的浏览操作,包括点击、输入、滚动等。状态的转移由当前网页状态和agent输出的动作共同决定。当agent输出“完成”或达到最大交互次数时,任务结束。
在决策过程中,agent会结合先前历史、最近动作和当前状态来更新信息。策略,就是agent基于当前状态和历史来选择动作。从初始状态开始,通过策略和转移函数迭代推进,直到输出“finish”或达到最大步数。
2.2.2 AUTOWEBGLM框架
如图3所示,论文通过HTML简化和OCR模块处理信息——拿到HTML和网页截图后,先得到简化的HTML表示,再标记出可操作元素,同时用OCR模块在图像解析过程中标注文本元素。agent将这份表示与其他观测数据结合起来,启动动作预测。输出动作后,由自动化Web程序来执行,这个循环一直持续到任务结束。AUTOWEBGLM通过把这些组件融进一个统一框架,实实在在地提升了交互能力和网页导航精度。
构建一个全面、精确的观测和动作空间,是搭建稳健网页浏览框架的基础。这些空间能把各种数据源统一成标准格式。
2.2.2.1 观测空间
观测空间应该尽可能接近浏览器图形界面,这样才能最大化agent的能力上限。论文确定了四个关键指标:任务描述、简化后的HTML、当前位置,以及过去操作记录。
HTML:网页的HTML既庞大又复杂,输入模型前必须先简化。简化的目标是提取关键信息,同时去掉可能干扰模型的冗余元素。但要保留基本的HTML结构和重要内容,让模型能理解和利用这些信息。附录A里的算法能高效地把元素树转换成简洁的表示。
当前位置:实验发现,当提供窗口位置和页面大小时,agent的表现会更好。页面滚动位置帮助agent理解当前可见区域的内容,页面高度则帮它把握整个页面的规模,相当于给模型提供了空间上下文。
先前的动作:让agent了解过去操作的最直接办法,就是显式地把历史操作提供给它。这能防止agent陷入反复执行相同失败操作的无效循环。
2.2.2.2 动作空间
通过在实际任务执行中大量总结经验,论文定义了一个完整且自洽的动作空间(如表1所示),以函数调用的形式供语言模型在Web浏览领域执行。
2.2.3 数据准备
现实世界里高质量、复杂的Web浏览数据很稀缺,论文的目标就是自己动手创建一个训练数据集。但挑战一个接一个:
- 任务收集:要获取跨不同网站的各种真实用户任务查询,本身就是个大难题。
- 隐私和安全:这些限制阻碍了直接获取用户的浏览器操作序列。同时,排除与任务无关的冗余或错误操作、确认用户任务是否完成,也相当困难。
- 客观注释:为每个操作步骤收集用户目标,这种劳动密集型的方式在现实中很难落地。
- 模型限制:现有模型处理不了跨不同网站的复杂用户查询,想靠纯自动化方法准确收集浏览轨迹,在复杂的应用场景里几乎行不通。
如图4所示,论文提出了一种人机混合的数据构建方法,把数据分为两种类型来应对这些挑战。
2.2.3.1 Web识别和简单任务操作构建
在Web浏览任务中,高效准确地理解和操控网页,是模型开发的关键挑战。
Web识别:目标包括理解特定的HTML格式、识别不同类型的Web元素(文本框、按钮、图像等),以及理解这些元素在用户交互中的作用。具体做法是:先从Similarweb上列出的中英文主流网站收集URL,然后用HTML解析器识别每个网页中的可操作组件,记录位置和大小等信息。接着,通过重排和简化组件树生成简化后的HTML。论文设计了一些任务,比如网站和组件功能描述,来帮助模型识别网页结构和交互组件的功能。对每个任务,开发一系列自然语言问题作为源字段,再用GPT-3.5-Turbo生成多种表述来丰富问题的形式。目标方面,同样用GPT-3.5-Turbo生成响应,在提示中提供简化后的HTML和问题,并限制响应长度。
简单任务操作:这个数据集的目标很明确——训练模型执行单步Web操作,比如点击链接、填写表单或导航到特定部分。构建方式和Web识别类似,收集各种网站,然后按操作类型分割数据,确保覆盖所有基本操作。关键点是,这里不用模型生成,而是用规则来构建。虽然尝试过用GPT-3.5-Turbo生成任务和操作,并用Selenium验证,但模型精度不够,操作是否正确也很难判断。于是换了个思路:识别网页中各种可操作元素,把它们组装成Web操作,再让GPT-3.5-Turbo生成相应的任务和操作意图。对滚动、跳转这类操作,直接用模板生成;对点击、输入这类灵活操作,则借助GPT-3.5-Turbo完成。这样既保证了指令的可执行性,也保证了操作任务的丰富性。
2.2.3.2 复杂任务操作构建
为了让模型具备在Web浏览场景中制定计划和推理的能力,论文开发了一个面向复杂Web任务的数据集。每个样本包含一个真实的复杂Web浏览任务、完成该任务的操作序列,以及每一步的意图。首先,参考EvolInstruct的提示技术为每个网站设计了50个复杂任务,从中手工挑选出大约20个可行的任务进行标注。由于任务高度复杂,即便最先进的LLM也难以令人满意地完成任务,因此论文利用手工注释,通过浏览器插件记录网站任务期间的操作。
为了改进CoT(思维链)构建过程,论文用GPT-4作为操作意图预测器。第一次尝试发现生成的操作链接较弱,且API成本很高。后来改用全局思维链提示方法,把所有操作和关键HTML段落都输入一个轨迹,然后让GPT-4输出每一步的意图。这样显著提高了准确性和连贯性,形成了高度相关、一致的思维链。构建完成后,将数据与Mind2Web和MiniWob++的训练集合并,形成最终的训练数据集。各分割的比例如图5所示。
2.2.3.3 AutoWebBench 构建
论文把收集到的复杂任务操作数据集分出一部分用于评估,这就是AutoWebBench。它被划分为两个分割:领域内和领域外。领域内数据集来自训练集里同一网站的数据,用来衡量模型在熟悉条件下的表现;领域外数据集则来自训练集从未包含的网站,专门用来测试模型的泛化能力。每个分割各选50个浏览轨迹作为测试数据,这些轨迹经过人工仔细检查和过滤,保证了评估基准的可靠性。评估方法参考了Mind2Web,全面评估操作中涉及的每一步,从而衡量模型操作的步骤准确率和总体准确率。详细结果见表2。
2.2.4 训练
论文通过图6所示的三个步骤训练模型。
2.2.4.1 第1步:课程学习
第一步是监督微调(SFT),目的是增强模型对网页的理解,以及作为agent在环境中执行操作的能力。值得注意的是,这里采用了课程学习(CL),模拟人类的学习过程——从简单样本开始,逐步过渡到复杂样本。已有工作证明,这能大幅提升模型能力。
首先让模型学会阅读和操作网页。初始阶段,混合构建的数据,让模型具备两样东西:一是理解网页结构和各种Web组件功能,二是在当前网页上执行预定义操作,从而实现简单的用户指令。接下来,让模型学会规划和推理。在这个阶段,继续使用构建的数据训练,使模型能够将任务分解为子任务,并根据当前网页和先前操作序列执行后续步骤。经过训练,模型MSFT就获得了完成Web浏览任务的基本能力,可以根据用户指令独立执行操作。
2.2.4.2 第2步:强化学习
经过SFT训练后,MSFT已经展现了一些操作浏览器和推理任务的能力。但SFT有个特点:模型会尝试模仿推理过程和操作,有时会忽略网页状态和前一操作序列,导致幻觉。为此,论文提出了自采样强化学习来缓解这些操作幻觉。
具体做法是,用MSFT在训练集中的复杂任务操作样本上进行n=20次采样,把采样的输出和标准答案结合起来,构建包含正负样本对的对比数据。然后按以下标准保留样本:从所有20次采样中,选择模型在1到19次中完成任务的数据。如果MSFT每次都做对,说明缺乏训练价值,提供不了实际负例;如果每次都做错,则怀疑数据有问题,排除掉。同时保留不同的错误操作并删除重复项。构建好对比数据后,采用DPO训练方法,让MSFT从自己的错误中学习。训练过程中发现直接使用DPO损失会导致不稳定,于是加入SFT损失来稳定强化学习过程,并增加训练步数,确保不会丧失原模型的语言和agent能力,最终得到更稳健的模型MDPO。
2.2.4.3 第3步: 拒绝采样微调
RFT步骤的目标是针对特定领域的网页环境进行优化。通过从现有模型大量采样,再根据奖励信号选择准确的轨迹——奖励信号可以由环境本身提供,也可以通过预先设计的奖励模型提供。由于真实网页环境存在网络策略约束,论文在MiniWob++和WebArena提供的沙箱环境中实验。
对MiniWob++,利用其中的查询生成器为每个任务自动生成多个用户查询,根据任务难度确定生成数量。然后让MDPO尝试解决这些查询,如果轨迹能完成任务(根据MiniWob++环境的判断),就视为正轨迹。对WebArena,为了防止与测试集重叠,手动构建多个不同的用户查询,每个样本让MDPO采样64次。同样,如果模型至少一次完成任务(根据手写规则判断),就把成功的轨迹视为正轨迹。最终,从MiniWob++和WebArena各构建了一个成功数据集,分别包含约15k条轨迹(66k步)和240条轨迹(2k步),用于AUTOWEBGLM在这两个任务上的微调。
2.3 论文的效果
论文建立了一个双语(中英文)基准AutoWebBench,评估了公开可用的agent能力,并在多个基准上进行了广泛实验,对比AUTOWEBGLM在英文和中文网站导航任务中的表现。
2.3.1 主要结果
除了AutoWebBench,论文还测试了AUTOWEBGLM在Mind2Web、MiniWoB++和WebArena这三个已建立的Web导航基准上的表现。
AutoWebBench:测试集分为四个分割:中文、英文、领域内和领域外,采用步骤成功率(SSR)作为评估指标。所有模型都使用附录E描述的上下文学习提示进行评估。从表2的结果可以看到,AUTOWEBGLM在多任务训练之后,在预测一般用户操作模式方面表现突出,与用户操作保持了很好的一致性。相比之下,其他基线在缺乏足够训练的情况下,很难准确学习基于网页内容和任务描述、在不同真实网站上的用户操作。
Mind2Web:沿用Mind2Web的设置,以SSR作为主要评估指标,利用Mind2Web提供的MindAct框架来评估模型性能。基线结果来自参考文献。结果如表3所示。
MiniWoB++ & WebArena:对于MiniWob++,遵循WebAgent的实验设置,通过在每个任务上运行100个评估回合来测试56个任务。对于WebArena,将论文的HTML解析器模块和动作执行模块集成到环境中,使其兼容。结果如表7所示。WebArena的基线结果来自参考文献,LLaMA2的结果则通过在MinWob++数据集上训练和评估获得。
2.3.2 消融研究
为了评估不同阶段数据和训练策略的贡献,论文在表4中进行了全面的消融研究。
训练数据消融:只训练包含原始训练集、同时包含简单和复杂任务数据的模型,来定性评估不同数据集的影响。结果很明确:复杂任务数据集显著提升了模型性能。推测原因是复杂数据更贴近现实场景,从根本上改变了模型的表现。单独使用简单任务数据集训练,改善幅度很小;但与复杂任务数据集联合训练后,提升非常显著。有意思的是,只用复杂任务数据集训练会导致基本操作错误,而简单任务数据集能有效缓解这个问题。
训练策略消融:比较了SFT、DPO和RFT增强型模型的结果,发现DPO训练相比SFT,能帮助模型从自身错误中学习,进一步提升性能。而RFT让模型能在不同领域进行自举式增强——熟能生巧,每个领域内都有改进。
2.3.3 案例研究和错误分析
为了评估模型的有效性,论文进行了一系列案例研究,涵盖日常使用、休闲娱乐和学术研究等典型Web需求。系统在大多数场景下都取得了令人满意的结果。
当然,没有完美的系统。论文发现在任务执行过程中偶尔会出现四类错误:幻觉、图形识别不佳、对任务背景的误解,以及弹窗中断。表5总结了这些错误在错误分析中的占比。虽然相对较少,但正视这些短板,正是模型不断迭代和提升的关键。
