摘要
近年来,基于视觉语言模型(VLM)的移动人工智能代理越来越受到关注。 这些工作通常利用在通用领域数据上预训练的VLM作为基础,并在基于指令的移动数据集上对其进行微调。 然而,通用预训练数据中移动UI的比例非常低。 此外,通用预训练任务并未特别考虑移动UI的特性。 因此,直接将这些预训练模型应用于移动UI指令微调将无法获得期望的性能。 在本文中,我们提出了一种用于中文UI操作的MobileVLM。 在通用预训练模型的基础上,我们实施了两个额外的预训练阶段,并通过四个特定任务来增强UI内部和跨UI理解。 此外,我们从头开始构建了一个大型中文移动UI语料库,名为Mobile3M,以弥补相关数据的不足。 除300万个静态UI页面外,它还包含由真实世界UI转换动作形成的有向图结构。 实验结果表明,MobileVLM在内部测试集和公开移动基准测试中均表现出色,优于现有的VLM。
1引言
手机在日常生活中被广泛使用,移动平台上的 AI 代理正受到行业和学术界的关注 Ding (2024); Yang et al. (2023). 由于纯文本 LLM 在理解用户界面 (UI) 元素和页面结构方面的局限性 Hong et al. (2023),最近发布的移动 AI 代理主要由视觉语言模型 (VLM) 驱动 Baechler et al. (2024); You et al. (2024); Lee et al. (2023). 这些工作通常使用 VLM 作为基础模型,然后在基于指令的移动数据集上对其进行微调以进行领域适应。 结果,它们在页面导航方面表现出色,并可以提供 UI 功能的粗略摘要。
但是,这些 VLM,如 GPT-4V OpenAI (2023)、CogVLM Wang et al. (2023) 和 Qwen-VL Bai et al. (2023a),通常使用大型通用数据集,例如 Laion-5B Schuhmann et al. (2022)、Coyo Byeon et al. (2022),进行预训练。 这些数据集中移动 UI 页面的比例非常低,导致数据集的整体图像特征与移动特定数据集的特征有很大差异。
此外,通用预训练任务没有特别考虑这些 VLM 的移动 UI 特征。 通用预训练任务,例如图像描述和视觉问答,主要关注图像的整体信息,而移动 UI 任务需要捕获更多细粒度的细节,例如布局和元素。 结果,这些 VLM 缺乏 UI 内部信息。 同时,这些任务只关注图像内的内容,而忽略了图像之间的关系。 即使对于图 2 中的一些多轮导航任务,其交互轨迹也形成链式结构,这仍然无法完全涵盖真实应用程序中大量页面的 UI 间关系。 直观地说,应用程序的所有 UI 页面应该形成图结构。 因此,这些 VLM 也缺乏 UI 间的信息。
为了解决这些问题,如图 1 所示,我们提出了两个额外的移动预训练阶段和四个具体的移动任务,以增强对 UI 内和 UI 间理解的理解。 在第一阶段,实施了 3 个 UI 任务来增强模型对 UI 内内容的细粒度理解。 在第二阶段,引入了动作预测任务来预测连接两个页面的动作,从而增强 UI 间理解。 基于此训练框架,我们提出了 MobileVLM,它利用 Mobile3M 中一致的移动数据进行预训练和微调。 这是一种 VLM,可以同时理解 UI 页面内的细粒度元素信息以及 UI 页面之间的转换关系。
为了解决缺乏移动预训练数据的问题,我们创建了 Mobile3M,这是一个大型数据集,专注于第三方中文应用程序。 具体来说,我们选择了 49 个流行的应用程序,并与每个 UI 元素进行交互,收集交互轨迹。 如图 2 所示,每个应用程序的所有交互轨迹都组合成一个有向图,其中每个节点代表一个 UI 页面,每条边代表一个转换动作。 最终,Mobile3M 包含数百万个 UI 页面、XML 文档以及用户交互引起的页面更改。
总体而言,我们的工作有以下四个主要贡献:
2相关工作
2.1移动 UI 数据集
表 1 提供了多个移动 UI 数据集的比较。 表格的顶部是几个“点”数据集。 这些数据集中的每个数据实例只包含一个页面,以及不同的细粒度任务和相应的答案。 Rico Deka 等人 (2017) 是一个大型 Android UI 数据集,已被广泛用作 UI 建模研究的主要数据源。 UIBert Bai 等人 (2021) 发布了从 Rico 扩展的两个新数据集。 Ferret-UI You 等人 (2024) 使用 UI 检测模型 Zhang 等人 (2021b) 来注释 Android 和 iPhone 屏幕中的细粒度元素。 但是,这些数据集只关注单个页面内的元素和布局,因此难以捕获用户使用应用程序的完整过程。
为了更好地反映用户行为,发布了几个“链接”移动 UI 数据集 Sun 等人 (2022); Deng 等人 (2024); Burns 等人 (2021),如表 1 底部所示。 这些数据集中的每个“链”数据都包含一系列动作-UI 页面。 UI 页面包括屏幕截图和结构化文档。 AITW Rawles 等人 (2023) 是最大的 UI 控制数据集之一,包含 5 个子集和 715,000 个情节。 Auto-UI Zhan 和 Zhang (2023) 进一步过滤了 AITW 数据集中的 GoogleApps 子集,留下 152,000 个情节。 然而, 这些数据集只提供页面和 OCR 文本,缺少结构化文档,这使得 VLM 模型难以学习对齐图像和文本模态的能力。 如图 2 所示,与链式数据集相比,Mobile3M 的图结构能够更好地捕获应用程序中不同页面之间的关系。
2.2移动视觉语言模型
最近,一些基准 Rawles 等人 (2023);Wen 等人 (2023);Shaw 等人 (2023);Yan 等人 (2023) 被提出用于评估页面导航和手机操作。 MM-NavigatorYan 等人 (2023) 和 AppAgent Yang 等人 (2023) 都是基于 GPT-4V 的代理,用于执行页面导航任务。 CogAgentHong 等人 (2023) 微调了视觉语言模型 CogVLMWang 等人 (2023),仅使用屏幕截图作为输入即可完成页面导航任务。 UI-VLMDorka 等人 (2024) 得益于 AutoUI 数据集,并利用一系列过去的屏幕截图作为输入。
3Mobile3M 数据集
在本文中,我们提出了 Mobile3M,一个大型数据集,专注于中文应用程序。 Mobile3M 共包含 20,138,332 个动作,涵盖 3,098,786 个屏幕截图和相应的 XML 文档。 这些数据被组织成 49 个大型有向图,每个图代表一个移动应用程序,其中 UI 页面作为节点,动作作为边。
3.1背景
UI 页面: 我们从 App Store† 中选择了 49 个中文应用程序,确保每个应用程序的下载量至少为 1000 万次。 应用程序安装在模拟器上并运行,我们使用 Appium† 收集 UI 页面。 UI 页面包含屏幕截图和 XML 文档。 XML 文档描述了 UI 页面的结构和内容,包括按钮和文本框等元素,以及边界框和层次树等布局信息。 附录中的图 11 显示了应用程序“QQMusic”的屏幕截图和 XML 文档示例。 XML 文档可以解析以生成元素列表。 如图 3 的任务 (c) 所示,每个元素包含名称和边界框。
(取消,[640,74][696,112])。
动作空间: 数据收集算法模拟了人们与智能手机交互的方式。 我们设计了三个基本操作:点击、滚动和输入。
点击(取消,[640,74][696,112])。
滚动([0,211][720,271],向上)。
输入(目的地,[84,57][568,129],北京)。
一个元素可能与多个操作交互。 如图 3 所示,此 UI 页面中的 38 个元素可以生成包含 55 个操作的操作空间。
3.2数据收集
受 APPAgent 杨等(2023) 的启发,我们使用随机游走算法来探索应用程序。 该算法迭代地与每个 UI 页面上的每个元素交互,并记录页面转换状态。 每个应用程序的探索结果可以用有向图表示,其中每个边表示一个操作,每个节点表示一个 UI 页面。 UI 页面的“操作轨迹”定义为从应用程序主页到该页面的最短操作序列。 轨迹中每个操作的 ID 结合起来创建该页面的唯一标识符,称为“页面名称”。 在图 2 中,该算法从“Baicizhan0”页面执行“click(Edit)”以进入“Edit”页面。 此操作的 ID 为 1,因此“Edit”页面的名称标识符被分配为 Baicizhan0_1。
由于来自现实世界应用程序的 UI 页面可能会随着应用程序的演变而改变。 在探索过程中,如果几天前存储的头部节点简单地近似于当前的头部节点,则 UI 更改可能会被误认为是边的操作,从而导致数据错误。 因此,对于每个页面,算法都会保存其整个“动作轨迹”中每个步骤的屏幕截图和 XML 文档。 以图 2 中的“Baicizhan0_1_25”为例,此节点包含 3 个 UI 页面、3 个 XML 文档和一个包含 2 个动作的“动作轨迹”。
我们采用广度优先方法 (BFS) 来探索应用程序。 与深度优先方法 (DFS) 相比,BFS 在探索新节点时更好地涵盖了应用程序功能,并缩短了动作序列。 如图 2 所示,算法将首先探索“Baicizhan0_10”而不是“Baicizhan0_1_25”。 面向任务的探索方法 Yang et al. (2023) 在很大程度上依赖于 VLM 的性能。 但是,当前的 VLM 可能成本高昂,并且在第三方应用程序中表现不佳。 此外,面向任务的方法可能会导致一些不常用的页面和应用程序功能被忽略。
3.3方法优化
构建 Mobile3M 数据集的目标是探索应用程序的所有功能,旨在尽可能发现新的页面和动作。 对于平均动作空间为 50 的应用程序,四个交互式动作将把应用程序的探索空间扩展到 6,250,000 个页面,其中包含许多重复项。
为了提高探索效率,我们提出了“唯一页面”机制。 每次探索新页面时,我们都使用 BM25 Robertson et al. (2009) 来检索当前应用程序图中与页面 XML 文档最接近的 5 个节点。 算法将新页面与这五个页面中的每一个进行比较,以确定它们是否是相似页面。 相似系数的阈值是 Element Diff<5 & Pixel Diff <30%。 这里,Element Diff 是两个 UI 页面之间不同元素的数量,Pixel Diff 是两个屏幕截图之间的像素差异。 如果在当前图中找不到类似页面,则新页面将被视为唯一页面并添加到应用程序图中。 如图 2 所示,点击“Baicizhan0_1_24”上的“后退”按钮,生成的“Baicizhan0_1_24_113”和“Baicizhan0”是等效页面。 我们在图中从前一个页面“Baicizhan0_1_24”到类似页面“Baicizhan0”添加一条有向边。 该算法不会将“Baicizhan0_1_24_113”视为一个新的可探索节点。
该机制的优势有三:1. 这大大减少了每个应用程序的探索空间。 以“ctrip”为例,我们的探索过程产生了187,079个UI页面,平均步骤数为6.5。 如果没有“唯一页面”机制,这种规模的页面甚至无法涵盖4步探索的所有可能性。 2. 这将树结构探索结果转换为图结构。 通过点击“编辑”、“确定”和滚动,不同的页面可以到达“Baicizhan0_1”。 这有助于代理了解不同UI元素的功能。 3. 这有助于防止循环动作序列的发生。 “唯一页面”机制可以检测和修剪它们。
为了平衡数据集中不同动作的分布,在随机漫步期间,我们优先考虑输入动作。 我们为每个应用程序提供10个相关关键词。 执行输入操作时,算法可以随机选择一个关键词输入。 对于滚动操作,算法可以选择从“上、下、左、右”滚动方向。
3.4数据集统计
在选定的 49 个应用程序中,我们确保 AppStore 中的每个主要类别至少包含 2 个应用程序。 图 4 显示了 Mobile3M 数据集的数据分布。 数据集中最常见的应用程序类别是“旅行”、“生活”和“购物”。 如图所示,Mobile3M 涵盖多个类别,每个类别的數據量相对平衡,确保数据集的多功能性和多样性。
4模型
如表 3 所示,除了包括一般预训练和移动指令微调的标准微调架构外,我们还额外包含了两个阶段的移动数据预训练和四个移动预训练任务。
4.1预训练
阶段 1: 在预训练的第一阶段,我们的主要目标是增强 VLM 对 UI 页面内信息的理解。 我们构建了以下三个任务来预训练我们的模型:
1. 元素列表生成: 此任务要求模型识别页面中的所有交互式元素。 它需要 OCR 和定位能力来识别文本及其边界框。 此任务为后续任务中的定位和交互提供了基础元素。
2. 元素定位 Li 等人 (2021): 此任务的目标是使模型能够识别和定位页面中的元素。 给定元素描述,模型需要确定其边界框。 我们在每个页面上随机抽取五个元素进行定位训练。
3. 动作空间生成: 此任务要求模型从 UI 页面生成所有候选动作。 基于提取的元素,模型需要分析元素类型:可点击、可输入和可滚动。 此任务对于第二阶段的动作预测任务至关重要。
第二阶段:1. 动作预测 在第二阶段预训练中,我们使用动作预测任务来增强 VLM 理解两个页面之间关系的能力。 预期输出是从当前页面导航到下一页所需的动作。
此任务旨在增强模型预测页面关系和学习对应动作预期结果的能力,为下游任务提供更准确的动作推理。 在此任务中,模型的重点从 UI 内部的内容转移到应用程序内 UI 之间的复杂图结构。
4.2微调
1. 页面导航 在阶段 3 中,页面导航不再像阶段 2 中那样提供两页。 相反,它提供了一个页面以及相应的指令。 模型需要根据这些指令生成相应的操作。
2. VQA VQA 任务需要 VLM 根据屏幕截图回答问题。
在阶段 3 微调中,我们使用 Mobile3M 来构建自页面导航任务,以及用于页面导航任务的 Auto-UI 和用于 VQA 任务的 ScreenQA。 此阶段主要旨在将模型对 UI 内部元素的理解以及 UI 之间关系转化为实际的端到端任务完成和页面问答领域。
4.3模型架构
我们采用 Qwen-VL-Chat Bai 等人(2023b) 作为我们的基础模型,它包含一个大型语言模型:Qwen-7BBai 等人(2023a),一个视觉编码器:ViT-bigGDosovitskiy 等人(2020),参数为 19 亿,以及一个位置感知的视觉语言适配器 Zhang 等人(2021a),参数为 8000 万。 如图 5 所示,我们使用了一个三阶段训练方法,并在第一阶段冻结 Qwen-7B 的参数,并在第三阶段冻结 ViT 的参数。
5实验
5.1数据集和基准
我们通过从 Mobile3M 中选择数据构建了自己的基准,并另外选择了五个公开的中文基准。 具体来说,我们构建了以下两种类型的测试数据集:
我们从 mobile3m 中随机选择了 500 张屏幕截图,并让三名标注者为每张屏幕截图构建问答对,命名为 humanVQA 基准。
如表 2 所示,我们选择了 3 个移动基准,ScreenQA 和 Auto-UI 用于评估阶段 3 微调,以及 MoTIF 用于评估阶段 2 预训练。 我们选择了两个通用基准,ChineseOCRBench 和 RefCOCO,来衡量阶段 1 预训练中的一般能力损失。 更多详细信息可以在附录 A.2 中查看。
5.2评估指标
遵循先前的工作,我们使用了 3 个客观指标,没有使用额外的 人工评估。
SQuAD F1* 对于 OCR 和 VQA 任务,我们使用改进的 F1* 分数 来衡量 VLM 响应的准确性。 遵循 OCRBench,我们认为如果输出包含黄金答案,则响应正确。 只有在不满足此条件时,我们才会计算 F1 分数。 可以按如下方式计算 F1*:
IoU 交并比 Cheng et al. (2021) 是目标检测领域中最常用的指标。
动作准确率 我们遵循 Auto-UI 的方法来评估动作准确率。 具体而言,对于点击操作,我们允许预测答案和黄金答案之间的 相对屏幕大小误差为 14%。 对于滚动操作,预测答案只需要与黄金答案位于同一轴上并 处于同一方向。 对于输入,我们只计算输入内容的 F1 分数。
5.3实现细节
实验设置 我们在 NVIDIA A100 GPU(80G×8)上训练了模型。 对于 Auto-UI 微调任务,类似于其官方方法,我们使用了 AITW 的 10% GoogleApps 数据,以节省 80% 的训练时间。 我们的超参数如下:学习率为 1e-5,批量大小为 4,第 1 阶段 预训练为 6000 步,第 2 阶段预训练为 7400 步。 在测试期间,所有未经微调的基线都提供了少样本指令。 更多细节可以在附录 A 中看到。 对于第一阶段的评估,我们采用了两个最先进的模型:GroundingDINOLiu 等人 (2023a) 和 Qwen-VL-Max。 对于第二阶段,我们选择了 Seq2Act 作为 MoTIF 上的最先进模型。 对于第三阶段,MobileVLM
数据处理 虽然 Mobile3M 是一个中文数据集,但在测试阶段,Auto-UI 和 ScreenQA 需要与它对齐。 因此,我们将它们的指令和答案翻译成中文。 此外,由于 Mobile3M 中的所有页面都统一尺寸为 720x1280,我们将 Auto-UI 和 MoTIF 的页面调整大小为 720x1280。 我们的预训练任务要求 VLM 根据指令描述检测物体,我们从 RefCOCO 中删除了包含单张图像中多个物体的测试用例,以避免歧义。
model (stage2) | Action Prediction | MoTIF | ||||
---|---|---|---|---|---|---|
IoU | Acc | IoU | Acc | Acc | IoU | |
InternVL | 0.02 | 9.17 | 0.02 | 10.12 | 78.40 | 9.32 |
Qwen-VL-Chat | 0.04 | 8.2 | 0.06 | 7.34 | 81.60 | 14.22 |
Qwen-VL Plus | 4.23 | 8.92 | 5.06 | 9.33 | - | - |
Qwen-VL Max | 10.06 | 17.32 | 12.62 | 19.69 | - | - |
GPT-4o | 2.46 | 31.23 | 3.04 | 35.07 | 93.62 | 56.40 |
Seq2Act | - | - | - | - | 99.20 | 66.40 |
MobileVLM | 35.85 | 49.34 | 9.80 | 25.87 | 99.60 | 40.32 |
5.4主要结果
如表 4 所示,MobileVLM 在所有任务中总体提升了 2.78%,并超越了 Auto-UI 的 SOTA 模型。 这表明两阶段预训练任务提高了模型在页面导航任务中估计预期动作的准确性。 值得注意的是,MobileVLM 尽管存在翻译信息丢失和缺少提示管道,但依然取得了这一成果。 MobileVLMseparate 由于不同任务的特征不同,可以阻碍同步优化,因此略微优于 MobileVLMunified。 在 Self-Navigation 中,我们的模型明显优于 GPT-4o 和 Qwen-VL-Max(+9.4%,+34.18%),这归因于在预训练和微调中始终如一地使用移动领域数据。 在 ScreenQA 任务中,MobileVLM 比 Qwen-VL-Max 提高了 14.34%,展示了优越的 UI 内部理解和文本提取能力。 MobileVLM 在没有针对 HumanVQA 任务进行特定微调的情况下,仍然比 Qwen-VL-Max 高出 10.73%,展示了其在移动领域 VQA 任务中的出色泛化能力。
5.5消融研究
虽然我们在第三阶段任务中超过了基线,但这可能是由于基础模型能力本身存在差异。 为了验证预训练效果,我们进行了两个消融实验:MobileVLM w/o Stage1&2,它直接在 Qwen-VL 上进行微调;MobileVLM w/o Stage2,它在第一阶段模型上进一步微调。 如表 4 第 4 节所示,与 MobileVLM w/o Stage1&2 相比,MobileVLM 在 Auto-UI、自导航和 ScreenQA 上分别取得了 4.79%、5.2%、18.84% 和 3.12% 的提升。 这表明两阶段预训练提高了模型的接地和导航能力。 与 MobileVLM w/o Stage2 相比,MobileVLM 在 Auto-UI 上提高了 4%,在自导航的 IoU 指标上提高了 12.6%(从 35.89% 提高到 48.49%)。 这突出了第二阶段动作预测任务在增强模型导航能力方面的重要性,通过加强模型对 UI 之间关系的理解来实现。 此外,我们发现第二阶段预训练对 VQA 任务的影响很小,因为这些任务更多地依赖于模型对 UI 内部元素的理解。
5.6预训练结果
第一阶段结果 MobileVLM 继续基于 Qwen-VL-Chat 进行两阶段预训练。 如表 5 所示,与 Qwen-VL-Chat 相比,MobileVLM 在 SeenAPP 上取得了显著的改进,分别提高了 76.03%、54.7% 和 55.11%。 此外,与最佳基线 Qwen-VL-Max 相比,MobileVLM 分别提高了 44.6%、40.73% 和 28.64%。 这表明 MobileVLM 在提取和定位元素方面具有优越的能力。 与 Qwen-VL-Chat 相比,MobileVLM 在 UnseenAPP 上分别提高了 35.65%、26.95% 和 27.81%,并且在元素列表和动作空间准确率指标方面略胜于 Qwen-VL-Max 和 GPT-4o,仅在地标任务的 IoU 指标方面略微落后于 Qwen-VL-Max。 然而,由于 UnseenAPP 和 SeenAPP 之间在元素分布和布局方面存在显著差异,MobileVLM 尽管超过了最佳基线,但无法将从 SeenAPP 中学到的能力完全迁移到 UnseenAPP。 由于第二阶段未使用通用训练数据,因此 MobileVLM 在 RefCOCO 和 ChineseOCRBench 等通用基准测试中,相对于当前最先进的模型 GroundingDINO 和 Qwen-VL-Max 而言较弱。 有关详细分析,请参考附录 D。
第二阶段结果 如表 6 中 SeenAPP 结果所示,与 Qwen-VL-Chat 相比,MobileVLM 分别提高了 35.81% 和 41.14%,并且分别优于 Qwen-VL-Max 和 GPT-4o 25.79% 和 18.11%。 这表明该模型可以更好地理解 SeenAPP 中页面之间的图结构关系。 我们的模型与 Qwen-VL-Chat 相比表现出一定程度的改进,但由于 UnseenAPP 和 SeenAPP 之间页面图结构存在显著差异,因此在识别这些应用程序页面位置关系方面,它不如 GPT-4o。 然而,我们观察到 MobileVLM 在 IoU 指标方面超过了 Qwen-VL-Chat 26.1%,并在 MoTIF 上的 acc 任务中表现出优异的泛化能力 (99.6%)。
6结论
我们提出 MobileVLM,一个专门针对移动 UI 操作的中文视觉语言模型。 它在多个移动公共基准测试中超越了开源移动 VLM 和更大的闭源通用模型。 同时,我们构建了第一个大型中文移动数据集 Mobile3M,其中包括针对移动场景的多个预训练和微调任务。 我们希望这项工作能够推动移动领域视觉语言模型的发展,并为未来的移动代理研究提供参考。
限制
我们的训练数据包括 49 个常用的应用程序,但这可能仍然无法完全涵盖日常生活中的所有场景,因为 Android 应用市场非常庞大。 在未来的工作中,我们将继续扩展应用程序的数量。 此外,由于某些应用程序具有额外的付费内容,例如 VIP,因此我们的模型可能没有完全学习到它们的所有功能。 我们的数据也可能存在一些时间限制,因为随机的应用程序更新会导致页面和操作跟踪发生变化。