AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
2024-10-31,由清华大学和北京大学共同创建的AndroidLab数据集,为安卓自主代理的训练和评估提供了一个包含操作环境、行动空间和可复现基准的系统框架,这对于推动安卓代理技术的发展具有重要意义。
数据集地址:Android Instruct|Android自主代理数据集|移动操作系统数据集
一、研究背景:
随着自主代理与现实世界互动中的重要性日益增加,特别是安卓代理,已成为近期频繁提及的互动方式。然而,现有的安卓代理训练和评估研究缺乏对开源和闭源模型的系统性探索。
目前遇到困难和挑战:
1、训练和评估移动代理面临的挑战包括缺乏系统性的探索,以及对静态环境的依赖,这限制了代理的实际交互能力。
2、现有的基准测试缺乏对模型行为的系统性评估,限制了对模型行为的分析、洞察力的整合以及强化学习实验的有效进行。
3、缺乏统一的基准比较开源和闭源模型在不同模态下的表现,限制了提升开源解决方案的机会。
数据集地址:Android Instruct|Android自主代理数据集|移动操作系统数据集
二、让我们一起来看一下AndroidLab
AndroidLab是一个系统性的安卓代理框架,包括操作环境、行动空间和可复现基准。
包括预定义的安卓虚拟设备和覆盖九个应用的138个任务。通过使用预加载的应用程序操作历史和离线数据的安卓虚拟设备,AndroidLab确保了可复现性,并消除了外部网络或时间依赖。
AndroidLab构建 :
AndroidLab的构建涉及任务推导和扩展、自动探索以及手动注释。
通过学术数据集和手动编写的指令来种子任务生成,然后使用语言模型创建额外的任务,并通过审核添加到数据集中。自动任务探索使用LLMs和LMMs输出完成状态,初步使用手动选择来验证结果,后来用奖励模型替代。手动注释包括指令检查、初步熟悉、任务执行和交叉验证。
AndroidLab的特点:
1、支持大型语言模型(LLMs)和多模态模型(LMMs)在同一行动空间。
2、包括XML模式和SoM模式,确保不同观察模式下的动作一致性。
3、引入ReAct和SeeAct框架,允许代理逐步思考和执行任务。
4、提供了精确的任务完成和进度评估。
AndroidLab支持文本和多模态训练,通过在线注释工具收集操作记录,该工具使用ADB命令监控用户在手机上的交互,并在每个动作之前捕获屏幕截图和页面XML。
基准测试:
AndroidLab基准测试提供了一个确定性和可复现的评估平台,允许用户公平且具有挑战性地比较安卓代理的能力。基准测试包括操作任务和查询任务,以及基于设备和屏幕状态的任务完成评估系统。

AndroidLab 的环境和基准测试概述:我们为多模态模型 (LMM) 设计了 SoM 模式,为纯文本模型 (LLMs,确保相同的动作空间。我们还在这两种模式下实现了 ReAct 和 SeeAct 框架。根据环境,我们提出了 AndroidLab 基准测试。

Android Instruct 数据收集概述

Android Instruct 微调前后的成功率

任务示例以及 AndroidLab 基准测试中所有应用和子类别的分布情况。我们将每项任务分解为子目标并独立评估它们。只有当所有子目标都得到正确解决时,任务才被视为完成。

代理完成整个任务的所有子目标的示例。我们只介绍开始和结束步骤,以及代理完成每个子目标的步骤。我们必须记录每个子目标的完成状态。如果没有这些信息,我们可能无法从已完成页面的 XML 中获取详细信息,这可能会导致对任务的误判。


XML 和 SoM 模式的主要结果。SR、Sub-SR、RRR 和 ROR 分别代表成功率、子目标成功率、反向冗余率和合理运营率。对于所有这些指标,值越高意味着越好。-ft 表示微调模型。在每种模式下,Bold 表示最佳结果。如果 SR < 5,我们不会报告 RRR 评分

ReAct 和 SeeAct 框架对 SR 结果的影响。值得注意的是,在 XML+ReAct 模式下,模型性能得到了显著提高

不同模式的平均生成代币。我们使用 LLaMA3 分词器进行计算。FT 表示指令调优模型。

介绍了四种模型在四种不同设备类型上的性能。其中,Pixel 3a 是一款体积更小的手机,Pixel 7 Pro 和 Pixel 8 Pro 的尺寸与常用手机相当,Pixel Fold 类似于平板电脑。
三、让我们一起展望AndroidLab应用
比如,我是一个安卓应用的测试人员,我想要测试应用在不同用户操作下的表现。
日常工作状态是,说起这个事吧,让人头疼。我要手动一遍又一遍地去点击、滑动屏幕,还要记录下每个操作后应用的反应,看看有没有bug,用户体验是否流畅。比如我要测试应用里的日程管理功能,我得自己打开应用,找到日程管理的界面,然后手动添加一个事件,设置时间、地点啥的,费时费力,脑壳疼。
但是,现在有了AndroidLab数据集,这事儿就简单多了。这就好比给应用来了个“智能替身”,能自动帮我模拟各种用户操作,从简单的点击到复杂的多步骤任务,都能搞定。我只需要告诉它你要测试什么功能,比如“添加一个联系人”,然后它就能自动在应用里找到对应的界面,输入信息,然后检查结果是不是符合预期。
比如,我想测试应用的响应速度,AndroidLab数据集能帮我记录下每个操作的响应时间,还能分析出哪些操作特别慢,或者有没有卡顿的情况。
比如,我想测试一个个人财务管理应用,我说:“记录一笔3000元的收入,标记为投资收入。AndroidLab数据集帮助我训练应用来准确执行这些任务。
告诉你啊,还有一个最棒的功能,AndroidLab数据集还能帮我模拟不同的用户行为,比如有些用户可能喜欢用语音输入,有些用户可能更喜欢用键盘。我能通过这个数据集,测试应用在不同用户习惯下的表现,确保每个用户都能有良好的体验。
来吧,让我们走进Android Instruct|Android自主代理|移动操作系统数据集
相关文章:
AndroidLab:一个系统化的Android代理框架,包含操作环境和可复现的基准测试,支持大型语言模型和多模态模型。
2024-10-31,由清华大学和北京大学共同创建的AndroidLab数据集,为安卓自主代理的训练和评估提供了一个包含操作环境、行动空间和可复现基准的系统框架,这对于推动安卓代理技术的发展具有重要意义。 数据集地址:Android Instruct|A…...
Java--正则表达式入门指南
正则表达式(Regular Expression)是一种用于匹配字符串中字符模式的工具。在Java中,正则表达式的使用主要依赖于java.util.regex包,其中最重要的两个类是Pattern和Matcher。今天将探讨正则表达式的基础概念、书写规则、常用方法&am…...
阿里云服务器 篇十(加更二):自动定时备份CSDN博客内容:更新文件最后修改时间,以在个人博客正确展示最近更新
文章目录 系列文章核心修改更新后的核心代码使用方法系列文章 阿里云服务器 篇一:申请和初始化 阿里云服务器 篇二:搭建静态网站 阿里云服务器 篇三:提交搜索引擎收录 阿里云服务器 篇四:404页面模板 阿里云服务器 篇五:短链服务网站 阿里云服务器 篇六:GitHub镜像网站 …...
Python编程探索:从基础语法到循环结构实践
文章目录 前言1. 行与缩进:Python代码的灵魂2. 数据类型的转换:灵活处理数据3. 字符串切片:提取字符串的子部分4. 字符串拼接:连接多个字符串5. 逻辑运算符:处理布尔值6. 成员运算符:检查值是否存在于序列中…...
今天要重新认识下注解@RequestBody
在Spring框架中,RequestBody是一个常用的注解,它用于将HTTP请求体中的数据绑定到控制器(Controller)处理方法的参数上。这个注解通常与RESTful Web服务一起使用,在处理POST或PUT请求时尤为常见,因为这些请求…...
北斗有源终端|智能5G单北斗终端|单兵|单北斗|手持机
在当今科技日新月异的时代,智能设备的创新与升级速度令人目不暇接。其中,智能5G终端作为连接数字世界的桥梁,正逐步渗透到我们生活的方方面面。今天,让我们聚焦于一款集尖端科技与实用功能于一身的智能5G设备——QM-L5智能5G单北斗…...
【题解】—— LeetCode一周小结44
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 【题解】—— 每日一道题目栏 上接:【题解】—— LeetCode一周小结43 28.冗余连接 II 题目链接:685. 冗余连接 II 在…...
faiss 用于检索10亿向量(维度768)的方法
faiss 用检索10亿向量(维度768)的方法,注意考虑占用内存空间大小不能超过100G,因为100G已经是很多服务器内存的极限了,有的128G已经是超规格的机器了。价格也就是2000左右(月租)。 要处理 10 亿个 768 维的向量,并且限制内存占用不超过 100G,我们需要使用 FAISS 中的…...
sql专题 之 常用命令
文章目录 查询基础语法查询全表查询选择查询:常量和运算: 条件查询where运算符:、 !、<、>空值:null模糊查询:like逻辑运算:and or not 去重:distinct排序:order by截断和偏移…...
Kubernetes Extended Resource 扩展资源使用简介
Kubernetes 除了提供基于 CPU 和内存的传统计算资源调度外,还支持自定义的 Extended Resource 扩展资源,以便调度和管理其它各种类型的资源。 Extended Resource Extended Resource 扩展资源的创建和使用过程如下图所示: 定义资源ÿ…...
基于STM32的天气时钟项目教学
引言 随着物联网技术的普及,基于STM32的微控制器被广泛应用于各种智能设备的开发。本项目旨在打造一个基于STM32的天气时钟,除了显示当前时间,还可以通过Wi-Fi获取当地天气信息,提供一个实用的生活工具。 环境准备 在开始项目之前…...
神经网络进行波士顿房价预测
前言 前一阵学校有五一数模节校赛,和朋友一起参加做B题,波士顿房价预测,算是第一次自己动手实现一个简单的小网络吧,虽然很简单,但还是想记录一下。 题目介绍 波士顿住房数据由哈里森和鲁宾菲尔德于1978年Harrison …...
C++builder中的人工智能(7)如何在C++中开发特别的AI激活函数?
在当今的AI开发中,人工智能模型正迅速增加。这些模型使用数学函数来执行和学习,以便在传播时优化最佳结果,或在反向传播时选择最佳解决方案。其中之一就是激活函数。也称为转移函数或阈值函数,它决定了神经元的激活值作为输出&…...
更改lvgl图片的分辨率(减少像素)达到减小内存占用的目的
lvgl的内存占比过大,更改图片的分辨率(减少像素)达到减小内存占用的目的,可以用更多的空间去开发其他的功能 -- 由于lvgl中图片占的内存过大,所以需要更改图片的分辨率(降低像素的方式) --注意…...
python的socket库的基本使用总目录
章节总目录 一、Python 实现UDP通讯的简单模型 二、Python 实现TCP通讯的简单模型 三、Python 实现TCP和UDP通讯代码的区别...
golang学习3
Go 语言之旅...
Python解力扣算法题(六)(详解+注释)
# 1.学校打算为全体学生拍一张年度纪念照。根据要求,学生需要按照 非递减 的高度顺序排成一行。 # 排序后的高度情况用整数数组 expected 表示,其中 expected[i] 是预计排在这一行中第 i 位的学生的高度(下标从 0 开始)。 # 给你一…...
【C++】继承和多态常见的面试问题
文章目录 继承笔试面试题1. 什么是菱形继承?菱形继承的问题是什么?2. 什么是菱形虚拟继承?如何解决数据冗余和二义性?3. 继承和组合的区别?什么时候用继承?什么时候用组合? 选择题 多态概念考察…...
入门网络安全工程师要学习哪些内容(详细教程)
🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 大家都知道网络安全行业很火,这个行业因为国家政策趋势正在大力发展,大有可为!但很多人对网络安全工程师还是不了解,不知道网…...
【游戏引擎之路】登神长阶(十二)——DirectX11教程:If you‘re going through hell, keep going!
【游戏引擎之路】登神长阶(十二)——DirectX11教程:If youre going through hell, keep going! 2024年 5月20日-6月4日:攻克2D物理引擎。 2024年 6月4日-6月13日:攻克《3D数学基础》。 2024年 6月13日-6月20日&#x…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
