https://arxiv.org/abs/2312.13771
https://github.com/mnotgod96/AppAgent
摘要与引言:
本文介绍了AppAgent,一种新颖的框架,利用多模态大型语言模型(LLMs)以类似人类用户的方式操作智能手机应用程序。与传统的智能助手(如Siri)不同,后者需要后端系统访问和功能调用,AppAgent 直接通过简化的人类操作(如点击和滑动)与应用界面互动。这种方法增强了安全性,扩大了适用范围,并确保了对用户界面(UI)变化的适应性,无需广泛的再训练或后端集成。
主要贡献:
方法论:
实验与结果:
结论:
AppAgent 提供了一种安全、适应性强且灵活的方法,利用多模态LLMs操作智能手机应用,无需后端访问。其基于探索的学习策略使代理能够快速适应新应用,广泛的测试验证了其在多样化任务和应用中的有效性。未来的工作包括扩展操作空间以支持更复杂的交互,并解决当前的限制。
随着大型语言模型(Large Language Models, LLMs)的进步,智能代理(intelligent agents)已能够执行复杂任务。本文提出了一种新的基于LLM的多模态代理框架,专为操作智能手机应用程序而设计。我们的框架通过简化的动作空间,使代理可以模拟人类的交互方式,如点击和滑动来操作智能手机应用程序。这一创新方法无需系统后端访问,从而提升了其在各类应用程序中的适用性。我们的代理功能的核心在于其创新的学习方法。该代理通过自主探索或观察人类示范,学习如何导航和使用新的应用程序。这一过程生成了一个知识库,供代理在不同应用中执行复杂任务时参考。为验证代理的实用性,我们在10种不同的应用中进行了超过50个任务的测试,包括社交媒体、电子邮件、地图、购物和复杂的图像编辑工具。结果表明,我们的代理在处理多样化的高级任务方面表现出色。
大型语言模型(LLMs)的出现,如ChatGPT(OpenAI,2021)和GPT-4(OpenAI,2023),标志着人工智能和自然语言处理领域的一个重要里程碑。这些先进的模型代表了机器理解和生成自然语言能力的根本性变化,展现出以前无法实现的复杂性和多样性。LLMs作为不仅限于语言处理的智能代理而发展的趋势令人振奋,例如AutoGPT(Yang等,2023a)和MetaGPT(Hong等,2023)展示了LLMs在推理、规划和协作等高级认知功能任务中的实际应用。这些进展极大地扩展了LLMs的应用范围,超越了简单的语言任务,革新了技术和日常生活的各个方面。
然而,这些基于LLM的代理的一个关键限制是它们仅依赖文本信息。这一限制在过去制约了它们对环境的感知和交互能力。配备视觉能力的模型的引入(如GPT-4的最新版本)标志着一个关键突破。通过整合处理和解读视觉信息的能力,这些模型现在能够理解一些仅通过文本难以传达的环境特征。这一扩展功能使得LLMs能够解释上下文、识别模式,并响应视觉线索,从而提供更加全面和互动的用户体验。
在我们的研究中,我们专注于构建一个利用多模态大型语言模型视觉能力的多模态代理,以执行传统文本代理无法完成的任务。具体而言,我们探讨了一个有趣但具有挑战性的应用,即构建一个能够在移动操作系统中操作任意智能手机应用程序的代理。我们的方法显著不同于现有的智能手机助手(如Siri),这些助手通过系统后端访问和功能调用进行操作。我们的代理则通过点击和滑动图形用户界面(GUI)的低级操作,以人类般的方式与智能手机应用程序交互。该代理具有多项优势。首先,它不需要系统后端访问,从而具备跨多种应用的通用性。此外,这种方式提高了安全性和隐私性,因为代理不需要深入的系统集成。同时,通过在GUI层级操作,我们的代理能够适应应用界面的更改和更新,确保长期的适用性和灵活性。
然而,构建一个能够操作多种智能手机应用程序的多模态代理面临重大挑战。现有研究表明,适应当前模型进行具身任务需要大量的训练数据,收集用于训练的应用演示数据集是一个巨大的挑战。此外,不同的应用程序有独特的GUI,图标含义和操作逻辑各异,当前模型是否能够有效泛化到未见过的应用程序仍然是个未知数。
本文提出的多模态代理框架旨在像人类用户一样操作任意智能手机应用程序。该框架的学习包含一个探索阶段,代理通过一组预定义的动作自主与应用交互,并从交互结果中学习。这些交互被记录下来,以帮助代理导航和操作应用程序。通过观察少量的人类示范,这一学习过程可以加速。在这一探索阶段之后,代理可以通过咨询构建的文档,根据当前状态操作应用程序,无需调整LLMs的参数或为每个应用收集大量训练数据。
为验证其有效性,我们在10种不同的应用程序中进行超过50项任务的测试,涵盖社交媒体、消息传递、电子邮件、地图、购物,甚至复杂的图像编辑应用程序。定量结果和用户研究都显示了我们设计的优势,特别是在适应性、用户友好性和高效的学习及操作能力方面,展示了该代理在智能手机应用程序操作领域的潜力。
总之,本文的贡献如下:
ChatGPT(OpenAI,2021)和GPT-4(OpenAI,2023)的发展标志着自然语言处理领域的关键进展。与早期的大型语言模型(LLMs)不同,这些新模型(Touvron等,2023a,b;Zeng等,2022;Taori等,2023;Zheng等,2023)能够进行多轮对话,并展现出遵循复杂指令的卓越能力。GPT-4V(Yang等,2023b)中视觉能力的集成是进一步的里程碑,使得该语言模型能够处理和解读视觉数据。这一功能的加入拓宽了AI应用的潜在范围,使GPT-4能够执行多种任务,如问题解决、逻辑推理、工具使用、API调用和编程。最近的研究(Yang等,2023c;Yan等,2023)表明,GPT-4V可以理解各种类型的图像,包括流行智能手机应用中的简单用户界面(UI)。然而,当应用程序是新的且其UI不太典型时,依然会遇到挑战,这是我们工作要解决的主要问题之一。在来自工业界和研究界的开源努力中,LLaMA系列(Touvron等,2023a,b)是最受欢迎的开源模型,已被微调以获得对话能力,采用了类似ChatGPT的解码器架构(Taori等,2023;Zheng等,2023)。基于LLaMA,许多多模态LLMs,如LLaVA(Liu等,2023b,a)、ChartLlama(Han等,2023)和StableLLaVA(Li等,2023)也展示了与GPT-4V相似的视觉理解能力。然而,这些开源模型与GPT-4V之间仍存在性能差距,这表明在该领域还有进一步发展的空间。
利用LLMs执行复杂任务的趋势越来越受到关注。例如,AutoGPT(Yang等,2023a)、HuggingGPT(Shen等,2023)和MetaGPT(Hong等,2023)等项目展示了这种趋势。这些项目展示了LLMs从基础语言任务进化到执行需要更高认知功能的活动的能力,例如软件开发(Qian等,2023;Chen等,2021)和游戏(FAIR等,2022;Park等,2023;Xu等,2023)。在这个背景下,Yao等(Yao等,2023)提出了一种将推理和行动结合在一起的创新方法,显著增强了LLMs的决策和交互能力。基于LLM的代理被设计为利用LLM的高级语言和推理能力,与环境交互并进行操作(Liu等,2023c;Gur等,2023;Xie等,2023)。这包括执行需要理解上下文、做出决策和从交互中学习的任务(Xi等,2023;Hu和Shu,2023)。在需要人类般认知能力的应用中,这类代理尤为重要。
多模态LLM代理(Wang等,2023;Furuta等,2023;Brohan等,2022,2023;Reed等,2022)的出现进一步拓宽了LLM应用的范围。这些代理能够处理包括文本、图像、音频和视频在内的多种输入类型。对于基于LLM的代理而言,这种多样性尤其有利,使它们能够更有效地与环境交互并完成更复杂的任务,比如在物理世界中完成家务(Ahn等,2022)、通过过程工具生成3D资产(Sun等,2023),或同时掌握600多种跨不同领域的任务(Reed等,2022)。我们的研究贡献在于开发一个专注于操作智能手机应用程序的代理。该代理能够解释操作系统的截图,展示了其灵活性和适应性,使其在多种应用场景中成为一种宝贵的工具。
为了简化代理的操作,我们设计了一组预定义的基本动作,使代理无需精确的屏幕坐标即可进行交互。这些动作包括:
这些预定义的动作旨在简化代理的交互,特别是通过消除对精确屏幕坐标的需求,解决了语言模型在准确预测方面的挑战。
通过自主交互进行探索。探索阶段是我们框架的核心。在这一阶段,代理通过试错法学习智能手机应用程序的功能和特性。代理被分配一个任务,并开始自主与UI元素交互。它使用不同的动作,并观察应用界面的变化,以了解应用的工作方式。基于大型语言模型,代理试图通过分析每次动作前后的截图来理解UI元素的功能及特定动作的效果。这些信息被编入一份文档,记录了针对不同元素的动作效果。当一个UI元素被多次操作时,代理会基于过去的文档和当前观察对文档进行更新,以提高质量。为提高探索效率,当当前UI页面似乎与应用的主要任务无关(例如广告页面)时,代理会停止进一步探索UI元素,并使用Android系统的**Back()**功能返回到上一个UI页面。与深度优先搜索和广度优先搜索等随机探索方法相比,这种目标导向的探索方法确保代理专注于有效操作应用所需的关键元素。代理还利用LLM对用户界面已有的知识来提高探索效率。当代理完成指定任务时,探索阶段结束。
通过观察示范进行探索。另一种常用且更有效的探索方法是让代理观察人类的操作示范。这些示范为代理提供了应用高效使用的例子,尤其是在理解通过自主交互可能难以发现的复杂功能时。这种方法中,人类用户操作应用,代理仅观察并记录人类使用的元素和动作。此策略缩小了探索空间,避免代理与无关的应用页面交互,使其比自主交互方法更简洁高效。
在探索阶段之后,代理已具备执行复杂任务的经验。当接收到任务时,代理遵循分步的方法,每一步包括访问当前UI的截图和一个动态生成的文档,详细说明UI元素的功能及其在当前页面的动作效果。每一步提示还包含所有可用动作的详细解释。在每一步中,代理首先对当前UI进行观察,然后说明其对任务和当前观察的思考过程。接着,代理通过调用可用的函数来执行动作。每次动作完成后,代理会总结当前步骤的交互历史和采取的动作,并将此信息纳入下一步的提示中,提供一种记忆机制。这种细致的步骤增强了代理操作的可靠性和可解释性,从而促进了更明智的决策。当代理判断任务已完成时,部署阶段结束,代理通过执行**Exit()**动作退出流程。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!