
操纵Android应用程序的大规模语言模型!DroidBot-GPT,一個新的工具來自動執行任務。
三个要点
✔️ 我们提出了DroidBot-GPT,它使用大规模语言模型来自动实现与Android应用程序的交互。
✔️ 它在由17个不同应用程序组成的33个任务中取得了约39%的完全成功率和67%的部分成功率。
✔️ 更高效的应用程序开发方法和针对特定任务的人工智能模型有望通过自动化工具提高便利性。
DroidBot-GPT: GPT-powered UI Automation for Android
written by Hao Wen, Hongming Wang, Jiaxuan Liu, Yuanchun Li
(Submitted on 14 Apr 2023)
Subjects: Software Engineering (cs.SE); Artificial Intelligence (cs.AI)
Comments: Published on arxiv.
code:![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
概述。
用户界面交互自动化是机器人流程自动化、软件测试和个人助理等广泛应用所需的技术。其中,"自然语言 "自动化尤其受到关注,因为它能够显著改善用户体验。
本文提出的DroidBot-GPT是一种使用大规模语言模型(如GPT)与Android移动应用程序进行自动交互的工具。当用自然语言向DroidBot-GPT输入一个特定的任务时,它会自动操作应用程序来完成该任务。例如,在下面的例子中,如果用自然语言输入任务 "创建一个名为Alice的联系人,号码为1234567,电子邮件地址为alice@github.com 并保存",它将自动操作用户界面并创建联系人。
什么是DroidBot-GPT?
下图显示了DroidBot-GPT的概况。首先,DroidBot获取应用程序的信息(GUI info),并用自然语言进行描述。接下来,它结合应用程序状态(GUI状态)、操作历史(操作历史)和任务(任务描述)创建一个提示,并将其输入到ChatGPT(LLM)中。然后,ChatGPT生成相应的操作(操作选择),并通过DroidBot操作应用程序(操作)。
此时,将应用程序的图形用户界面信息(GUI信息)转换为自然语言,以便大规模语言模型能够处理这些信息,需要一些巧妙的方法。将应用程序的图形用户界面信息转换为自然语言的最简单方法是输入图形用户界面的结构树描述,但包括各种元素的所有位置关系和属性(颜色、形状、大小等)。然而,这种方法可能会产生成千上万的单词,对于大规模语言模型而言,这些单词很可能包含不必要的信息或超出可输入字符数的限制。因此,本文提出了一种方法,将其表示为人类可以阅读和理解的简单明了的句子。
下图显示了如何实现这一点。首先,从应用程序的屏幕中提取用户可以看到的所有元素(按钮、文本框等),以及每个元素支持的操作(点击、文本输入等)。接下来,我们为每个元素生成 "视图<名称>...可以做 "的句子。这将每个元素及其功能用一句话表达出来。最后,在顶部添加文本 "当前状态具有以下用户界面视图和相应的操作,括号中为操作id",将这些元素合并为一个句子。
应用程序中的操作分为两大类:选择(choosing)和编辑(editing)。与选择相关的操作包括点击、滚动、检查等。在描述图形用户界面元素的提示中,每个操作后面都有一个数字,ChatGPT通过选择这个数字来指定操作。例如,如果提示说视图 "Sort by "是可以点击的,那么它将被描述为 "a view 'Sort by' that can be clicked (0);"。如果将这句话输入到ChatGPT中并得到 "0 "的响应,则执行点击 "Sort by "按钮的操作。
与编辑(EDITING)相关的操作包括在文本框中输入句子。用户也可以输入用户名、密码或句子,但这些都不能作为选择进行编码。对此,本文设计了一种两阶段解决方案。如果大语言模型选择编辑文本框,DroidBot-GPT会发送另一个提示。这就是'我应该向文本'<文本内容>'的视图输入什么? DroidBot-GPT将在文本框中输入对此的响应。
输入大规模语言模型的提示不仅包括上述图形用户界面描述和操作,还包括以前的操作历史,以避免重复操作。下图显示了一个提示示例。
这里,音乐播放器应用程序被设置为播放白噪音*5分钟。操作步骤是启动名为 "Noise "的应用程序,选择 "Sleep Timer"(屏幕a),然后选择标有 "+ 5m "的项目(屏幕b)。提示将在蓝色方框中描述任务说明,在绿色方框中描述图形用户界面元素,在黄色方框中描述之前的操作历史,在紫色方框中描述下一步需要输入的内容(单选或输入语句)。这将使您更容易看到各个部分是如何组合成整个提示的。
(*) 白噪声是噪声的一种。它是一种噪音,如换气扇或电视沙暴发出的 "澎湃"、"洗牌 "和 "潺潺 "声,据说可以提高注意力、放松身心和获得良好睡眠。
DroidBot-GPT的性能如何?
该评估针对从F-Droid下载的17个广泛使用的Android应用程序进行,F-Droid是一个为Android提供免费开源软件(FOSS)的应用程序商店。在评估性能时,为每个应用程序设计了1至3个任务,每个任务通过图形用户界面由2至13个步骤组成。下表列出了具体的应用程序、基于这些应用程序的任务设计以及适当的操作步骤示例。
评估结果显示,13/33的DroidBot-GPT完全完成,所有任务的平均完成率为66.76%。下表显示了不同难度任务的平均完成情况,相对简单的两三步任务更容易完成。
下表还显示了各类任务的完成水平。记录 "和 "生活 "等类别的应用程序的平均成就水平略低。这可能是因为这些任务通常涉及键入操作,用户可能不太了解图形用户界面元素之间的关系,可能会错过输入信息的适当位置。
与以往专为特定应用程序或操作而设计的研究相比,DroidBotGPT不需要在图形用户界面中提供额外的训练数据,通过利用多功能、大规模的语言模型,可以高效地处理各种类别的任务。与传统方法相比,只需最少的指令即可完成复杂的任务,实现了高度自动化。然而,如下图所示,存在无法处理的情况,例如未命名的图形用户界面元素,需要通过今后的研究进一步改进。
摘要
本文提出了第一个由大规模语言模型指导的Android应用自动化工具DroidBot-GPT。该方法提出了一种将图形用户界面和相应的操作空间转换为可由大规模语言模型解释的提示的方法。继2022年的ChatGPT之后,大规模语言模型的自动化以及由此带来的用户体验的改善预计将在未来的各个领域继续进行。
与本文相关的类别