【大模型系列】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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JVM实战—8.如何分析jstat统计来定位GC

大纲 1.使用jstat了解线上系统的JVM运行状况 2.使用jmap和jhat了解线上系统的对象分布 3.如何分析JVM运行状况并合理优化 4.使用jstat分析模拟的BI系统JVM运行情况 5.使用jstat分析模拟的计算系统JVM运行情况 6.问题汇总 1.使用jstat了解线上系统的JVM运行状况 (1)JVM的…

什么是Redis哨兵机制?

大家好,我是锋哥。今天分享关于【什么是Redis哨兵机制?】面试题。希望对大家有帮助; 什么是Redis哨兵机制? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis 哨兵(Sentinel)机制是 Redis 提…

深度学习的魔法世界

技术文章:深度学习的魔法世界 引言 嘿,今天我们要一起探索一个非常酷的魔法世界——深度学习!这是一门让计算机变得超级聪明的科学。我们会用最简单的语言来解释深度学习的基本概念,让你们也能轻松理解。 一、深度学习的六大魔…

数据挖掘——决策树分类

数据挖掘——决策树分类 决策树分类Hunt算法信息增益增益比率基尼指数连续数据总结 决策树分类 树状结构,可以很好的对数据进行分类; 决策树的根节点到叶节点的每一条路径构建一条规则;具有互斥且完备的特点,即每一个样本均被且…

RFID手持机与RFID工业平板在仓储物流管理系统中的选型

概述 随着物联网技术在仓储物流管理系统中的普及,RFID手持机与RFID工业平板作为基于RFID技术手持式读写器的两种重要终端设备形态,得到了广泛应用。尽管RFID手持机与RFID工业平板都具备读写 RFID标签的基本功能,使用场景较为类似&#xff0c…

文件本地和OSS上传

这里写目录标题 前端传出文件后端本地存储阿里云OSS存储上传Demo实现上传ConfigurationProperties 前端传出文件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>上传文件</title> </head&g…

element-plus大版本一样,但是小版本不一样导致页面出bug

npm 的版本 node的版本 npm的源这些都一样&#xff0c;但是效果不一样 发现是element的包版本不一样导致的 2.9.1与2.8.1的源是不一样的&#xff0c;导致页面出bug;

CSS进阶和SASS

目录 一、CSS进阶 1.1、CSS变量 1.2、CSS属性值的计算过程 1.3、做杯咖啡 1.4、下划线动画 1.5、CSS中的混合模式(Blending) 二、SASS 2.1、Sass的颜色函数 2.2、Sass的扩展(extend)和占位符(%)、混合(Mixin) 2.3、Sass的数学函数 2.4、Sass的模块化开发 2.5、Sass…

python-Flask:SQLite数据库路径不正确但是成功访问到了数据库,并对表进行了操作

出现了这个问题&#xff0c;就好像是我要去找在南方的人&#xff0c;然后我刚好不分南北&#xff0c;我认为的方向错了&#xff0c;实则方向对了。 在我针对复盘解决&#xff1a;sqlite3.OperationalError: unrecognized token: “{“-CSDN博客这个内容的时候&#xff0c;又出现…

剪映--关键帧教程:制作视频文字说明,文字动态划线,透明文字,虚拟触控,画面旋转缩小退出

关键帧介绍 剪映当中许多动态的效果都是关键帧的应用&#xff0c;像接下来会讲到的文字动态划线&#xff0c;画面旋转退出&#xff0c;都是关键帧的效果&#xff0c;用户只要设定初始状态和最后状态&#xff0c;软件会将中间的动态补齐。剪辑的难点在于自己需要先想好要怎么去…

【数据结构Ⅰ复习题】

如有错误欢迎指正&#xff0c;题目根据教材----------严蔚敏数据结构&#xff08;c语言版 第2版&#xff09;人民邮电电子版 数据结构Ⅰ复习题 一、填空题1&#xff0e;算法应该具备的5个重要特性有___有穷性___、确定性、可行性、输入和输出。2&#xff0e;非空单链表L中*p是头…

697: Edit Distance

我们定义 dp[i][j] 为将字符串 A[0..i-1] 转换为 B[0..j-1] 的最小操作数 状态转移 通过动态规划的思想&#xff0c;我们可以使用 状态转移方程 来计算 dp[i][j]。具体来说&#xff0c;dp[i][j] 的值可以由以下几种操作得到&#xff1a; 如果 A[i-1] B[j-1]&#xff1a; 如果…

【AI创作】kimi API初体验

一、介绍 接口文档 https://platform.moonshot.cn/docs/guide/migrating-from-openai-to-kimi 收费详情 并发: 同一时间内我们最多处理的来自您的请求数RPM: request per minute 指一分钟内您最多向我们发起的请求数TPM: token per minute 指一分钟内您最多和我们交互的toke…

迈向AGI,3、2、1,2025上链接!

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 往期精彩文章推荐 关于AI TIME AI TIME源起于2019年&#xff0c;旨在发扬科学思辨精神&#xff0c;邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索&#xff0c;加强思想碰撞&#xff0c;链接全…

C语言中的强弱符号

文章目录 一、基本定义二、链接过程中的行为三、应用场景四、强弱符号示例1五、稍有难度示例2 在C语言中&#xff0c;强弱符号是与链接过程相关的重要概念&#xff0c;C中不存在强弱符号&#xff0c;以下是对它们的详细讲解&#xff1a; 一、基本定义 强符号 强符号通常是指在…

数据仓库建设方案和经验总结

在做数据集成的过程中&#xff0c;往往第二步的需求就是建设数仓由于数据分散在不同的存储环境或数据库中&#xff0c;对于新业务需求的开发需要人工先从不同的数据库中同步、集中、合并等处理&#xff0c;造成资源和人力的浪费。同时&#xff0c;目前的系统架构&#xff0c;无…

SAP SD学习笔记24 - 赠品的两种形式 - 内增Bonus数量、外增Bonus数量

上一章讲了无偿出荷的内容。 SAP SD学习笔记23 - 无偿出荷&#xff08;免费交货&#xff09;与继续无偿出荷&#xff08;继续免费交货&#xff09;-CSDN博客 本章继续将SAP中赠品的两种形式&#xff1a; - 内增Bonus数量&#xff1a;Bonus数量包含在总数量当中&#xff0c;比…

【JVM】JVM自学笔记(类加载子系统、运行时数据区、执行引擎)

JVM自学笔记 引言总结JVM跨平台JVM组成部分类加载子系统运行时数据区程序计数器虚拟机栈本地方法栈堆 执行引擎垃圾回收 引言 主要内容为学习b站视频后的笔记部分个人总结。原视频链接为&#xff1a;【【JVM极简教程】2小时快速学会JVM&#xff0c;史上用时最短&#xff0c;效…

丢弃法hhhh

一个好的模型需要对输入数据的扰动鲁棒 丢弃法&#xff1a;在层之间加入噪音&#xff0c;等同于加入正则 h2和h5变成0了 dropout一般作用在全连接隐藏层的输出上 Q&A dropout随机置零对求梯度和求反向传播的影响是什么&#xff1f;为0 dropout属于超参数 dropout固定随…

深入Android架构(从线程到AIDL)_06 短程通信 vs. 远程通信

目录 7、 短程通信 vs. 远程通信 範例&#xff1a; 短程通信 撰写步骤 範例&#xff1a; 遠程通信 7、 短程通信 vs. 远程通信 範例&#xff1a; 短程通信 首先出现ac01画面&#xff0c;立即启动myService&#xff0c;定时连续传来数字&#xff0c;如下&#xff1a;由于定…