来自《Large Language Model-Brained GUI Agents: A Survey》综述总结
这篇文章要解决的问题是如何利用大型语言模型(LLMs)来增强图形用户界面(GUI)自动化代理的能力。具体来说,研究如何通过LLMs的解释复杂GUI元素和基于自然语言指令自主执行动作来实现更智能、更灵活的自动化。
该问题的研究相关工作包括早期的基于脚本或规则的方法、近年来引入的机器学习和计算机视觉技术、以及最近的大型语言模型在GUI自动化中的应用。
利用大型语言模型(LLMs)来增强GUI自动化代理的方法:
-
架构和流程:一个基本的LLM驱动GUI代理的架构,包括操作环境、提示工程、模型推理、动作执行和内存管理五个主要组件。操作环境负责感知当前环境状态,提示工程构建输入提示以指导LLM进行推理,模型推理生成计划和动作,动作执行模拟用户操作,内存管理用于跟踪多步骤任务的状态。
-
平台特定感知:针对不同平台(移动设备、Web、桌面操作系统),代理使用不同的工具和技术来感知环境状态。例如,移动设备使用Accessibility API,Web使用Selenium,桌面操作系统使用Windows UI Automation。
-
提示工程:提示工程是关键步骤,涉及将用户请求、环境状态、可用动作等信息整合成一个结构化的输入提示。公式:Prompt=User Request+Agent Instruction+Environment States+Action Documents+Demonstrated Examples+Complementary Information
-
模型推理:模型推理部分将结构化提示输入到LLM中,生成计划和动作。LLM可以生成多种类型的输出,包括规划、动作和补充信息。
- 动作执行:动作执行部分将推理结果转化为具体的用户界面操作,如点击、输入文本、滚动等。代理还使用各种工具和技术来增强其操作能力,如API调用和AI工具。
关键问题及回答
问题1:LLM-brained GUI代理在架构和流程上有哪些关键组件?它们各自的作用是什么?
LLM-brained GUI代理的架构包括五个主要组件:操作环境、提示工程、模型推理、动作执行和内存管理。
-
操作环境:负责感知当前环境状态,包括通过截图、控件属性和UI元素树等方式获取GUI的视觉和结构信息。
-
提示工程:将用户指令和环境数据整合成结构化输入,确保LLMs能够理解任务需求并生成合适的动作。提示包括用户指令、环境状态、动作文档、示范示例和补充信息等。
-
模型推理:通过LLMs生成计划和动作。推理过程包括规划和动作推断两个主要步骤。规划部分将长期任务分解为可管理的子任务,并使用链式思维(CoT)等方法进行规划;动作推断部分则将规划结果转化为具体的动作序列。
-
动作执行:将推理结果转化为实际的动作,这些动作可以是标准的UI操作、原生API调用或AI工具的使用。通过这些动作,代理能够在GUI环境中执行复杂的任务。
-
内存管理:对于多步任务的执行至关重要。短期记忆(STM)用于存储当前任务的相关信息,而长期记忆(LTM)则用于存储历史任务数据和策略。通过内存管理,代理能够在多步任务中保持连续性和一致性。
这些组件共同确保LLM-brained GUI代理能够高效、准确地执行复杂的GUI自动化任务。
问题2:LLM-brained GUI代理在数据收集和预处理方面有哪些具体的方法和步骤?
- 数据收集:
-
用户指令:可以通过人工设计、现有数据集或LLM生成。人工设计的指令需要确保覆盖各种实际应用场景,现有数据集可以提供初始的指令样本,而LLM生成则可以扩展指令的多样性和复杂性。
-
环境感知:包括GUI截图、控件属性和UI元素树等。截图可以通过屏幕捕捉工具获取,控件属性和UI元素树则可以通过专门的工具和库提取。
-
任务轨迹:需要记录代理执行任务过程中的每一步操作,包括点击、输入、滚动等,以生成完整的任务轨迹。
- 数据预处理:
-
数据清洗:去除重复、无效或错误的数据,确保数据的准确性和一致性。
-
去重:识别并消除数据集中的重复项,避免对模型训练造成干扰。
-
格式化:将数据转换为适合模型训练的格式,如统一的数据结构和编码方式。
-
数据增强:通过变换、扩充和裁剪等手段增加数据集的多样性和复杂性,提高模型的泛化能力。
通过这些数据收集和预处理步骤,LLM-brained GUI代理能够获得高质量、多样化的训练数据,从而提升其在复杂GUI环境中的表现。
问题3:LLM-brained GUI代理在模型推理和动作执行方面有哪些创新的技术和方法?
- 模型推理:
-
规划和动作推断:将长期任务分解为可管理的子任务,并使用链式思维(CoT)等方法进行规划。动作推断部分则将规划结果转化为具体的动作序列。
-
多模态处理:结合文本和图像信息,提升模型对复杂GUI环境的理解能力。例如,使用视觉语言模型(VLM)和视觉变换器(ViT)结合文本和图像数据进行推理。
-
强化学习:通过强化学习优化代理的动作选择和执行策略,特别是在需要多步操作和长期规划的任务中表现优异。
- 动作执行:
-
标准UI操作:包括点击、输入、滚动等基本的用户界面操作。
-
原生API调用:利用特定应用的API进行更复杂的任务操作,如文件操作、网络请求等。
-
AI工具的使用:集成OCR、图像生成、数据分析等AI工具,提升代理在复杂任务中的表现。例如,使用DALL·E生成图像,使用ChatGPT进行文本生成和问答。
这些创新的技术和方法使得LLM-brained GUI代理能够在复杂多变的GUI环境中实现高效的自动化任务,提升了代理的适应性和智能化水平。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。