华为诺亚方舟新作:GUI Agent综述

news2024/11/23 16:49:19

1、摘要

智能代理可以做更复杂的任务。特别是模拟人类在GUI上进行交互,比如点击和打字。
本论文对此进行总结,特别是其中最关键的数据、框架和应用

首先是数据集和基准。
其次是统一框架,涵盖了关键组件和分类体系。
此外是基于MLLM的GUI Agent的商业应用。
并指出几个关键挑战,提出未来的研究方向。

2、GUI Agents 数据

数据分为静态、动态两类。

AitW:介绍了一个用于 移动设备控制的数据集,包括自然语言指令、截图和任务演示。
指令来自人类、语言模型和技术文档。包括5个数据集:4个多步任务、1个单步任务。

Android-In-The-Zoo:介绍了一个包含 18643个屏幕操作对、链式操作推理注释的基准数据集,目的是推动GUI导航代理研究。

AndroidControl:包含15283个使用Android APP执行的日常任务,每个任务都配有两个人工生成的指令(高级和低级)。

GUI-Odyssey:介绍了一个用于训练和评估 跨应用导航代理的 综合数据集。包括 7735个任务,涵盖了 6种类型的跨应用任务,201个不同的应用 和1399个应用组合。

UGIF:介绍了 一个全面、多语言、多模态的用户界面本地化数据集。4184个任务,8种语言。包括查询序列、指令、屏幕截图和人类执行的操作序列,非常适合用于多步UI操作评估。

GUI-WORLD:包括 12000多个GUI视频,6种场景类型,8个问题类别,以及3种格式,非常适合在各种GUI内容上评估 MLLM,特别是动态和顺序元素。

PIXELHELP:提出了一类新问题,专注于将自然语言指令转化为移动用户界面的操作。引入了 3个新数据集:PIXELHELP、ANDROIDHowTO和RICOSCA,这些数据集共同包含了 187个用于模型训练的多步骤指令。

WebArena:实现了一个功能多样的网站,涵盖了 电子商务、社交论坛、协作软件开发和内容管理,其中包含了 812个测试示例,用于支撑 高级自然语言指令。

ASSISTGUI:提出了一种新的基准,用于评估模型在Windows上操作鼠标/键盘的能力。ASSISTGUI包括来自9个软件应用的100个任务,配有项目文件,以便进行精确评估。

AndroidWorld:提供了一个Android环境,能够为涉及20个现实世界Android应用的116个编程任务发送奖励信号。 该环境 动态构建任务,以 自然语言表达为参数,可以产生无限数量的任务变体。

SPA-Bench:提出了一个旨在模拟 真实世界条件的 交互式环境,用来评估GUI代理。 这个环境包括涉及系统和第三方应用的340个任务,支持英文和中文的单应用和跨应用场景。

3、基于MLLM的GUI Agent

3.1、基于(M)LLM的GUI代理构建

GUI代理的两个关键方面:输入模式、学习模式。

GUI代理的目标是自动控制设备以完成用户定义的任务。通常,GUI代理会接收用户的查询和设备的UI状态作为输入,并提供一系列类似人类的操作来完成任务。

GUI代理包括5个部分:GUI感知器、任务规划器、决策器、记忆检索器和执行器。Wang等提出了 一种多代理GUI控制框架,包括规划代理、决策代理和反思代理,以解决移动操作任务中的导航挑战。

GUI感知器:需要准确解释用户输入、并检测设备UI的变化。导航设备UIs需要一个可靠的视觉感知模型以实现最佳交互。 UI的感知是GUI代理研究的重要问题。You等人和Zhang等人(Screen Recognition 2021)专注于理解和处理UI,而不是构建代理。例如You等人(Ferret-UI 2024)提出了一系列的 referring和grounding 任务,为GUI的预训练提供了宝贵的见解。

任务规划器:通常采用CoT方法,也有人引入了一个额外的模块来支持更详细的规划。在GUI代理的过程中,计划可以根据决策反馈动态调整,通常是通过ReAct风格(Yao et al., 2023)实现的。例如,Zhang等人(2023)利用屏幕上的观察来增强CoT,以促进更好的决策,而Wang等人(2024a)开发了一种反思代理,该代理提供反馈以细化计划。

决策器:负责提供控制设备的下一个操作(或操作序列)。大多数研究(Lu et al., 2024; Zhang et al., 2024a; Wen et al., 2024a)将一系列与用户界面相关的样本操作,如点击、文本输入和滚动,定义为基本空间。在更复杂的情况下,Ding (2024) 将一系列操作封装起来,创建标准操作程序(SOPs)来指导进一步的操作。随着GUI代理能力的增强,操作的粒度变得更加精细。最近的研究已经从元素级操作(Zhang et al., 2023;Wang et al., 2024b)发展到坐标级控制(Wang et al., 2024a;Hong et al., 2023)。

执行器:作为GUI代理和设备之间的桥梁,执行器将输出映射到相关的环境中。对于真实设备的执行,大多数研究(Zhang et al., 2023; Wang et al., 2024b,a)利用Android Debug Bridge (ADB)来控制设备。不同的是,Rawles等人(2024)在模拟器中进行测试,可以访问额外的与用户界面相关的信息。

记忆检索器:记忆检索器被设计为一个额外的信息来源,旨在帮助代理更有效地执行任务(Wang et al., 2024c)。通常,GUI代理的记忆分为内部和外部两类。内部记忆(Lu et al., 2024)包括执行过程中产生的先前动作、屏幕截图和其他状态。外部记忆(Zhang et al., 2023; Ding, 2024)通常包括与UI或任务相关的先验知识和规则。它们可以作为辅助GUI代理的额外输入。

在这里插入图片描述

3.2、基于(M)LLM的GUI智能体分类

如图1所示,我们从多个维度总结了现有的工作。因此,本文根据输入模式和学习模式的差异对现有工作进行了分类。

(1)不同输入模式的GUI代理

LLM-based:通常需要一个GUI感知器将GUI转换为基于文本的输入。例如,Li等人(2020)将屏幕转化为一系列对象描述,并应用基于Transformer的方法来进行动作映射。问题的定义和数据集催生了更多的研究。Wen等人(2024a)进一步将GUI转换为简化的HTML表示,以确保与基础模型的兼容性。通过结合GUI表示和特定于应用的知识,他们构建了Auto-Droid,一个基于现成的LLMs(包括在线GPT和设备上的Vicuna)的GUI代理。

MLLM-based:利用先进的多模态大型语言模型(M)LLMs来增强对GUI的理解和任务执行。一些研究(You et al., 2024;Zhang et al., 2021;Lee et al., 2023a;Wang et al., 2021)集中在GUI理解上。例如,Pix2struct (Lee et al., 2023a) 使用基于ViT的图像编码-文本解码架构,先在Screenshot-HTML数据对上预训练,再针对特定任务进行微调。这种方法在四个基于网络的视觉理解任务中表现出强大的性能。类似地,Screen Recognition (Zhang et al., 2021) 提出了一种方法,通过大量的人工注解来标记iOS UI,将移动应用UI转换为元数据。数据用于训练一个设备上的目标检测模型,用于检测用户界面,并生成可访问的元数据,屏幕阅读器可以使用这些元数据。这项工作生成了一个包含4068个iPhone应用的77637个截图的数据库,这些截图都有完整的手动注解。Screen2words(Wang et al., 2021)是一种新颖的方法,用于将用户界面屏幕封装到一致的语言表示中,它基于transformer编码器-解码器架构。编码器包括一个用于APP描述或结构化数据的语言编码器和一个用于编码UI截图的ResNet编码器。解码器是一个transformer解码器,用于生成表示。

利用MLLMs(多模态大型语言模型)的视觉理解能力,最近的研究(Wang et al., 2024a; Li and Li, 2023; Bai et al., 2021)探索了用于GUI设备控制的端到端框架。例如,Spotlight (Li and Li, 2023) 提出了一种基于视觉-语言模型的框架,该框架在Web/移动数据上预训练,并针对UI任务进行微调。这个模型大大提高了理解UI的能力。通过将屏幕截图与用户焦点结合起来作为输入,Spotlight在多个UI理解任务上超越了先前的方法,显示了在下游任务中的显著提升。同样,VUT (Li et al., 2021) 被提出用于GUI理解和多模态UI输入建模,它使用两个Transformer:一个用于编码和融合图像、结构和语言输入,另一个用于连接三个任务头以完成五种不同的UI建模任务,并端到端学习多个下游任务。实验表明,VUT的多任务学习框架可以在UI建模任务上实现最先进的(SOTA)性能。UIbert (Bai et al., 2021) 关注异构GUI特征,并认为GUI中的多模态信息是自我对齐的。UIbert是一个基于Transformer的联合图像-文本模型,它在大规模无标签GUI数据上预训练,以学习UI元素的特征表示。在九个现实世界的下游UI任务上的实验表明,UIBert远远超过了最强的多模态基线方法。

为了提高性能,一些研究(Zhang et al., 2023; Rawles et al., 2024)利用了额外的不可见元数据。例如,AndroidWorld (Rawles et al., 2024) 创建了一个功能齐全的Android环境,包含现实世界的任务,用作评估GUI代理的基准。 他们提出了M3A,一个使用标记集(Yang et al., 2023)的零样本提示代理作为输入。对M3A变体的实验评估了不同输入模态——文本、屏幕截图和无障碍树——如何影响GUI代理的性能。

(2)不同学习模式的GUI智能体

基于提示的GUI代理:提示是一种有效的方法,可以构建代理,而无需额外的计算开销。鉴于GUI和任务的多样性,许多研究(Zhang等人,2023;Li等人,2024b;Wang等人,2024a;Humphreys等人,2022;Wen等人,2024b)使用提示来创建GUI代理,采用了CoT或ReAct风格。

最近的研究利用提示来构建和模拟GUI代理内的每个模块的功能,从而实现有效的GUI控制。例如,Yan等人(2023)介绍了MMNavigator,它利用GPT-4V进行零样本GUI理解和导航。这项工作首次展示了LLMs,特别是GPT-4V,在零样本GUI任务中的巨大潜力。人工评估显示,MM-Navigator在为iOS任务生成合理的行为描述和单步指令方面表现出色。此外,Song等人(2023)提出了一种使用顺序、类似人类的问题解决方法来与GUI交互的框架。该框架包括基于YOLO的UI理解模块来定位UI元素和文本,基于GPT-4V的任务规划模块来分解任务,以及将基于文本的动作映射到设备控制的执行模块。Wen等人(2024b)提出了DroidBot-GPT,它将应用的状态、历史操作和任务总结为提示,然后使用ChatGPT选择下一个操作。这种方法有效地整合了历史操作和用户UI,而无需对底层LLM进行任何修改。此外,Zheng等人(2024)提出了SeeAct,一个基于GPT-4V的通用网络代理。以屏幕截图作为输入,SeeAct生成动作描述,并通过设计的动作接地技术将其转化为可执行动作。

一些研究通过提示使GUI代理能够充分利用外部知识来完成GUI任务。AppAgent(Zhang et al., 2023)提出了一种多模态代理框架,用于模拟类似人类的手机操作。该框架分为两个阶段:探索阶段,智能体探索应用程序并记录其操作,以及部署阶段,这些文档指导智能体进行观察、思考、行动和任务总结。此外,基于先前工作的两阶段架构,AppAgent V2(Li et al., 2024b)改进了GUI解析、文档生成和提示集成。与前一版本不同的是,该方法通过整合光学字符识别(OCR)和UI元素检测工具,扩展了现成解析器的使用AppAgent V2在多个基准测试中表现出色。Wang et al. (2023) 使用纯上下文学习方法来实现大语言模型(LLM)与移动UI之间的交互。该方法根据发起者和目的将智能体与用户之间的对话分为四类,并设计了一系列结构化的CoT(Context of Thought)提示,以适应LLM执行移动UI任务。MobileGPT (Lee et al., 2023b) 模拟人类使用应用的认知过程,通过类似人类的应用记忆来增强基于LLM的智能体。MobileGPT使用随机探索器在多个应用上探索并生成与屏幕相关的子任务,并将它们保存为应用记忆。在执行过程中,会召回相关记忆来完成任务。Mobile GPT相比GPT-3.5和GPT-4基线实现了显著的提升。

SFT-based:微调使得LLM能够适应特定领域并更有效地执行定制任务。一些工作(Wen等人,2023;Furuta等人,2023;Sun等人,2022;Humphreys等人,2022;Lee等人,2023b;Kim等人,2023)使用SFT来允许GUI代理使用新的模态输入,学习特定流程或执行特殊任务。

例如,MobileAgent(Ding, 2024)从应用页面的DOM中提取信息,并结合标准操作程序(SOP)信息,对微调后的Llama 2进行上下文学习。Furuta等人(2023)提出了用于网页导航的WebGUM。WebGUM基于T5变换器编码器-解码器框架,输入为屏幕截图和HTML页面。WebGUM与经过指令优化的语言模型和视觉编码器一起进行微调,整合了时间和局部感知能力。它在大量示范语料库上进行训练。在MiniWoB上的评估结果显示,WebGUM在性能上超过了基于GPT-4的代理。张和张(2023)提出了Auto-UI,这是一个结合了图像-语言编码器-解码器架构和基于行动链的策略的多模态解决方案,该方案在AitW数据集上进行了微调。这个行动链捕获了之前的中间动作历史和未来的动作计划

在这里插入图片描述

4、基于MLLM的GUI代理的工业应用

Android版谷歌助手:通过说出像“嘿,谷歌,用Example App开始跑步”这样的短语,用户可以使用Android版谷歌助手启动应用、执行任务和访问内容。借助内置意图(BIIs),App Actions增强了应用的功能,将应用与谷歌助手集成。这使得用户可以通过语音查询来导航应用和访问功能,助手会解析这些查询,显示所需的屏幕或小部件。

苹果智能:在Apple硅芯片上运行设备端和云端模型,采用通用基础模型和针对如摘要和语气调整等任务的专业适配器模型。评估显示,设备端模型在性能上超过或与Mistral AI、微软和谷歌的小型模型相当,而服务器模型则超越了OpenAI的GPT-3并可与GPT-4匹敌。与ChatGPT等服务不同,苹果在其专有服务器上使用定制硬件运行云端模型。该系统通过在检测到不匹配时拒绝连接来确保软件完整性。

New Bing:微软的搜索引擎旨在为用户提供更直观、高效和全面的搜索体验。通过利用尖端的人工智能和机器学习技术,新必应超越了传统的关键词搜索,理解了用户查询背后的意义和上下文。这使得它能够提供更相关的结果、个性化的推荐以及增强的功能,如对话式搜索、图像识别和实时更新。凭借流畅、用户友好的界面和与微软其他服务的深度集成,新必应旨在重新定义人们在线查找信息的方式,使获取所需知识和洞察力更快、更容易。

Microsoft Copilot:一个在Microsoft 365应用程序中的AI工具,用于与GPT支持的建议、任务自动化和内容生成相结合以提高生产力。它通过实时洞察来增强工作流程、创造力和决策制定。

Anthropic Claude 3.5:引入了Computer Use,可以像人类一样进行计算机交互(查看屏幕、移动光标、点击按钮、输入文本),执行需要数十个、有时甚至数百个步骤才能完成的任务。

AutoGLM:旨在通过手机和网络等平台上的图形用户界面 实现自主任务完成。它的Android功能使其 能够自主理解 用户指令,无需手动输入,从而能够处理 如订外卖、编辑评论、购物和总结文章等复杂任务。

MagicOS YOYO:有4个主要功能的高级助手:自然语言和视觉处理、用户行为和上下文学习、意图识别与决策制定,以及无缝应用集成。它能理解用户习惯,自主执行请求,比如通过语音命令订购咖啡,通过导航各种应用和服务来实现。

5、挑战

基准与现实之间的差距:静态基准通常将执行路径存储为序列,目标是预测下一个动作。动态基准需要在模拟器或真实设备上执行,任务必须完全完成。 目前大多数训练和评估数据都是静态的,然而,由于基于MLLM的GUI代理需要解释广泛的环境状态,现有的数据集和基准 对于实际应用来说是不够的。

GUI代理自我进化:自我进化旨在实现GUI代理的自我闭环。Zhang et al. 介绍了探索的概念,通过自动记录操作和界面转换知识的文档来实现它。 Wen et al. 提出了一种自动化框架来探索路径,并将它们总结为UI转换图(UTG),以提高性能。

推理效率:人类对GUI的响应时间很敏感。通常,200毫秒以内的延迟是可以接受的,但超过这个阈值的延迟会迅速降低用户体验。对于当前的GUI代理,推理和通信延迟通常以秒为单位,导致用户满意度低下。因此,如何减少这些延迟,或者将(M)LLM直接部署到移动设备上,是一个紧迫的问题。

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

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

相关文章

(65)使用RLS自适应滤波器进行信道均衡的MATLAB仿真

文章目录 前言一、仿真说明二、码间串扰、色散、与频率选择性衰落1. 码间串扰(ISI)2. 信道的色散与码间串扰3. 减少ISI的方法 三、MATLAB仿真代码四、仿真结果1.发送16QAM信号的星座图2.信道的频率响应3.接收16QAM信号的星座图4.均衡后16QAM信号的星座图…

数据结构与算法:双指针之“最长连续不重复子序列” +位运算之“求二进制中第k个数字”、“求二进制表示”、“二进制中1的个数” +整数离散化

双指针: 简介 常见问题分类: 对于一个序列,用两个指针维护某一段特定的区间 对于两个序列,维护某种次序(譬如归并排序中合并两个有序序列的操作) 双指针算法的最核心点在于,将O(N^2)的暴力…

东方通TongWeb替换Tomcat的踩坑记录

一、背景 由于信创需要,原来项目的用到的一些中间件、软件都要逐步替换为国产品牌,决定先从web容器入手,将Tomcat替换掉。在网上搜了一些资料,结合项目当前情况,考虑在金蝶AAS和东方通TongWeb里面选择,后又…

kafka 的一些问题,夺命15连问后续

16、kafka是如何做到高效读写 因为kafka本身就是分布式集群,可以采用分区技术,并行度高 读取数据可以采用稀疏索引,可以快速定位要消费的数据(mysql中索引多了以后,写入速度就慢了) 可以顺序写磁盘&#…

使用 Node.js 了解 MVC 模式

模型-视图-控制器 (MVC) 模式是 Web 开发中最流行的架构模式之一。通过将应用程序划分为三个相互关联的组件(模型、视图和控制器),MVC 促进了有组织、可维护和可扩展的代码。Node.js 具有异步处理和庞大的生态系统&…

flink 同步oracle11g数据表到pg库

1. 关闭防火墙和selinux systemctl stop firewalld systemctl disable firewalld systemctl status firewalldvi /etc/selinux/config 修改为disabled2.安装java8 yum list java-1.8* yum install java-1.8.0-openjdk* -yjava -version3.下载和部署postgresql 看需求安装pg库…

catchadmin-webman 宝塔 部署

1:宝塔的php 中删除禁用函数 putenv 问题: 按照文档部署的时候linux(php) vue (本地) 无法访问后端api/login 的接口 。 解决办法: webman 没有配置nginx 反向代理 配置就能正常访问了

【go从零单排】接口(interface)和多态(Polymorphism)

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在Go语言中,interface 是一种重要的类型,用于定义一组方法…

第3章-需求 3.1需求的概念

产品开发的需求阶段是指立项完成之后,根据立项计划书的任务内容,对任务进行目标分解,形成需求文档,确认项目需求分解到相关责任人或部门。在需求阶段,需要一名具备专业技能和项目经验的工程师来把控整体需求和需求细节…

创新培养:汽车零部件图像分割

汽车零部件图像分割系统源码&数据集分享 [yolov8-seg-C2f-DCNV3&yolov8-seg-C2f-SCcConv等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glob…

关于git使用的图文教程(包括基本使用,处理冲突问题等等)超详细

目录 用户签名,初始化git git提交流程图 提交到本地库 版本穿梭 分支操作 分支合并冲突 团队协作 github的使用 推送代码 克隆 拉取代码 团队协作冲突 团队协作之分支管理 推送分支到分支: 拉去远程库分支到本地库: 本地删除远程分支&am…

Linux kernel 堆溢出利用方法(二)

前言 本文我们通过我们的老朋友heap_bof来讲解Linux kernel中off-by-null的利用手法。在通过讲解另一道相对来说比较困难的kernel off-by-null docker escape来深入了解这种漏洞的利用手法。(没了解过docker逃逸的朋友也可以看懂,毕竟有了root权限后&a…

【算法一周目】双指针(1)

目录 1.双指针介绍 2.移动零 解题思路 C代码实现 3.复写零 解题思路 C代码实现 4.快乐数 解题思路 C代码实现 5.盛水最多的容器 解题思路 C代码实现 1.双指针介绍 常见的双指针有两种形式,一种是对撞指针,一种是快慢指针。 对撞指针&#x…

VS2022项目配置笔记

文章目录 $(ProjectDir)与 $(SolutionDir) 宏附加包含目录VC目录和C/C的区别 $(ProjectDir)与 $(SolutionDir) 宏 假设有一个解决方案 MySolution,其中包含两个项目 ProjectA 和 ProjectB,目录结构如下: C:\Projects\…

万字长文解读机器学习——决策树

🌺历史文章列表🌺 机器学习——损失函数、代价函数、KL散度机器学习——特征工程、正则化、强化学习机器学习——常见算法汇总机器学习——感知机、MLP、SVM机器学习——KNN机器学习——贝叶斯机器学习——决策树机器学习——随机森林、Bagging、Boostin…

Kotlin约束泛型参数必须继承自某个父类

Kotlin约束泛型参数必须继承自某个父类 open class SuperData { }class DataA : SuperData {constructor() {println("DataA constructor")} }class DataB : SuperData {constructor() {println("DataB constructor")} }fun <T : SuperData> myfun(p…

Spring挖掘: (事务篇)

谈到事务,我们就绕不开事务的ACID四大特性,我们先来简单介绍一下何为事务 一. 概念 事务是数据库操作的最小工作单元&#xff0c;作为单个逻辑工作单元执行的一系列操作。这些操作作为一个整体一起向系统提交&#xff0c;要么都执行、要么都不执行。事务是一组不可再分割的操作…

Information Server 中共享开源服务中 kafka 的__consumer_offsets目录过大清理

1,11.7新版本的 IBM InfoSphere Information Server 将 Apache Kafka、Solr 和 ZooKeeper 安装在<ISHOME>服务层的 /shared-open-source 目录中。 默认情况下&#xff0c;共享开源中的 Kafka 对 __consumer_offsets 主题使用“压缩”日志清理策略&#xff0c;这可能会导…

Linux系统程序设计--2. 文件I/O

文件I/O 标准C的I/O FILE结构体 下面只列出了5个成员 可以观察到&#xff0c;有些函数没有FILE类型的结构体指针例如printf主要是一些标准输出&#xff0c;因为其内部用到了stdin&#xff0c;stdout&#xff0c;stderr查找文件所在的位置:find \ -name stat.h查找头文件所…

linux网络的基本设置

1、查看网络接口信息 ip a/ip addr #简略的查看网络接口信息 ifconfig #只显示当前活跃的设备 ifconfig -a #实现当前主机的所有网络设备&#xff0c;包括未运行的设备 rootubuntu1:~# ifconfig ens33:flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 设备名…