type
Post
status
Published
date
Dec 5, 2024
slug
ui-agent-showui
summary
Show Lab 和微软推出 ShowUI,这是一个开源的 UI Agent 模型,在中文 APP 识别和导航能力上表现出色。通过创新的视觉 token 选择和独特的训练数据构建方法,该模型在有限的训练数据下实现了非常棒的性能
tags
AI_Agent
Multi-Agents
UI Agents
Web Agents
Compute Use
Phone Use
AutoGLM
SeeClick
AppAgents
Mobile Agents
VLM
LLM
智能体
ShowUI
GUI Agents
category
技术分享
icon
password
URL
Rating

本文介绍下最近刚刚开源的 UI Agent 模型 ShowUI。ShowUI 是在 Qwen2-VL-2B 基础上做的 Lora 微调,模型和代码都开源。ShowUI 在中文 App 上的效果应该是当前 UI Agent 开源模型中最好的👍 🔥🔥。
ShowUI 的一些信息:
接下来介绍 ShowUI 论文中提到的一些关键信息。
论文详解
论文主要包括 3 个大的贡献:
- UI-Guided Visual Token Selection:对图片分 patch 后,去掉一些重复的 patch 以降低计算量。可以提速到原来的 1.5 倍,但效果会略降。
- Interleaved Vision-Language-Action Streaming:训练时把多个单步任务拼成多轮对话的形式进行训练,提升效率。navigation 生成动作时不仅使用当前的 UI 截图,也使用前面步骤的 UI 截图(N=2)。
- Small-scale High quality GUI Instruction-following Datasets:按指定比例构建高质量预训练数据集。
UI-Guided Visual Token Selection
先把图片划分成指定大小(patch 大小按照基模的配置即可,比如 Qwen2-VL 可以是 28x28)换分成不同的 patch,然后把临近相同颜色的 patch 连成一个Graph。属于同一个 graph 里的 patches 可以认为高度重复,所以训练时就从里面按比例随机抽取一些即可(对于只包含一个 patch 的 graph,抽取时必须包含此 patch),不需要全用。通过这种方式降低代表一个图片所需的 token 数量,提升训练/推理效率。


使用时作者保留抽取出来的每个 patch 的原始 position 位置信息,然后像如下右边那样输入模型即可(作者做了实验发现左边的处理方式效果更差)。

Interleaved Vision-Language-Action Streaming
作者使用了两种组织不同训练数据的方法,对应图中的两种:
- Action-Visual:把每一步的截图和动作串起来,图片和动作交织组成一个长序列,训练时只使用动作 tokens 对应的 loss。这样一个任务理论上可以作为一个样本。
- Action-Query:对于一些单步性质的任务,比如对应一个截图中的多个元素的 grounding 任务,可以把这些多个单步任务拼成多轮对话的形式进行训练,也就变成上面那种交织的形式了,以便提升训练效率。

作者的结论是这两种训练方式都用的话,效果会更好(见下图黄色曲线):

GUI Instructional Tuning (预训练)
这一步其实就是预训练。

Navigation 数据就是来自 GUIAct。
Grounding 数据包含了三类数据:
- Web–visual elements:作者自己收集的数据,包含 22k 的 web 截图,主要是针对 Button 或者 Checkbox 类型的元素。
- Desktop–diverse query:来自 OmniAct 的 100 张图片,作者说这个数据集质量很高。作者针对其中的 2k 个元素制定了 3 个新的 query:appearance, spatial and intention,获得了 6k 个样本,加上之前的 2k(可能是 grounding),有大概 8k 个样本。这个数据集作者已开源:https://huggingface.co/datasets/showlab/ShowUI-desktop-8K


- Mobile–Functionality:用的就是 AMEX 数据集。
整个数据集时 256k 个样本,其中 grounding 占一半少一些,navigation 占一半多一些。训练时每个 batch 中通过随机抽样获得,其中 grounding 和 navigation 各占一半,而 grounding 的三类数据同样随机抽样,保证在每个 batch 中它们的占比是
1:1:1。以下是使用不同的数据训练模型后在 Screenspot grounding 测试集上的效果,可见 OmniAct 数据的效果真好。
数据平衡抽样非常重要,它带来了 3.7% 的精度提升。

作者的实验发现,如果控制好采样比例,预训练中加入 navigation 数据并不会降低模型的 grounding 能力。

微调
以下应该是模型在 AITW 数据集上微调后的模型效果。其中的 ShowUI-ZS 应该是没在 AITW 做过微调,而 ShowUI ✝︎ 表示只使用动作历史,但不使用历史的截图。而 ShowUI 则是使用了历史的 2 张截图加上当前的截图。
在使用了历史截图后,ShowUI 获得了更好的效果。


UI Agents 知识星球
UI Agents 技术发展迅猛,想紧跟 UI agents 技术前沿?我们的知识星球每周以视频方式解读最新论文,为你开启技术新视野,快来加入吧!
加入知识星球,每周获取会员专享视频👇

扫码加微信小助手为好友,备注「agent」,小助手会定期邀请入群👇

当前星球包含的专享视频包括:
<ins/>
- 作者:Breezedeus
- 链接:https://www.breezedeus.com/en/article/ui-agent-showui
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章









