OS-Genesis:通过反向任务合成自动化构建GUI轨迹

714 阅读6分钟
Paperarxiv.org/abs/2412.19…
HomePageqiushisun.github.io/OS-Genesis-…

Abstract

当前,基于视觉语言模型(VLMs)的GUI代理面临缺乏高质量操作轨迹的瓶颈。常规的数据采集方法,如人工标注或根据预定义任务合成数据,往往需要大量的资源,且难以保证数据质量,同时还面临数据多样性不足和与真实场景差距较大的问题。为此,本文提出了OS-Genesis,一个创新的GUI数据合成框架。该框架通过智能体与环境的交互,反向合成高质量的任务,以探索轨迹数据。此外,作者设计了轨迹奖励函数,以确保生成轨迹的质量。在动态测评环境中的结果表明,OS-Genesis相对现有的合成方法,在轨迹质量和多样性方面都表现出了显著的提升。

Motivation

基于VLMs的GUI Agents在自动化处理计算机任务上展现了巨大的潜力,为了自动完成GUI任务,一个智能体需要具备三个关键的能力:

  1. 理解用户的意图。
  2. 对任务进行规划。
  3. 执行动作。

而提升这些能力的核心是高质量的轨迹数据。理想的GUI智能体的轨迹应该包含上图所示的内容:

  1. high-level 指令。
  2. 一系列 low-level 的单步指令。
  3. 动作。
  4. 状态,即环境中的各种信息。

然而,收集此类轨迹数据并非易事。现有的任务驱动方法通常依赖于预定义任务,面临着人工标注过程费时且劳动密集的挑战。而基于模型的合成方法则严重依赖于预定义任务,且难以确保生成任务的质量。因此亟需一种自动化构建高质量GUI轨迹数据的方法来推动GUI Agents的发展。

OS-Genesis

受到人类学习操作GUI应用的启发,作者提出基于“交互驱动”的方法OS-Genesis,这是一个合成高质量多样化GUI操作轨迹的自动化pipeline,无需人工参与或预定义任务。

OS-Genesis的工作流程如下:

  1. 通过Rule-based的方式在动态环境中(如安卓虚拟机或网站)模拟点击、输入等操作,收集执行动作前后的状态,并生成一组三元组(<Screen1, Action, Screen2>)。
  2. VLM基于这些三元组生成低阶任务,如“打开日历APP”,然后模拟人类与应用交互的方式联想生成更高阶的任务,如“在日历中添加提醒:今天发朋友圈”。
  3. 基于生成的高阶任务让Agent在动态环境中进行探索,从而收集到大量多样化且与环境高度一致的任务数据。

受限于动态环境的不稳定性和智能体的较弱的agentic能力,基于高质量的指令也未必能够获得完整的轨迹数据,为此,作者引入了一个轨迹奖励模型来保证合成得到轨迹的质量。作者认为不完整的轨迹仍然具备增强智能体GUI能力的价值,因此和二元评估的方法不同,作者将奖励分数设置为1-5的范围,从完整性和一致性两个角度对轨迹给定相应的分数,最后根据分数按权重采样轨迹数据用于训练,整个过程的算法如下所示:

Experiment

实验在mobile和web端两个setting下进行,涉及静态环境和动态环境的评测。为了验证OS-Genesis的有效性,作者分别用OS-Genesis收集到的数据和任务驱动、任务驱动+Self Instruct收集到的数据对开源的VLMs进行训练,在同等数据量下对比评测的结果。

Self Instruct方法是常见的扩充指令数据的方法,利用SOTA语言模型对现有的数据进行增强,虽然能够快速获得大量指令数据,但是往往重复率高,多样性不够,且与真实环境存在gap。

实验结果如下:

实验结果表明,作为一种创新的基于交互式轨迹收集策略,OS-Genesis显著优于其他任务驱动方法。尤其在动态评测环境AndroidWorld中,OS-Genesis的性能超过其他方法的两倍,体现了其方法的巨大优势。此外,在OOD(Out-of-Distribution)场景下的AndroidControl评测中,OS-Genesis还展现了出色的泛化能力,能够有效应对未见场景的挑战。

Analysis

在分析部分,作者从四个角度对OS-Genesis的性能进行了探讨:

  1. 合成的数据真的足够多样吗?
  2. TRM真的有效吗,不完整的轨迹能用吗?
  3. Scaling轨迹数据真能提升Agentic能力吗?
  4. 我们离真实的人类数据还有多远?

对于第一个问题,作者采用Sentence-BERT对指令和轨迹分别进行了表征,并计算不同表征之间的平均余弦距离,结果如下:

OS-Gensis在指令和轨迹上都表现出高度的多样性,有趣的是,虽然人工标注指令多样,但是轨迹却不足够多样,这表明人类倾向依赖熟悉的动作来执行。

对于第二个问题,作者加入了如下数据设置来进行比较:

  1. 数据不过RM进行训练。
  2. 只保留5分的轨迹进行训练。

整体来说,OS-Genesis的采样策略是更为合理的,只保留5分的轨迹虽然在high-level上略微受益,但是在low-level任务上却做的不够好,这也是追求数据质量带来的取舍。

对于第三个问题,作者做了scaling law的实验,结果如下:

可以看到,随着轨迹数据的增加,模型的Agentic能力在不断上升,但是轨迹数量到达1000之后有点饱和的趋势,这是因为在AndroidWorld中,只有20个app用于评测,更多的轨迹数据只会导致模型过拟合。

对于第四个问题,作者将OS-Genesis的数据与AndroidControl中人类标注的数据分别从指令层面和轨迹层面进行了对比,结果如下:

左边的结果表明,即使是人类标注的指令,其性能可能也不如OS-Genesis的指令,这主要有两个因素:

  1. 预定义的任务可能与环境不一致。
  2. 模型在理解人类指令时有偏差。

而OS-Genesis以单步指令为基础,渐进式生成任务,更适合无监督的探索和适应。

右边的结果说明从轨迹层面来说,OS-Genesis显著缩小了与人工标注的差距,能够达到人类轨迹数据的80%的性能,并且其中的gap更多是轨迹探索时模型在理解指令上的偏差。

Conclusion

本文提出了OS-Genesis,一个数据合成管道,通过创新的“交互驱动”方法合成高质量的GUI轨迹数据,为GUI智能体的发展提供了坚实的支持。在具有挑战性的动态环境评测和多角度的消融实验中,OS-Genesis的生成数据质量得到了充分验证。OS-Genesis为生成高质量的GUI代理训练轨迹数据提供了一个富有前景的方向,推动了该领域向实现真正数字化自动化的目标迈出了重要一步。