一句指令帮你操作手机,最新多模态手机助手Mobile-Agent来了!
项目:https://github.com/X-PLUG/MobileAgent 论文:https://arxiv.org/abs/2401.16158v1
多模态agent时代已经到来,目前已有不少有趣的应用,今天来介绍一个用多模态agent实现手机操作助手的工作《Mobile-Agent: Autonomous Multi-Modal Mobile Device Agent with Visual Perception》,通过纯视觉方案实现AI操作手机。
所谓手机操作助手,即用户输入指令,agent自动完成一系列手机上的操作,例如下面的这几个例子:
用浏览器查询比赛结果并写一个新闻
在TikTok刷短视频并且评论
在YouTube搜索视频并且评论
Mobile-Agent是如何完成这些任务的?下面将详细介绍方法。
操作空间
我们首先介绍Mobile-Agent的操作空间。为了便于将文本描述的操作转化为屏幕上的操作,Mobile-Agent生成的操作必须在一个定义好的操作空间内。这个空间共有8个操作,分别是:
为了能够实现将操作输出到手机屏幕,我们针对需要定位的两个操作:点击文本和点击图标设计了输入参数。Mobile-Agent在使用这两个操作时,必须输出括号内的参数。这个参数将用于下面介绍的操作定位。
操作定位
在大多数情况下,MLLM已经具备输出正确操作的能力,这体现在提供手机截图和用户指令后,这些模型往往能够生成正确的操作。然而,虽然MLLM可以产生正确的操作,但当要求MLLM输出这些操作将要在屏幕上发生的位置时,MLLM往往无法提供准确的坐标。即使是GPT-4V,也无法将某个图标或文字在屏幕上的坐标准确输出。
为了实现定位,如上图所示,我们针对文本和图标设计了两个模块。首先是文本识别模块,Mobile-Agent借助OCR工具来定位出指定文本。如果指定文本在屏幕中多次出现,则会将这些区域裁剪出来并绘制检测框,OCR工具返回的多个区域将会以多图输入的方式重新做一次选择。
随后我们介绍图标识别模块。Mobile-Agent首先借助检测模型,使用检测词“图标”将屏幕中所有图标区域裁剪出来,随后根据Mobile-Agent提供的图标描述,利用CLIP计算这些裁剪区域于描述的相似度,并选择最高的区域作为点击的坐标。
自我规划
Mobile-Agent以迭代方式完成每一步操作。在迭代开始之前,用户需要输入一个指令。我们根据指令生成整个流程的系统提示。在每次迭代开始时,Mobile-Agent会获取手机屏幕的截图,通过观察系统提示、操作历史和当前屏幕截图,输出下一步操作。如果Mobile-Agent输出的是结束,则停止迭代;否则,继续新的迭代。Mobile-Agent利用操作历史记录了解当前任务的进度,并根据系统提示对当前屏幕截图进行操作,从而实现迭代式自我规划流程。
自我反思
在迭代过程中,Mobile-Agent可能会遇到错误,导致无法完成指令。为了提高指令的成功率,我们引入了一种自我反思方法。这种方法将在两种情况下生效。第一种情况是生成了错误或无效的操作,导致进程卡住。当Mobile-Agent注意到某个操作后截图没有变化,或者截图显示了错误的页面时,它会尝试其他操作或修改当前操作的参数。第二种情况是忽略某些复杂指令的要求。当通过自我规划完成所有操作后,Mobile-Agent会分析操作、历史记录、当前截图和用户指令,以确定指令是否已完成。如果没有,它需要继续通过自我规划生成操作。
实验结果
下表中展示了Mobile-Agent的评测结果。其中SU代表指令是否完成,PS代表正确操作占所有操作的比例,RE代表Mobile-Agent和人类完成指令时分别用了多少步,CR是Mobile-Agent能够完成的操作占人类操作的百分比。在3种指令上,分别达到了91%、82%和82%的成功率,在完成度上,3种指令都达到了90%以上,并且Mobile-Agent可以达到90%人类的效果。值得注意的是,虽然PS平均只有85%左右,但是在总共的33个任务上,Mobile-Agent能够完成28个,这也说明了自我反思的重要性,即使会出现错误操作,也能够及时发现并纠正,最终完成任务。
中文能力
下面两个例子展示了中文场景下的表现。虽然GPT-4V在中文识别上还有待加强,但是在文字不多的简单场景下Mobile-Agent也可以完成任务。
E N D 文案:王君阳 排版:辛梓源 责任编辑:桑基韬,黄晓雯