AndroidGen:无需人工标注,构建安卓智能体

大模型向量数据库云通信

picture.image

将大模型以 Agent 形式更好地应用于移动设备,一直是智谱探索的重要方向之一。

然而,高质量数据源的匮乏是这一方向的核心挑战。由于场景多样、复杂任务数据收集困难以及数据过滤等问题,目前在真实环境中大规模收集高质量移动设备 Agent 数据仍是一大难题。

为解决这一问题,我们在 AutoGLM 项目中开发了 AndroidGen 框架。该框架能够在数据稀缺的情况下,增强基于大语言模型的 Agent 能力,同时可收集人类任务轨迹,并基于这些轨迹训练语言模型,从而开发出无需人工标注轨迹的 Agent。

在 AndroidWorld、AitW 等主流的评测集上进行的测试表明, AndroidGen 框架可以显著提升 LLM 执行复杂任务的能力。

picture.image

图|AndroidWorld 上流行 Agent和人类的成功率。

一、AndroidGen 框架

与传统对话数据集相比,移动设备 Agent 的数据收集有挑战:

  • 场景多样性:不同场景差异显著,对大语言模型(LLM)的泛化能力要求极高。因此,任务收集需覆盖多种场景与功能。
  • 复杂任务数据收集:复杂任务涉及多步骤与多要求,数据收集需强大规划与精准执行能力,这不仅增加成本,还降低完成率。
  • 数据过滤:为确保数据质量,需细致检查环境与操作,确保完全符合任务描述,这一过程既具挑战性又耗时,进一步增加了总支出。

为了应对这些挑战,我们在 AndroidGen 中引入了四个模块:ExpSearch、ReflectPlan、AutoCheck 和 StepCritic:

  • ExpSearch:通过检索已完成的类似轨迹,使 LLM 能够进行上下文学习,从而提升 Agent 的能力,并助力其实现从简单任务到复杂任务的泛化。
  • ReflectPlan:对当前环境进行自我反思并更新计划状态,增强 Agent 的长期推理能力。
  • AutoCheck:主动验证每个 Agent 操作的有效性,降低因操作失误导致任务失败的风险。
  • StepCritic:将任务分解为多个子目标,并提供逐步轨迹评估,为模型优化提供细粒度标签。

picture.image

图 | AndroidGen 框架概述。

整个流程分为三个阶段:

  • 准备阶段(preliminary): ExpSearch 从数据库中检索最相关的类似任务和轨迹,并将其输入 Agent。

  • 任务执行阶段(task execution): ReflectPlan 评估进度并更新计划。随后,Agent 根据环境、计划和检索示例生成操作。AutoCheck 对这些操作进行验证,成功则执行,失败则重新生成。

  • 更新阶段(update): StepCritic 对轨迹进行精细评估,并根据评估结果更新数据库。

二、构建 Android Agent

AndroidGen 框架集成了现有的 LLM,无需提前训练即可直接作为 Android Agent 使用。

1、数据收集

为了高效生成大量高质量的 Android 浏览轨迹,我们利用 AndroidGen 构建了数据构建管道。整个数据收集流程包括以下阶段:

picture.image

图|AndroidGen 数据构建流程

第一步:任务制定。我们利用 GPT-4o,根据 AndroidWorld 中的指令生成了约 300 条任务指令。为了防止数据泄露,我们在训练过程中没有使用奖励信号或黄金标签。

第二步:Agent 采样。我们利用 AndroidWorld 和 GPT-4o 对每个任务的轨迹进行采样。

第三步:轨迹记录。在采样过程中,我们部署了一个记录器,用于记录每一步的环境和操作信息。这一步骤对于构建可复现的 Android 导航轨迹至关重要。

第四步:轨迹评估。完成每项任务后,我们使用 StepCritic 对记录的轨迹进行评估。StepCritic 列出了任务的每个子目标以及为实现这些目标所采取的相应步骤。如果每个子目标都已完成,则认为任务已完成。

第五步:轨迹增强。其主要目的是扩充高质量数据集。

通过整合不同来源的原始任务和增强任务,我们构建了一个包含 1000 多个轨迹的数据集。

2、模型训练

在训练阶段,我们采用了 LoRA 技术,针对自动构建的数据集,对 GLM-4-9B 和 Llama-3-70B 进行了微调,得到一个 Android Agent 模型。

值得注意的是,这种方法无需人工标注轨迹。我们通过将轨迹中的每一步作为独立样本进行训练,充分利用了数据集中的信息。

为了提高部署效率,我们还将规划和执行步骤混合起来进行微调,这使得 LLM 能够同时具备规划和执行的能力。

3、实验结果

我们选择两个基准以及主流应用来测试 AndroidGen的效果,

picture.image

AndroidWorld是一个用于模拟 Android 设备交互环境的基准测试平台,旨在评估 Agent 在 Android 生态系统中执行任务的能力,通过模拟真实用户操作场景来测试和提升模型的导航、决策和任务完成性能。

在 AndroidWorld 基准测试中:

  • AndroidGen 显著提升了相同基础模型 Agent 的能力。与 M3A 和 SeeAct 相比,其性能提升更为显著。
  • AndroidGen + GPT-4o 的平均得分达到了 46.8,远超其他组合。
  • 值得一提的是,模型参数更小且开源的 GLM-4-9B + AndroidGen 的平均得分,甚至超过了模型参数更大且闭源的 GPT-4o + M3A。

在AitW 和主流应用的评测中,也可以看到类似的大幅度性能提升:

picture.image

AitW(Android in the Wild)是基于谷歌发布的同名大规模数据集进行的性能评估。AitW 数据集包含 715,142 个操作序列,涵盖 30,378 个独特指令,覆盖四个 Android 版本(v10-v13)和八种设备类型,旨在测试 Agent 对自然语言指令的理解和在真实设备环境中的交互能力。评测任务包括多步任务(如使用 Google 应用、安装应用、网络购物等)和单步任务,挑战模型在不同设备、不同版本和未见过的指令下的鲁棒性。

picture.image

我们还选择了八款全球流行的移动应用程序进行评估,包括 Google Maps、X、YouTube、Spotify、Chrome 等。我们在模拟器上预先安装了这些应用程序。对于需要登录的应用程序,我们使用统一的预注册账号提前完成登录操作。

三、不足与展望

尽管 AndroidGen 在实际应用中表现出色,但仍有很大的改进空间。在后续的工作中,我们将在性能、效率和安全性等方面继续完善 AndroidGen。

1、性能

尽管 AndroidGen 的任务完成率较高,但其性能仍有提升空间。语言 Agent在处理视觉相关任务时表现欠佳,这凸显了整合视觉模型来增强其能力的必要性。

此外, Agent在处理复杂交互场景(如跨应用任务和计数场景)时仍面临挑战。在推理过程中引入大规模自适应推理搜索策略,可能是提升其复杂规划能力的有效途径。

2、效率

尽管 AndroidGen 能够完成许多用户委托的任务,但由于系统和模型规模较大,其执行效率仍有待提升。

未来,我们将专注于提高小模型在特定环境中的运行效率。小模型作为执行器表现良好,因为它们只需按照既定指令完成操作。然而,作为规划器时,模型需要更强的推理和泛化能力,这通常需要更大规模的模型。

3、安全性

安全是人工 Agent 系统在实际部署中面临的关键挑战。随着 LLM 能力的拓展,其可执行任务已超出文本输出范畴,涵盖处理用户账户信息、发表声明甚至进行交易等高风险操作。因此,防范这些操作中的潜在风险至关重要。

目前,我们正在开发一个更全面的自动检查模块。该模块作为分类器,能够识别并防止错误操作,并在用户明确许可的情况下,对高风险操作进行验证。


picture.image

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
VikingDB:大规模云原生向量数据库的前沿实践与应用
本次演讲将重点介绍 VikingDB 解决各类应用中极限性能、规模、精度问题上的探索实践,并通过落地的案例向听众介绍如何在多模态信息检索、RAG 与知识库等领域进行合理的技术选型和规划。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论