当前位置: 首页 > article >正文

【大模型系列】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.kler.cn/a/464623.html

相关文章:

  • AutoSar架构学习笔记
  • 音频进阶学习九——离散时间傅里叶变换DTFT
  • xdoj ROT13加密
  • 项目:停车场车辆管理系统
  • Flash Attention V3使用
  • Tailwind CSS 实战:表单设计与验证实现
  • 【Devops】什么是Devops?(Development+Operations)和运维的区别?
  • Java-多种方法实现多线程计数
  • 常见的 Redis 面试题
  • flux中的缓存
  • 《Vue3实战教程》43:Vue3TypeScript 与选项式 API
  • Java之图书管理系统
  • 单周期CPU电路设计
  • Vue.js 表单验证实战:一个简单的登录页面
  • idea最强ai辅助工具豆包的使用教程
  • 观成科技:伪猎者(APT-C-60)APT组织加密通信分析
  • 港科大开源VideoVAE+,视频重建质量全面超越最新模型
  • Rabbitmq追问
  • 基于微信小程序的面部动作检测系统
  • 几句话分析org.springframework.web.servlet.HandlerMapping体系机构
  • 在C#中,如何使用委托实现事件处理?
  • 计算机网络 (20)高速以太网
  • 【QT】:QT图形化界面概述
  • 解读一个新建的 Spring Boot 项目
  • 若依引入腾讯地图
  • FastDeploy部署paddlecls分类模型(windows)