🌟
系统化训练和测试 Android autoAgent
在现代移动设备的迅速普及下,开发能够自主执行任务的智能代理变得越来越重要。这些代理不仅能理解和执行用户指令,还能通过复杂的交互完成诸如应用自动化、系统配置和信息获取等多样化的任务。由于 Android 系统在全球移动操作系统中的广泛应用,设计和训练 Android 代理以完成复杂任务已经成为人工智能领域的热门研究方向。
现有的工作主要集中在开发基于强大的闭源 LLMs 或 LMMs 的 Android 代理,这些代理利用强大的自然语言理解和推理能力来解析用户指令并执行任务。然而,训练和评估这些代理仍然面临许多挑战。大多数研究采用的环境是静态的,限制了代理的交互能力和泛化性能。例如,传统的基准测试依赖于设备状态匹配或特定任务序列,这种方法缺乏灵活性,无法充分评估模型应对真实世界动态任务的能力。
AndroidEnv 和其他仿真环境虽然提供了一些交互功能,但在重现性和多样性方面仍有改进空间。此外,最近的研究往往更关注闭源模型的表现,并通过提示工程(Prompt Engineering)或少量上下文学习(In-Context Learning)来优化它们的任务执行能力。这种方法虽然在短期内取得了一定进展,但仅在闭源模型进行研究,限制了研究人员对模型行为的深入理解和改进能力,阻碍了进一步的训练或强化学习的研究探索。
针对这些挑战,我们推出 AndroidLab,一个集成文本和图像模态操作环境、统一操作空间及可重现的基准测试的框架,为 Android 代理的研究和开发提供了强有力的支持。 具体的, AndroidLab包括:
- 标准化的多模态操作环境 AndroidLab 提供了一个兼容多种模型(包括 LLMs 和 LMMs)的操作环境,定义了统一的操作空间,使得不同模型之间可以公平比较。
- 全面且可重现的基准测试 我们设计了一个包含 138 项任务的基准测试,覆盖九个常见应用,任务类型包括操作任务和查询任务,涉及真实世界的复杂交互场景。为了保证结果的可重现性,我们在环境中使用固定的设备状态、离线测试和预定义答案。
- 高效的训练与优化工具 我们构建了一个 Android Instruct 数据集,结合自动探索与人工标注,生成高质量的操作数据,极大提升了开源模型在任务完成率和操作效率上的表现。通过指令调优,我们显著缩小了开源与闭源模型之间的差距,推动了开源解决方案的发展。
图:(a)AndroidLab的环境与评价基准 (b)闭源模型在Androidlab评价基准的表现
图:(a)训练数据收集流程 (b) 经过训练后,开源模型能力接近闭源模型
AndroidLab 标准化操作环境
AndroidLab 定义了一个标准化的操作环境,能够支持 LLMs 和 LMMs,在相同的操作空间内进行交互。为了满足不同模型的需求和等价比较,我们设计了以下两种操作模式:
XML 模式 :专为文本输入的 LLMs 设计,通过压缩 XML 信息传递界面状态,模型直接选择元素执行操作。这种方法优化了 XML 数据的压缩和解析流程,减少信息冗余,提高了交互效率。每个操作前后,我们通过解析 UI 树结构,确保操作的精确性和一致性。
SoM 模式 :针对 LMMs 的设计,采用 Set-of-Mark 方法,将屏幕截图与标记信息结合,模型选择带有编号的标记元素进行操作。每个可点击元素都有一个独特的标记编号,确保模型在多模态输入下能够精确地选取目标。SoM 模式为多模态模型提供了完整的视觉和文本上下文,优化了模型的任务执行能力。
我们也实现了两种基于更多推理的操作框架:
ReAct 框架: 基于逐步推理和操作输出。模型不仅输出操作,还展示中间推理过程。这一框架在复杂任务中表现优越,因为它鼓励模型先思考,再执行操作,减少了无效或错误步骤。
SeeAct 框架: 推理与操作分离,分两轮交互进行。第一轮模型生成详细的推理步骤,第二轮执行具体操作。这种框架在多模态环境中应用效果有限,但在特定任务中能够提升精度。
基准测试
任务设计与重现性
我们设计了一个覆盖九个常见应用的 AndroidLab 基准测试 ,共包含 138 个任务,覆盖多样化的实际使用场景。
每个任务都设计了多个子目标,以便细化任务评估。我们使用 XML 树结构匹配来验证每个子目标的完成情况,从而确保结果准确性和操作的高效性。所有任务均通过固定的设备状态、时间设置及应用使用记录保证重现性。
图:任务设计示例和任务类别分布图
评价指标
为精准评估代理的任务表现,AndroidLab 基准测试引入以下评价指标:
任务完成率(Success Rate, SR)
衡量代理是否完成任务,作为直接的任务完成指标。每个任务仅在所有子目标均成功完成时计为成功。
子目标成功率(Sub-Goal Success Rate, Sub-SR)
我们将任务拆分为多个子目标,逐步评估模型在每个步骤上的表现。
反向冗余率(Reversed Redundancy Ratio, RRR)
比较模型的操作路径与人类最优路径的长度,计算冗余操作的程度。该指标的数值越高,代表模型路径越接近最优路径,操作更高效。
合理操作比率(Reasonable Operation Ratio, ROR)
评估每次操作是否合理,无效操作(如点击无效区域)视为不合理。
Android Instruc指令数据集
为进一步增强模型在多模态与文本输入任务中的表现,我们创建了一个包含 726条操作轨迹和 6k 步骤的 Android Instruct 数据集。该数据集结合自动化探索与人工标注,确保覆盖范围广且操作路径清晰准确。
数据构建流程
数据集的构建包括以下步骤:
任务生成与扩展
初期使用学术数据集的任务指令和少量自行编写的种子进行生成,之后使用大语言模型自动扩展,确保指令多样性并覆盖常见应用场景。所有生成的任务均需人工审查,确保其可行性。
自动化探索
采用先进LLMs 和 LMMs 自动探索任务场景,模型在操作完成后输出“finish”,记录其完成的操作路径。我们使用奖励模型对这些路径进行筛选,剔除低效或错误操作。
人工标注与校验
采用专门的标注工具进行详细标注,记录每个操作的前后页面状态。标注过程包括:任务可行性审查、界面探索与操作记录、操作轨迹记录及交叉验证,确保标注的准确性和一致性。
图:Android Instruct 数据集统计信息,如任务步数分布、指令长度和常用词汇分布
实验与结果
图:主实验结果表,展示不同模型在 XML 和 SoM 模式下的成功率及操作效率
我们在多种开源和闭源模型上测试了 AndroidLab 基准,得到以下主要结果:
任务成功率与模型表现
XML 模式
在 XML 模式下,GPT-4-1106-Preview 表现最优,任务成功率(SR)高达 31.16%,而子目标成功率(Sub-SR)为 38.21%,显示出在处理文本输入任务时的出色表现。GPT-4o 在任务成功率上略低于 GPT-4-1106-Preview,但在操作路径的优化方面表现突出,其反向冗余率(RRR)达 107.45,显著减少了不必要的操作步骤。开源模型方面,Llama-3.1-8B-Instruct、GLM-4-9B-Chat 和 Qwen2-7B-Instruct 在微调后实现了明显提升,任务成功率分别从 2.17%、4.59% 和 4.35% 提升至 23.91%、21.01% 和 19.57%。
SoM 模式
在多模态的 SoM 模式中,GPT-4o 依然展现了最强的整体表现,任务成功率达到 31.16%,子目标成功率为 35.02%。Claude-3.5-Sonnet 在优化操作路径上超过了 GPT-4o,其反向冗余率(RRR)达到 113.40,显示出更高的任务执行效率。多模态开源模型如 Llama-3.2-11B-Vision-Instruct 和 Qwen2-VL-7B-Instruct,通过微调后,合理操作比率(ROR)分别提升至 92.57% 和 88.29%,操作更精准且冗余更少。
不同设备尺寸的影响
我们还在不同屏幕尺寸的设备上进行了性能测试,包括 Pixel 3a(小屏)、Pixel 7 Pro(标准屏)、Pixel 8 Pro(标准屏)和 Pixel Fold(大屏)。实验结果显示,代理在 Pixel 7 Pro 和 Pixel 8 Pro 等常规尺寸设备上表现最佳,成功率和操作效率都高于其他设备。而在 Pixel 3a 和 Pixel Fold 上,成功率明显下降,主要原因在于小屏设备需要频繁滚动,而大屏设备在横屏模式下增加了操作复杂性。
代理框架分析
我们对 ReAct 和 SeeAct 框架的效果进行了详细分析。在 XML 模式下,ReAct 框架显著提高了任务完成率,帮助模型更好地分步推理和操作,特别是在复杂任务中表现优越。然而,在多模态的 SoM 模式下,SeeAct 框架的效果有限,主要因为多模态输入在推理与操作分离过程中增加了难度。实验还发现,使用 ReAct 框架的模型在细化任务理解方面表现更佳,但操作效率稍有降低。
结论
我们提出了 AndroidLab,一个全面的 Android 代理开发与评估平台,集成操作环境和标准化基准测试,并通过 Android Instruct 数据集大幅提升了开源模型的表现。
实验结果表明,开源模型在经过指令调优后,可以显著缩小与闭源模型的性能差距。
Paper
https://arxiv.org/pdf/2410.24024
https://github.com/THUDM/Android-Lab