GoClick:面向自主 GUI 交互的轻量级元素定位模型 GoClick: Lightweight Element Grounding Model for Autonomous GUI Interaction
230M参数的轻量级GUI元素定位VLM,在7个基准上媲美7B级大模型
前置知识
GUI 元素定位 (GUI Element Grounding)
给定一张 GUI 截图和一段自然语言描述(例如「右上角的搜索按钮」),模型需要预测出目标元素在屏幕上的坐标位置(框或中心点),通常输出归一化到 [0,1000] 区间的 (x, y) 或边界框。这是 GUI Agent 在视觉环境下完成点击、输入等操作的关键前置能力,与 RefCOCO 等自然场景下的视觉定位类似但元素更小、布局更密。
本文的核心任务就是 GUI 元素定位,论文提出的轻量模型、架构选择、数据精选都围绕这个能力展开;理解它的输入输出形式是看懂所有实验对比的前提。
Vision-Language Model (VLM) 架构:Encoder-Decoder vs Decoder-Only
Encoder-Decoder 架构(如 Florence-2)由独立的视觉编码器、多模态编码器和紧凑的 Transformer 解码器组成,输入输出都是 token 序列;Decoder-Only 架构(如 Qwen2-VL、InternVL2)则把视觉 token 直接拼到 LLM 的上下文里,靠自回归生成完整回答。前者输出空间窄、擅长精确定位,后者通用生成能力强但参数利用率在窄任务上不高。
本文最重要的论断之一就是「在 GUI grounding 这种窄任务的小参数场景下,encoder-decoder 优于 decoder-only」,这决定了 GoClick 选择 Florence-2 而非 Qwen2-VL 缩小型作为基座;理解两者差异才能看懂 4.2 节的架构对比实验。
数据精选 / 数据配比 (Data Curation & Task Ratio)
在大规模多任务训练中,不同数据源、任务类型的贡献并不相等;通过分析每类样本对验证集指标的边际影响,可以删除有害样本、调整任务配比,从而在更少数据下获得更好效果。本文 PDR 流水线分粗粒度(去类别)和细粒度(调比例)两步实现这一目标。
GoClick 把数据从 10.8M 砍到 3.8M 同时精度反而提升 4 点(71.6→75.6),这是论文的核心贡献之一;理解数据精选的概念才能体会其「少即是多」的工程价值。
研究动机
GUI Agent 要执行点击、输入等操作,必须先把自然语言意图映射到屏幕坐标,这一「元素定位」能力是 Agent 落地的关键瓶颈。当前主流做法是直接调用 GPT-4o、Qwen2-VL-7B、CogAgent-18B、SeeClick-10B 等大尺寸 VLM(普遍 ≥2.5B 甚至 7B+),其 FuncPred 准确率虽可达 48–52%,但单次推理 TTFT 动辄 100–1253 ms、TPOT 20–200 ms/token,根本塞不进手机的内存与算力预算。CogAgent-18B 的 TTFT 高达 1253.2 ms、TPOT 208.8 ms/token,SeeClick-10B 的 TPOT 也达 184.4 ms/token——这些指标说明现有 grounding 专家模型在端侧几乎不可用。即便把 Qwen2-VL、InternVL2 缩到 2B,它们的 FuncPred 也只有 7.1% 和 2.0%,呈现明显的「缩了就不灵」现象。
本文的目标是论文要打造一个仅 0.23B 参数、能在手机等资源受限设备上实时运行的 GUI 元素定位专家模型,同时在 7 个公开 GUI 定位基准(FuncPred、ScreenSpot、ScreenSpot-v2、MOTIF、RefExp、VWB EG、VWB AG)上达到甚至超过多个 7B 大模型,并把它集成进 device-cloud 协作框架,让云端 GPT-4o/Gemini 负责高层规划、本地 GoClick 负责精确定位,从而提升整体 Agent 的 Step Success Rate。
与已有工作不同的是,已有研究对 GUI 定位的探索主要走两条路:①在 7B 以上大模型上堆数据,忽视端侧部署;②直接缩小 decoder-only VLM,没有考虑窄任务下架构本身的适配性。本文则把「小尺寸 encoder-decoder 架构 + 系统性数据精选」作为差异化切口:先证明在 GUI grounding 这种空间输出极窄的任务上 Florence-2 这类 encoder-decoder 远比缩小的 Qwen2-VL、InternVL2、SLiME 更适合,再针对小模型容量有限的特点设计 Progressive Data Refinement (PDR) 流水线,把 10.8M 原始数据精炼到 3.8M 的高纯度核心集。这一「架构×数据」双轮驱动是已有工作没有同时做过的。
核心方法
GoClick 的整体思路可以分三层理解。直觉上,GUI 元素定位本质上是「把截图+文字描述映射到 (x,y) 坐标」的回归/序列生成问题,输出空间比开放对话窄得多,因此不需要 decoder-only VLM 那种大 LLM 的全部通用生成能力。基于这一观察,方法选 Florence-2 这种 encoder-decoder 架构作为基座,用 ViT 提取图像 patch token、Projector 投射、多模态 Transformer 编码后再用紧凑 decoder 预测坐标 token (loc_xxx)。技术路线上,由于 230M 容量有限、很容易被噪声数据带偏,所以第二步构建 Progressive Data Refinement (PDR) 流水线:从 11 个 GUI 元数据源出发,先用规则+LLM 标注生成 4 种 referring expression (RE) 和 4 种 grounding 任务,得到 10.8M 原始样本;再走「粗筛」(剔除过时 GUI 模式与所有 REG 任务样本,得到 6.4M)和「细筛」(按任务类型×数据源逐个下调采样比例,保留高质量的 3.8M)两步精炼;最后用这 3.8M 核心集微调 GoClick-L (0.8B) 与 GoClick-B (0.2B) 两个版本,分别面向不同算力预算。
核心创新有两个,且都和已有方法形成本质区别。第一是「架构-任务匹配」:现有 GUI 定位工作几乎默认用 Qwen2-VL、InternVL2 等 decoder-only 大 VLM 的缩小版,但论文通过在 3.8M 同一数据集上对 4 个基座(Florence-2、Qwen2-VL-2B、InternVL-2-1B、SLiME-Gemma-2B)做同条件微调,证明 encoder-decoder 在小参数 GUI grounding 任务上全胜——GoClick-L (0.8B) 的 FuncPred 69.5% 超过参数量近 3 倍的 Qwen2-VL-2B (51.1%) 和 SLiME-Gemma-2B (58.9%),而 InternVL-2-1B 只到 21.9%。第二是「为小模型定制数据精选」:不同于 OmniParser、SeeClick 等直接堆千万级数据的做法,PDR 把重点放在「删除有害样本」而非「堆更多样本」,发现过时 GUI 模式(Android 4.0, 2011)和所有 REG 任务对 grounding 都有负贡献,并把 SeeClick-Web 的 Brief Description Grounding 比例从 1.0 降到约 0.2 才避免性能雪崩——这与「数据越多越好」的直觉形成鲜明对比。
方法步骤详情
方法实现分为四步。第一步是数据合成:针对每个 GUI 元素,用 GUI 元数据自动生成 4 种 referring expression——RE1 (Alt-texts,直接抓取 alt 属性或显示文字)、RE2 (Brief Descriptions,结合视觉外观+类别+位置,如「左上角的房子形状按钮」)、RE3 (Action Intents,按 Burns et al. 2022 模板生成「focus on the password textbox」)、RE4 (Functionality Descriptions,沿用 AutoGUI 流程用 LLM 生成「This element enables users to share content」);再为每种 RE 生成对应的 Grounding 任务(输入 RE 预测坐标)和反向 REG 任务(输入坐标生成 RE),外加 Widget Listing 任务,共 8 类样本,得到 10.8M GoClick-Raw。第二步是去噪去重:丢弃空白/不可见元素、剔除越界 bbox、用 pytesseract OCR 验证 plain-text 元素是否与文本属性一致;然后把 bbox 离散到 0-100 整数网格、把 RE 去掉标点统一小写,按 (box, RE) 元组分组,每组只留一条,压缩冗余。第三步是 PDR 粗筛:经验上验证「含 Android 4.0 等过时 GUI 模式的样本」和「全部 REG 任务样本」都会拖累 grounding 性能(Tab. 6 给出 +0.2~+3.8 点的提升),整体砍掉,得到 GoClick-AfterCoarse (6.4M)。第四步是 PDR 细筛:聚焦占 90.8% 数据的 6 个主要源(AutoGUI、MobileViews、AndroidControl、WebUI、MultiUI、SeeClick-Web),对每类任务逐步降低采样比例(从 1.0 降到 0.2 左右)观察平均精度曲线,发现 AndroidControl 的 Text/Intent Grounding 和 SeeClick-Web 的 Brief Description Grounding 出现「比例越高性能越差」的反常曲线,据此调出 3.8M 核心集 GoClick-Core;最后用该核心集在 8 张 L20 GPU 上对 Florence-2 base 训练 2 个 epoch(GoClick-L 训练 38 小时、GoClick-B 更短),输入图像统一 resize 到 768×768,仅冻结 ViT 编码器其余参数全调,得到最终模型。
技术新颖性
技术新颖性体现在三方面。其一是首次系统量化 encoder-decoder 架构在 GUI grounding 任务小参数场景下的优势——以往 Tay et al. 2023、Wang et al. 2022 的工作只在通用 NLP 任务上得出类似结论,论文把它迁移并实证到 GUI 域,并通过控制变量(同数据、同 epochs、同 768×768 分辨率)确保比较公平。其二是 PDR 流水线把 GUI 域独有的「过时模式有害」和「过采样有害」两个反直觉现象以消融形式显式呈现:Tab. 7 显示数据从 10.8M 砍到 3.8M、训练量减少 64.8% 的同时平均精度反而从 71.6 升到 75.6(+4.0),其中 VWB AG 单项提升 +6.8 点,这是「更多数据≠更好」在 VLM 训练中少见的硬证据。其三是把 GoClick 包装成 device-cloud 协作中的「端侧 grounding 专家」,提出用 Intent Grounding 和 Functionality Grounding 两种方式让云端 planner 触发本地定位——这种解耦既利用了大模型的推理能力又规避了其坐标预测弱点,在 AITW、GUIAct 等 4 个 Agent 基准上系统击败 SoM prompting 强基线。
实验结果
实验共分四组,核心结论可以归纳如下。第一组「与 SOTA 对比」(Tab. 3)显示 GoClick-L (0.8B) 在 7 个 grounding 基准上的平均表现超过所有 ≤4B 模型,并在 FuncPred (69.5 vs CogAgent 29.3、SeeClick 19.8、Ferret-UI 1.2)、VWB EG (90.3 vs Ferret-UI 3.9、ShowUI 64.2) 等指标上甚至超过了 7–18B 级大模型;GoClick-B (0.2B) 虽小 1 个量级,仍以 64.4% FuncPred、90.3% VWB EG 击败 GPT-4o (9.8%/5.6%) 和 Ferret-UI-3B (1.3%/0.7%),证明缩到 0.2B 仍能 work。速度方面,GoClick-B 的 TTFT=37.7 ms、TPOT=4.1 ms/token,仅为 GPT-4o/CogAgent 的约 1/30 到 1/5,验证了端侧可用性。第二组「架构对比」(Tab. 4)严格控制变量:Florence-2 微调后 FuncPred 69.5%、VWB EG 90.3%,全面领先 InternVL-2-1B (21.9%/7.3%)、Qwen2-VL-2B (51.1%/78.2%)、SLiME-Gemma-2B (58.9%/39.5%),且与参数量 10 倍的 Qwen2-VL-7B-SFT (56.1%/93.5%) 互有胜负。Tab. 5 还显示 GoClick 在 ScreenSpot 三域(Web/Desktop/Mobile)的 Text 和 Icon grounding 上都最稳健,text-icon 差距比 Qwen2-VL-2B 更小。第三组「数据精选消融」(Tab. 6-7)证实 PDR 的两步都不可或缺:粗筛去掉过时+REG 让平均精度从 71.6 升到 74.0(+2.4),细筛把比例调到最优后进一步升到 75.6(+4.0),且训练样本减半以上;Fig. 6 的曲线则直观揭示了「AndroidControl Text Grounding 与 SeeClick-Web Brief Description Grounding 比例越高越糟」的反常现象。第四组「GUI Agent 集成」(Tab. 8-11)展示在 4 个 Agent 基准上,把 grounding 任务从 GPT-4o/Gemini 卸载到 GoClick-L 都能大幅提升 Step SR:AITW 上 GPT-4o + GoClick (Intent) 拿到 48.9 总体 Step SR 和 59.7 Click Acc,分别比 GPT-4o + SoM (42.1/50.4) 高 +6.8 和 +9.3;GUIAct-Web 上 GPT-4o + GoClick 达 50.5/62.0,比 SoM (42.3/55.6) 高 +8.2 和 +6.4;AndroidControl 上 Gemini-2-Flash-Exp + GoClick 把 Step SR 从 20.6 拉到 42.9(+22.3)。这些数字一致证明「云端推理 + 端侧精定位」的协作模式显著优于让大模型同时做规划和定位。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| FuncPred (功能描述定位) | Grounding Accuracy (%) | GoClick-L: 69.5, GoClick-B: 64.4 | Qwen2-VL-7B-SFT: 56.1, UGround-7B: 48.8, GPT-4o: 9.8 | GoClick-L 比 SOTA 7B 微调版高 +13.4,比 GPT-4o 高 +59.7 |
| ScreenSpot (跨域 brief desc 定位) | Grounding Accuracy (%) | GoClick-L: 78.5, GoClick-B: 74.1 | Aguvis-7B: 83.8, UGround-7B: 74.8, Qwen2-VL-7B: 66.4 | GoClick-B 超过 UGround-7B (-0.7 几乎持平) 且 1/35 参数量 |
| ScreenSpot-v2 (Web+Desktop+Mobile) | Grounding Accuracy (%) | GoClick-L: 81.1, GoClick-B: 75.2 | Aguvis-7B: 85.6, OS-ATLAS-8B: 84.1, GPT-4o: 17.8 | GoClick-L 仅比 Aguvis 低 4.5,但参数小 10 倍 |
| MOTIF (Mobile intent 定位) | Grounding Accuracy (%) | GoClick-L: 80.4, GoClick-B: 76.8 | OS-ATLAS-8B: 78.8, Qwen2-VL-7B: 75.1, GPT-4o: 20.4 | GoClick-L 反超 OS-ATLAS-8B +1.6 |
| RefExp (Mobile intent 定位) | Grounding Accuracy (%) | GoClick-L: 78.2, GoClick-B: 71.9 | Aguvis-7B: 80.9, UGround-7B: 73.6, GPT-4o: 30.5 | GoClick-L 与 Aguvis 仅差 2.7,但参数量小近 10 倍 |
| VWB EG (Web text grounding) | Grounding Accuracy (%) | GoClick-L: 90.3, GoClick-B: 90.3 | Aguvis-7B: 91.3, OS-ATLAS-8B: 82.6, GPT-4o: 5.6 | GoClick 双版本与 Aguvis 持平(90.3 vs 91.3),但参数量仅 1/10 |
| VWB AG (Web action grounding) | Grounding Accuracy (%) | GoClick-L: 68.0, GoClick-B: 61.2 | OS-ATLAS-8B: 69.9, Aguvis-7B: 68.0, GPT-4o: 6.8 | GoClick-L 与 Aguvis 并列第二,超过 OS-ATLAS-4B (58.3) 约 10 点 |
| AITW (Agent Step SR) | Step Success Rate (%) | GPT-4o + GoClick-L (Intent): 48.9 | GPT-4o + SoM: 42.1, GPT-4o alone: 27.2 | +6.8 vs SoM,+21.7 vs GPT-4o 单独 |
| GUIAct-Web (Agent Step SR) | Step Success Rate (%) | GPT-4o + GoClick-L (Intent): 50.5 | GPT-4o + SoM: 42.3, GPT-4o alone: 18.2 | +8.2 vs SoM,+32.3 vs GPT-4o 单独 |
局限与改进
作者在结论部分坦承三点主要局限:①架构结论的迁移性未知,encoder-decoder 在 GUI grounding 上的优势未必能直接外推到 GUI Agent 任务规划、动作预测、Chain-of-Thought 推理等更复杂任务;②PDR 流程仍偏启发式,比例调节靠经验性的消融曲线,且单次 epoch 实验对随机种子敏感,缺少理论保证;③评估在 L20 GPU 上模拟移动设备而非真实嵌入式硬件,真实部署的内存限制、能耗、系统级优化(如 NPU 加速、量化)尚未验证。我自己再补充两点观察:①GoClick 的训练数据 90.8% 来自 6 个主源,但其中 SeeClick-Web 需大幅降采样才不伤害性能,说明 GUI grounding 数据质量方差极大,迁移到新场景(如车机、电视、AR)时 PDR 需重新跑一遍消融而非直接套用;②GoClick 端到端只有 230M,理论上可上手机,但论文没有给出手机实测延迟、内存峰值、功耗,也没有给出 ONNX/TensorRT/Qualcomm NPU 等真实部署的兼容性测试,「端侧可用」目前仍是基于 GPU 模拟的推论。
独立分析的弱点
独立分析三个可改进的弱点。第一,PDR 的细筛环节本质上是「枚举 + 凭曲线调比例」的暴力搜索,对每个数据源×每类任务都要训练+评估一遍,6 个主源 × 4 类任务 = 24 组消融,每次还要在 GoClick-L 上跑 1 个 epoch,计算成本不低且难以扩展到新增数据源;改进方向是引入数据质量预测的元模型,用 GUI 年代、元素密度、RE 复杂度等特征直接打分排序,省掉重复训练。第二,GoClick 完全没有利用 OCR 结果与图标语义信息,仅依赖视觉-语言联合表征,导致 plain-text 元素定位严重依赖像素模式而非字符识别,这在分辨率被压到 768×768 时尤其吃亏;改进方向是显式注入 OCR token 或图标类别 embedding 作为辅助输入,让模型在 low-res 场景下仍有 fallback。第三,GoClick 当前只接受 768×768 输入,对于 desktop/4K web 截图会显著丢失细节,ScreenSpot-Desktop 上 icon grounding 仅 67.1% 较 mobile 的 70.3% 略低就是这一问题的体现;改进方向是参考 InternVL2 的 image division 思路,对高分辨率 GUI 截图做切块编码再聚合。
未来方向
作者在 Limitations 与 Discussion 部分明确提出三个方向:①Meta-Learning-Based 自动选样本,训练一个元模型用 GUI 年代、元素密度、RE 复杂度、源分布等特征预测样本质量,把 PDR 中的人工调参自动化;②Game-Theory-Based 用 Shapley value 或 influence function 自动识别高价值样本,但作者也承认 10.8M 样本对 0.8B 模型算 influence 在当前算力下不现实;③真实端侧部署,开发专门的嵌入式 VLM 部署框架(量化、kernel 优化、NPU 适配)并实测内存、能耗、推理延迟。基于论文成果还可以延伸几个方向:①把 GoClick 扩展成多模态 grounding(同时输出坐标+功能解释),作为 GUI Agent 的端侧「多面手」;②探索将 encoder-decoder 优势迁移到 GUI 任务规划,把云端 GPT-4o 的部分规划能力也本地化以进一步降低延迟;③把 PDR 流水线模板化推广到其他垂直域 VLM(医疗影像、遥感、自动驾驶)以验证「为小模型精修数据」这一范式的普适性;④结合 RLHF/RLAIF 用 Agent 真实任务成功率作为 grounding 质量的间接监督信号,进一步对齐模型与下游 Agent 目标。
复现评估
复现评估整体比较友好。代码与数据已在 GitHub 开源(https://github.com/ZJULiHongxin/GoClick),包括训练数据、训练脚本和测试集;基座 Florence-2 的权重公开可得(microsoft/Florence-2-large),下游 7 个 GUI grounding 基准的测试集也都给出了 HuggingFace 数据集链接(FuncPred、ScreenSpot、ScreenSpot-v2、MOTIF、RefExp、VWB EG、VWB AG)。训练成本方面,GoClick-L (0.8B) 在 8 张 L20 GPU 上微调 2 个 epoch 需要 38 小时,GoClick-B (0.2B) 更短,资源需求对一般工业实验室可达;推理评估同样在 1 张 L20 上完成,使用 Transformers + Flash Attention + BFloat16 + temperature=0。复现难度中等偏低,主要门槛在数据预处理:要跑通 PDR 需要重现 11 个数据源的解析、OCR 验证、bbox 离散化去重、过时 GUI 模式识别、24 组细筛消融等流程,工作量不算小。论文对超参(图像统一 resize 到 768×768、仅冻结 ViT、8 卡 L20、2 epoch、batch size 隐含但可推导)有较清楚说明,但 PDR 细筛的最佳比例(Fig. 6 中各曲线拐点)需读者自行读图复算或直接使用作者给出的 3.8M core set。
论文图表
图中展示了一个手机 GUI 截图和三类典型交互:Q1「I want to purchase estates. Where should I interact?」对应 GUI Grounding 任务,模型用 (x,y) 坐标回答;Q2「What is the functionality of the element at [loc1]?」对应 Element Functionality 任务,模型用文字描述元素功能;Q3「Find a house in Houston that works for family of 4.」对应 GUI Agent Task,模型输出多步 Plan & Action(如 TYPE [Houston] at [loc3]、CLICK at [loc4]),直观区分了 grounding、functionality 描述、多步 Agent 任务三者的差异。
在 Introduction 开篇就把全文要解决的 GUI 元素定位问题以及它在整个 Agent pipeline 中的位置说清楚,是理解 GoClick 价值定位的入口图。
GUIAct Mobile 上 Gemini 单独 19.6/17.6 → +SoM 23.3/25.2 → +GoClick (Intent) 28.7/28.6;GPT-4o 单独 28.1/28.8 → +SoM 27.2/28.6(基本持平)→ +GoClick (Intent) 34.6/29.6,Step SR 提升 +6.5~+7.4。
在更复杂的 mobile 信息检索任务上验证 GoClick 的鲁棒性,弥补 SoM 在该基准上几乎不 work 的缺陷。