文章首先说明VLM用来做UI agent的越来越多了,而且流程其实都一样:拿个预训练好了的VLM,在UI数据集上微调一下就OK。但问题在于这种数据集一般非常小,完全不能与预训练的数据集规模相比。于是作者整了一个足足有3M条轨迹的巨大数据集来做这个工作。
作者认为一般的图像预训练集中在大体的内容,而UI任务集中在结构与元素,重点不同。而且这些任务普遍关注单图,忽略多图之间的联系。而且很多UI数据集都是用链状的结构组织数据的,(比如说AITW,一条一条序列相互独立)真正用来表示UI之间关系的图的应该是网状的。
“为了解决这些问题,如图1所示,我们提出了两个额外的移动预训练阶段和四个特定的移动任务,以增强UI内部和UI之间的理解。在第一阶段,实现了3个UI任务,以增强模型对UI内内容的精细理解。在阶段2中,引入动作预测任务来预测连接两个页面的动作,从而增强UI间的理解。”
“基于这个训练框架,我们提出了MobileVLM,它利用来自Mobile3M的一致移动数据进行预训练和微调。这是一个VLM,可以同时理解UI页面内的细粒度元素信息和UI页面之间的转换关系。”
主要贡献如下:
“
我们提出了MobileVLM,这是中国第一款移动VLM,对移动数据进行了持续的预训练和微调。
•我们提出了Mobile3M,这是第一个拥有300万个UI页面和真实世界交互的大规模中国移动数据集,为每个应用程序组织成有向图。
•我们定义了两个额外的预训练阶段和四个基于UI的预训练任务,涵盖了UI内部和UI之间的理解。
•实验结果表明,MobileVLM在ScreenQA(+14.34%)和我们的评估数据集(+34.18%)上的表现优于现有的SOTA VLM。
”
数据集既有截图又有xml(描述控件等元素)
自动截图算法为random walk,记录UI界面之间的跳转关系。然后后面又说是广度优先?总之广度比深度好,充分寻找app功能。还说任务导向型探索太依赖模型性能,而当前的模型都八行。
探索过程中会有很多重复内容:
“对于一个平均动作空间为50的应用程序,四个交互式动作将把应用程序的探索空间扩展到6250000个页面,其中包含许多重复内容。”
为了解决这个问题,每次探索到一个新页面就会去检查和原有页面相似度,相似度高的被视为一个。
数据集差不多就这样。
模型训练的预训练则分为两个阶段:单UI与多UI,单UI就是理解单张图里面的UI,分辨有哪些,在哪里,能否点击,滑动等。多UI就考给两张图,问要做啥才能从一张图到另一张图。
微调阶段就是上真家伙了,开具一张图与要求,问模型接下来干什么,或者是问一个有关当前UI的问题。