疏影横斜水清浅,暗香浮动月黄昏。小伙伴们好,我是微信公众号"小窗幽记机器学习"的小编卖龙袍的汉室宗亲。
延续前文:
GUI Agent综述:9部曲揭秘下一代人机交互的前世今生-1:总览
今天这篇小作文主要介绍铸就GUI Agent的 三大技术基石 。后续还有以下7个章回,感兴趣的小伙伴可以留意下:
- GUI Agent综述:3-GUI Agent的发展历史
- GUI Agent综述:4-GUI Agent关键组件及其最新进展
- GUI Agent综述:5-细说GUI Agent主流框架-百家争鸣
- GUI Agent综述:6-GUI Agent训练数据收集
- GUI Agent综述:7-基于 LLM 的 GUI Agent 模型优化
- GUI Agent综述:8-GUI Agent的评测
- GUI Agent综述:9-GUI Agent应用与未来
更多智能体(Agent)相关可以订阅此专题: 智能体(Agent) 专题
LLM驱动的GUI Agent的发展得益于三大领域的进展:
- 大型语言模型(LLMs)在自然语言理解和代码生成方面的强大能力,构成了此类Agent的核心智能基础;
- 扩展LLMs能力的相关Agent架构和工具,弥合了语言模型与物理环境之间的鸿沟,使其能够产生实际影响;
- GUI自动化领域提供的一套成熟的工具、模型和方法论,为GUI Agent的功能奠定了坚实的基础。
这些组成部分共同推动了基于LLM的GUI Agent的诞生。以下各小节将对这些领域进行简要概述,为后续讨论奠定基础。
3.1 大型语言模型:基础与能力
语言模型的研究历史悠久且成果丰硕,其起源可追溯到早期的统计语言模型和较小规模的神经网络架构。基于这些基础概念,近期的研究重点转向了基于Transformer结构的LLMs,例如生成式预训练Transformers(GPTs)。通过在大规模文本语料库上进行预训练,并显著扩大模型规模,这些模型验证了扩展规律(scaling laws),并在广泛的自然语言任务上展现出卓越的性能。除了模型规模的增长,这些LLMs还表现出更强的语言理解与生成能力,以及一些小规模语言模型所不具备的涌现特性。
早期的神经语言模型主要基于循环神经网络(RNNs)和长短时记忆网络(LSTMs),但在性能和泛化能力上均存在局限。Transformer模型的引入,以其注意力机制为核心,成为一个革命性的里程碑,确立了此后几乎所有LLMs所采用的基础架构。这一进展催生了多种模型结构的变体,包括仅编码器模型(如BERT、RoBERTa、ALBERT)、仅解码器模型(如GPT-1、GPT-2)和编码器-解码器模型(如T5、BART)。2022年,基于GPT-3.5的ChatGPT发布,作为一款具有突破性的LLM,彻底改变了人们对语言模型能力的认知。此后,许多先进的LLM相继问世,包括GPT-4、LLaMA-3和Gemini,推动了该领域的快速发展。如今的LLMs用途广泛,其中许多模型不仅能够处理多模态数据,还可以执行从问答到代码生成等多种任务,已成为各种应用中不可或缺的工具。
LLMs的出现还带来了一些显著的高级特性,这些特性极大地扩展了其应用范围,使得以自然语言驱动的GUI Agent成为可能。这些进步包括:
- Few-Shot Learning :也被称为“上下文学习”,LLMs能够在推理阶段通过少量示例学习新任务,而无需重新训练。这一能力对于GUI Agent在不同环境中实现跨场景泛化至关重要。
- Instruction Following :经过指令微调(instruction tuning)后,LLMs展现出显著的指令执行能力,能够对新任务进行强大的泛化。这使得LLMs能够准确理解面向GUI Agent的用户请求,并遵循预定义目标。
- Long-Term Reasoning :LLMs具备规划能力,可以通过将复杂任务拆解为可管理的步骤来解决问题,常用的技术如“链式思考”,即思维链(CoT)推理技术。这一能力对GUI Agent尤为重要,因为许多任务需要多步操作,并依赖可靠的规划框架。
- 代码生成与工具利用 :LLMs在生成代码和使用各种工具(如API)方面表现出色。这些能力至关重要,因为代码和工具是GUI Agent与环境交互的核心工具集。
- 多模态理解 :高级LLMs能够整合额外的数据模态(如图像)到其训练过程中,演变为多模态模型。这一能力对GUI Agent尤为重要,因为它们需要解析GUI截图以理解并操作图形界面。
这些进步奠定了基于LLM的GUI Agent的技术基础,使得以前难以实现的任务成为可能,并为进一步提升智能化、人机交互能力和跨领域应用提供了强大的支持。
3.2 大型语言模型Agent:从语言到行动
传统的人工智能Agent通常专注于增强特定能力,如符号推理或在某些特定任务(如围棋或国际象棋)上达到顶尖水平。相比之下,大型语言模型(LLM)的出现彻底改变了人工智能Agent,为其提供了自然语言界面,赋予了类似人类的决策能力,并使其能够执行各种任务并在不同环境中产生实际影响。在LLM Agent中,如果LLM构成了GUI Agent的"大脑",那么其附带的组件则扮演着"眼睛和手"的角色,使LLM能够感知环境的状态,并将其文本输出转化为可操作的步骤,从而产生实际影响。这些组件将LLM从被动的信息源转变为可以代表用户执行任务的交互式Agent,从而重新定义了LLM的角色,使其不仅是纯文本生成模型,还是能够驱动行为和实现特定目标的系统。
在GUI Agent的背景下,Agent通常通过屏幕截图和小部件树(widget trees)来感知GUI状态,然后执行操作以模仿用户行为(例如鼠标点击、键盘输入、手机上的触摸手势)。由于任务可能是长期的,因此通常需要有效的规划和任务分解,这带来了独特的挑战。因此,由LLM驱动的GUI Agent通常具有多模态能力、强大的规划系统、分析历史交互的记忆机制以及与环境交互的专用工具包。第5节将详细讨论这些针对GUI Agent量身定制的设计。
3.3 GUI自动化:工具、技术和挑战
自计算机图形用户界面(GUI)诞生之日起,GUI自动化就一直是研究和应用的重要领域。最初,GUI自动化的目标是提高软件测试效率,专注于模拟用户在图形应用程序中的操作,如点击、文本输入和导航,以验证功能。早期的GUI自动化工具旨在执行静态界面上重复的测试用例。这些方法简化了质量保证过程,确保了一致性并减少了人工测试时间。随着对数字解决方案需求的不断增加,GUI自动化已扩展到测试之外的其他应用领域,包括机器人流程自动化(RPA)和人机交互(HCI)。RPA利用GUI自动化在业务流程中复制人类操作,自动化例行任务以提高操作效率。同样,HCI研究也利用GUI自动化来模拟用户行为,实现可用性评估和交互研究。在这两种情况下,自动化都通过最小化重复性任务和提高系统适应性,极大地提高了生产力和用户体验。
传统的GUI自动化方法主要依赖于脚本编程和基于规则的框架。基于脚本的自动化利用Python、Java和JavaScript等语言在程序层面控制GUI元素。这些脚本在界面上模拟用户操作,通常使用Selenium等工具进行基于Web的自动化,或使用AutoIt和SikuliX等工具进行桌面应用程序的自动化。与此同时,基于规则的方法则根据预定义的启发式规则运行,使用规则根据位置、颜色和文本标签等属性检测并与特定GUI元素交互。虽然这些方法对于可预测的、静态工作流程非常有效,但它们难以适应现代GUI的可变性,在现代GUI中,动态内容、响应式布局和用户驱动的变化使得维护一成不变的、基于规则的自动化变得极具挑战性。
计算机视觉(CV)已成为解释GUI视觉方面的关键技术,使自动化工具能够识别和交互屏幕上的元素,即使布局和设计发生变化。CV技术允许GUI自动化系统通过分析屏幕截图并识别感兴趣区域来检测和分类屏幕元素,如按钮、图标和文本字段。光学字符识别(OCR)进一步增强了这一能力,从图像中提取文本内容,使自动化系统能够准确解释标签、错误消息和表单说明。物体检测模型增加了系统的鲁棒性,使自动化Agent能够定位GUI元素,即使视觉布局发生改变。通过结合CV,GUI自动化系统在动态环境中实现了更大的弹性和适应性。
尽管取得了进展,但传统的GUI自动化方法在应对当代界面的复杂性和可变性方面仍显不足。如今的应用程序通常具有动态、自适应的元素,仅凭刚性的脚本编程或基于规则的方法无法可靠地实现自动化。现代界面越来越需要情境意识,例如处理屏幕文本、理解用户意图和识别视觉线索。这些需求暴露了现有自动化框架的局限性,以及对更加灵活、能够实时适应和基于上下文做出响应的解决方案的迫切需求。
大型语言模型(LLM)为解决这些挑战提供了一个有前景的方案。凭借其理解自然语言、解释上下文和生成自适应脚本的能力,LLM可以实现更智能、更灵活的GUI自动化。它们处理复杂指令和从上下文中学习的能力,使其能够弥合静态的基于规则方法与当代GUI动态需求之间的差距。通过将LLM与GUI Agent相结合,这些系统获得了根据当前界面状态实时生成脚本的能力,从而获得传统方法无法实现的适应性和复杂性水平。LLM和GUI Agent的结合为高级的以用户为中心的自动化范式铺平了道路,能够灵活响应用户请求,并与复杂、不断演进的界面无缝交互。