【大模型系列】Mobile-Agent(2024.04)

image.png

  • Paper: https://arxiv.org/pdf/2401.16158
  • Github: https://github.com/X-PLUG/MobileAgent
  • Author: Junyang Wang et al. 北交、阿里巴巴

Mobile-agent核心工作:

  • 首先使用视觉感知工具(检测和OCR模型)识别前端界面中文本和图像元素的精确位置
    • 检测图标:groundingdino,AI-ModelScope/GroundingDINO
    • OCR检测:damo/cv_resnet18_ocr-detection-line-level_damo
    • OCR识别:damo/cv_convnextTiny_ocr-recognition-document_damo
    • CLIP:ViT-B/32
  • 然后基于这些视觉元素,进行自动规划、任务分解和一步一步的任务执行
  • 提出了一个评测数据集Mobile-Eval,评估操作的准确性

文章目录

  • 1 Mobile-Agent框架介绍
    • 1.1 视觉感知部分
    • 1.2 指令执行
      • 1.2.1 操作定义
      • 1.2.2 自我规划(Self-Planning)
      • 1.2.3 自我反省(Self-Reflection)
      • 1.2.4 Prompt设计(启发自ReAct)
  • 2 Mobile-Eval
    • 2.1 Metrics
  • 3 操作示例
  • 4 操作工具
  • 5 程序运行流程

1 Mobile-Agent框架介绍

image.png

1.1 视觉感知部分

  • MLLM:GPT-4V
  • 文本检测模型:文本定位,OCR tools
    • OCR没有检测到指定文本:agent重新选择文本或者选择替代操作
    • OCR检测到一个包含指定文本的实例:直接点击文本框的中心
    • OCR检测到多个包含指定文本的实例:如果检测到的实例特别多,则需要重新选择文本实例;如果实例数量比较少,根据检测据区域外扩后截图,再将检测框画在截图上,最后让agent决策点击哪一个
  • 图标检测模型:图标定位,icon检测工具+CLIP;
    • 首先让agent提供需要点击的icon的属性(颜色和形状),
    • 然后使用Grounding DINO通过prompt “icon”从屏幕截图中识别所有的图标;
    • 最后使用CLIP根据第一步产生的图标的描述来检索需要点击的图标

1.2 指令执行

1.2.1 操作定义

定义了8种操作:

  • Open APP(App): 打开桌面上的指定APP
  • Click the text(Text): 点击指定区域内的文本
  • Click the icon(Icon, Position): 根据图标的描述和位置的坐标信息
  • Type(Text): 在指定的文本输入框内输入文本
  • Page up & down: 向上或者向下滑动页面
  • Back: 退回上一个页面
  • Exit: 回到主页面
  • Stop: 任务完成的标志,结束整个进程

1.2.2 自我规划(Self-Planning)

Mobile-agent通过迭代的方式完成任务:

  • 首先用户输入任务
  • agent基于system prompt+历史操作记录+当前屏幕截图输出下一步的操作
  • 直到输出stop,就结束迭代

1.2.3 自我反省(Self-Reflection)

当agent遇到错误导致无法完成任务时,该文章引入了一个自我反省self-reflection的机制,这个机制在以下两种情况生效:

(1)当agent生成无效或者错误操作,导致进程阻塞,具体地

  • 当agent注意到在特定操作后,屏幕截图没有发生改变
  • 屏幕节目展示出一个错误的页面

解决方案: 指导agent尝试其他可代替的操作或者改变当前操作的参数

(2)忽略某些复杂指令的某些要求

解决方案: 在每轮迭代结束后,使用agent去分析当前的屏幕截图、操作历史和用户指令,去判断任务有没有完成,没有完成则继续产生操作。

1.2.4 Prompt设计(启发自ReAct)

Output格式:

Observation: 对当前屏幕截图+历史操作的描述,帮助agent去发现屏幕截图是否有更新,并基于历史记录及时发现问题;
Thought: 基于Observation和用于指令去产生下一步的操作;
Action: 基于Thought从8个操作指令集中选择操作和参数;

image.png

2 Mobile-Eval

  • 包含10个常用Apps
  • 引入同时使用2种App的instruction,去验证agent多app调用的能力
  • 每个App使用3种instruction:简单、复杂、包含抽象指示

image.png

2.1 Metrics

  • Su(Success): Agent完成用户指令,被认为是成功
  • PS(Process Score): 衡量agent在执行任务过程种,每一步的准确性,正确的步数除以总步数
  • RE(Relative Efficiency): 手动执行指令,并记录人类所采取的步骤,认为人类的操作是最优的操作,然后比较agent执行的步数和人类执行的步数,来评估agent是否更有效率
  • CR(Completion Rate): 计算agent采用跟人类相同操作的步数除以人类操作的总步数,表示agent在指定instruction下的完成率;
    image.png

3 操作示例

image.png

4 操作工具

通过ADB来实现对手机的操控:

  1. 下载Android Debug Bridge。
  2. 在你的移动设备上开启`USB调试`或`ADB调试`,它通常需要打开开发者选项并在其中开启。
  3. 通过数据线连接移动设备和电脑,在手机的连接选项中选择`传输文件`。
  4. 用下面的命令来测试你的连接是否成功: ``/path/to/adb devices`。如果输出的结果显示你的设备列表不为空,则说明连接成功。
  5. 如果你是用的是MacOS或者Linux,请先为 ADB 开启权限: `sudo chmod +x /path/to/adb`。
  6. `/path/to/adb`在Windows电脑上将是`xx/xx/adb.exe`的文件格式,而在MacOS或者Linux则是`xx/xx/adb`的文件格式。

5 程序运行流程

image

  • GDINO:AI-ModelScope/GroundingDINO
  • CLIP:ViT-B/32
  • ocr_detection:damo/cv_resnet18_ocr-detection-line-level_damo
  • ocr_recognition:damo/cv_convnextTiny_ocr-recognition-document_damo
  • LLM:ChatGPT-4V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/891469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器

数据的简单处理——pandas模块——数据结构(Series和DataFrame对象)

pandas模块是基于Numpy模块开发的。在pandas模块中有两个重要的数据结构对象——Series和DataFrame。使用这两个对象可以在计算机的内存中构建虚拟的数据库。对于Series和DataFrame对象主要有三类,都是包括普通默认的方式、添加行列标签的方式、采用字典创建数据结构…

Linux 服务器启用 DNS 加密

DNS 加密的常用协议包括 DNS over HTTPS (DoH)、DNS over TLS (DoT) 和 DNSCrypt。以下是实现这些加密的步骤和工具建议: 1. 使用 DoH (DNS over HTTPS) 工具推荐: cloudflared(Cloudflare 提供的客户端)doh-client(…

【three.js】材质(Material)

基础网格材质(MeshBasicMaterial)【常用】 一个以简单着色(平面或线框)方式来绘制几何体的材质,这种材质不受光照的影响。常用于背影、2D图形等场景。 参数: color:材质颜色。 opacity&#x…

【数据库系列】Spring Boot 中整合 MyBatis-Plus详细步骤

在 Spring Boot 中整合 MyBatis-Plus 可以按照以下步骤进行: 一、整合步骤 1. 创建 Spring Boot 项目 首先,使用 Spring Initializr(https://start.spring.io/)创建一个新的 Spring Boot 项目。在创建过程中,选择以…

naive ui 使用地址记录

naive ui 地址Naive UI Naive UI 是一个 Vue3 的组件库。 要了解如何安装,参见安装。 它比较完整,主题可调,用 TypeScript 写的,快

CVSS漏洞评分系统曝出严重缺陷

在网络安全领域,漏洞的管理和评估是企业防御的重要一环。然而,随着技术的快速发展和攻击手段的不断演变,传统的漏洞评分系统显露出了不可忽视的弊端。在近期的Black Hat欧洲大会上,摩根大通的网络安全专家警告称,通用漏…

深入剖析MySQL数据库架构:核心组件、存储引擎与优化策略(一)

sql语句分为两大类:查询(select)、增删改----修改(update) select语句的执行流程 执行sql语句的流程:连接数据库、缓存查询、解析器、优化器、执行器、存储引擎操作数据 客户端:图形界面工具…

电子病历四级视角下SQL语句的优化策略与实践用例研究

一、引言 1.1 研究背景与意义 在当今数智化医疗时代,电子病历(Electronic Medical Record,EMR)系统已成为医疗机构信息化建设的核心组成部分。电子病历不仅承载着患者的诊疗信息,更是医疗决策、质量控制、科研分析以及医疗管理的重要依据。根据国家卫生健康委发布的《电…

如何借助 AI 提升工作效率

AI让工作更高效 引言 你是否曾在忙碌的工作中感到力不从心,无法高效完成任务?在如今这个信息爆炸的时代,时间似乎总是不够用。而幸运的是,人工智能(AI)的崛起让这一切发生了变化。AI的应用正日益深入我们…

C++简明教程(14)动态库和静态库的内存共享机制

总结,动态库共享内存,静态库独占一份内存。

NextCloud服务安装与配置教程

NextCloud服务安装与配置教程 什么是 NextCloud: Nextcloud 是一款开源的私有云存储和协作平台,允许用户在自己的服务器上托管数据并管理团队协作。它可以作为一个功能丰富、安全可靠的替代方案,与商业云服务(如 Google Drive、Dropbox)相比提供更多控制和隐私保护。简单来…

Elasticsearch向量检索需要的数据集以及768维向量生成

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一:使用fromsize实现分页 快速掌握Elasticsearch检索之二:滚动查询(scrool)获取全量数据(golang) Elasticsearch检索之三:官方推荐方案search_after…

CSS2笔记

一、CSS基础 1.CSS简介 2.CSS的编写位置 2.1 行内样式 2.2 内部样式 2.3 外部样式 3.样式表的优先级 4.CSS语法规范 5.CSS代码风格 二、CSS选择器 1.CSS基本选择器 通配选择器元素选择器类选择器id选择器 1.1 通配选择器 1.2 元素选择器 1.3 类选择器 1.4 ID选择器 1.5 基…

Prometheus 专栏 —— Prometheus安装、配置

配置文件基本结构 global: 全局配置 scrape_interval: 抓取目标指标的频率,默认为 1minevaluation_interval: 评估告警规则的频率,默认为 1minscrape_timeout: 抓取目标指标数据拉取超时,默认为 10s,如果出现 context deadline exceeded 错误时需要在特定的 job 下配置该字…

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下: 摘要 随着社会进步和科技发展,电子设备在各类活动中的应用日益普遍&#xff0c…

【python】unittest单元测试

文章目录 基本使用不同启动方式的区别 基本使用 下面是根据文档写的一个demo,主要的内容基本都包含了,使用时导入自己的业务类测试类中的方法就行。 import unittest# 测试类不强制test开头,仅作为规范。但必须继承unittest.TestCase class…

MySQL实用SQL示例

创建数据库 CREATE DATABASE zq-cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;创建表 CREATE TABLE regulatory_firm_category (category_id int NOT NULL AUTO_INCREMENT COMMENT 分类id,自增主键,parent_id int NOT NULL COMMENT 父级id,category_…

从0入门自主空中机器人-4-【PX4与Gazebo入门】

前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件,这一篇文章中我们入门一下无人机常用的开源飞控PX4,以及ROS中无人机的仿真 1. PX4的安装 1.1 PX4固件代码的下载…

数据结构与算法之动态规划: LeetCode 674. 最长连续递增序列 (Ts版)

最长连续递增序列 https://leetcode.cn/problems/longest-continuous-increasing-subsequence/description/ 描述 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度连续递增的子序列 可以由两个下标 l 和 r(l …