跳转至

Learning GUI Grounding with Spatial Reasoning from Visual Feedback

会议: ICML 2026
arXiv: 2509.21552
代码: 无
领域: LLM Agent / GUI Grounding / 多模态VLM / 强化学习
关键词: GUI grounding, 虚拟光标, 视觉反馈, GRPO, 空间推理

一句话总结

把 GUI grounding 从「一次性预测坐标」改写成「在屏幕上挪鼠标找目标」的交互式搜索,用一个带轨迹惩罚的稠密奖励 + GRPO 训练 VLM,让模型从渲染出来的光标得到视觉反馈来对齐数字坐标与屏幕位置,仅用 8K 样本就在 ScreenSpot-Pro 上把 GTA1 的 50.1% 提到 58.1%。

研究背景与动机

领域现状:GUI agent 通常被拆成规划器 + grounding 两段,后者负责把"点击登录按钮"这样的指令映射成屏幕上的像素坐标 \((x,y)\)。当前主流 grounding 模型(SeeClick、UGround、OS-Atlas、UI-TARS、GUI-Actor 以及一批 RL 方法 GUI-R1、SE-GUI、GUI-G2、GTA1)都把它视为单步坐标回归:给一张截图,直接吐出一对数字。

现有痛点:VLM 在高分辨率、复杂布局的截图上预测精确数字坐标依旧很差,ScreenSpot-Pro 上 7B 量级的 SOTA 也只到 50% 左右。作者把根源归结为 spatial semantic alignment 问题——模型要把自己对某个视觉元素的语义理解,通过隐式映射写成一组离散的坐标 token,但训练时它只看见自己输出的数字,永远看不到这个数字真正落在屏幕的哪里

核心矛盾:训练信号只覆盖"输出",不覆盖"落点"。没有视觉反馈闭环,模型的数字预测与屏幕像素的对齐天然脆弱,分布外 / 高分辨率场景立刻崩。

本文目标:让模型在训练时就能看到"我刚才那一击落在了哪里",从而把坐标-像素的对齐学得更稳,并让推理时也能像人一样多看几眼再确认。

切入角度:人在屏幕上找东西不是一击命中,而是把鼠标挪过去、看一眼对没对上、不对再挪。作者把这个过程显式建模成一个交互环境——每一步把当前预测渲染成一个虚拟光标画到截图上,模型基于"目标长什么样 + 光标现在在哪 + 二者空间关系"决定下一步挪到哪、或者输出 STOP。

核心 idea:把 GUI grounding 由"一步回归 \((x,y)\)"重写为"多步搜索 + 渲染光标做视觉反馈 + 轨迹级 RL",用 GRPO 优化这条策略,再叠一个 cursor-centric focusing 让高分屏可用。

方法详解

整体框架

输入:截图 \(O\)\(W\times H\))+ 自然语言指令 \(I\),输出:像素坐标 \((x,y)\) 落入目标框 \(B\)

Gui-Cursor 把这件事拆成一个最多 \(T\) 步的交互 episode:

  1. 初始化:\(t=0\) 时把光标画在屏幕正中央 \((x_0,y_0)\) 得到 \(O_0\)
  2. 多步交互:每一步模型基于历史 \((I, O_0, A_0, O_1, \ldots, A_{t-1}, O_t)\) 生成 \(A_t = \langle\text{think}\rangle\ldots\langle/\text{think}\rangle\langle\text{answer}\rangle\ldots\langle/\text{answer}\rangle\)<think> 里显式描述目标长相、光标当前位置、二者空间关系;<answer> 要么是新的绝对坐标 \((x_t,y_t)\),要么是 STOP
  3. 渲染反馈:若给了新坐标,环境就在下一帧 \(O_{t+1}\) 把光标移到那里再喂回模型;若给了 STOP 或达到最大步数,episode 结束,最后一个光标位置作为最终预测。

训练用 GRPO,base model 用 Qwen2.5-VL-7B 与 UI-TARS-1.5-7B;最大训练步数 250、训练时最多 4 步移动、每条指令采 12 条轨迹、batch 32、学习率 \(10^{-6}\)。数据用 Aria-UI + OS-Atlas 的子集,仅 8K 样本(对比 GTA1 64K),还做 online filtering 把"全对/全错"的样本过掉。

关键设计

  1. 交互式光标搜索 + 视觉反馈闭环

    • 功能:把单步坐标回归改成多步交互。每一步都把当前预测渲染成一个看得见的光标,模型在下一步直接观察"我上一次点在了哪"。
    • 核心思路:让 VLM 自己控制一个虚拟光标,每一步用 think 段做空间推理,用 answer 段输出新坐标或 STOP。推理时支持自适应步数——简单样本一步搞定,难样本(小图标)才会自动多挪几步。论文给的统计是 ScreenSpot-v2 上 99.5% 的样本一步出,ScreenSpot-Pro 上 9.4% 的样本会多步,且多步样本的平均目标面积 5024 px 远小于单步样本 31584 px。
    • 设计动机:补上以前训练里缺失的"看自己输出"环节,强制模型在像素空间而不只是 token 空间里去对齐坐标,从根上修 spatial semantic alignment。
  2. 轨迹级稠密奖励(位置奖励 + 4 个轨迹惩罚)

    • 功能:既奖励"最终落在框里且贴近中心",又惩罚一系列病态搜索行为。
    • 核心思路:位置奖励沿用 SE-GUI 的稠密形式——落在框 \(B\) 内时 \(r_p = 1 + (1 - d_{\text{centre}}/d_{\max})^2\)(越靠中心越高),落在框外时 \(r_p = 1 - d_{\text{edge}}\)(按到最近边距离衰减);所有距离都用图像宽高归一化。在此之上叠四个二值惩罚:False Stop(输出 STOP 但落点不在 \(B\))、False Move(历史里有过点在 \(B\) 内但最终又移出去了)、False Direction(最终位置比第一步的位置离 \(B\) 更远)、Repeated Position(同一坐标出现 \(\geq 2\) 次)。总奖励 \(R_T = r_p - w_p(r_{\text{FD}} + r_{\text{FS}} + r_{\text{FM}} + r_{\text{RP}})\),外加一个格式奖励,用 GRPO 优化。
    • 设计动机:多步交互天然容易退化——模型可能学到"上来就 STOP 当成单步用"或者"在两个点之间反复横跳"。光给位置奖励不够,需要轨迹层面的负反馈把搜索行为也拉回来;消融显示 false stop penalty 是模型能学会真正多步移动的必要条件,去掉后训练 20 步就坍缩成单步策略。
  3. Cursor-Centric Focusing(ccf)— 训练-推理分辨率解耦

    • 功能:训练时压低分辨率省算力,推理时通过裁剪在高分屏上拿回精度。
    • 核心思路:训练时把所有图像按比例缩到不超过 \(P = 1920\times 1080\),避免交互历史里堆叠多张原始大图爆显存。推理时如果图比 \(P\) 大,先在原图上跑一步拿粗预测,然后以这个粗预测为中心裁出一块 \(P\) 大小的区域、把光标摆在裁剪图正中,后续移动步只在这块裁剪图里做、且历史里不再保留原始大图
    • 设计动机:iterative pipeline 的算力瓶颈在于历史长度 × 图像大小都线性涨;解耦训练-推理分辨率后既能稳定训练又能服务高分屏。论文还把这个 trick 反手套到 GTA1 上,把它的 ScreenSpot-Pro 从 50.1% 提到 54.0%,证明 ccf 本身就是个通用增强(但 Gui-Cursor 用同样 ccf 仍领先 2.5%,说明交互训练本身也贡献了精度)。

损失函数 / 训练策略

GRPO 优化 \(R_T\) + 格式奖励;每条指令采 12 条轨迹做组内对比;online filtering 把全成功 / 全失败的指令过掉以保证有学习信号;最大训练交互步数 4 步,最长训练 250 个梯度步。

实验关键数据

主实验

数据集 指标 GUI-Cursor (UI-TARS-1.5-7B) 之前 SOTA(同量级 7B) 提升
ScreenSpot-Pro Avg. Acc 58.1 GTA1-7B 50.1 +8.0
ScreenSpot-v2 Avg. Acc 93.9 GUI-G2-7B 93.3 +0.6
OSWorld-G Avg. Acc 65.6 GTA1-7B 67.7 -2.1
UI-Vision Avg. Acc 27.3 GTA1-7B 26.2 +1.1
OSWorld (online, w/ o3 planner, 50 steps) 成功率 57.1(Qwen2.5-VL-7B base) GTA1-7B 53.1(100 steps) +4.0,且步数少一半
SpatialMQA (OOD 空间推理) Acc 43.4 Qwen2.5-VL-7B base 38.1 +5.3

亮点:仅用 8K 训练样本就超过 GTA1 的 64K 样本设置,数据效率约 8×。

消融实验

配置 ScreenSpot-Pro 说明
Full Gui-Cursor (w/ ccf) 56.5 Qwen2.5-VL-7B base
w/o ccf 45.3 -11.2,高分屏上 ccf 是主力
w/o False Stop penalty 显著降,多步率 9.4% → 0.1% 模型坍缩成单步策略
w/o Repeated Position penalty 多步率 9.4% → 16.6%,训练 220 步后不稳 没它会反复跳同一点
w/o False Move / False Direction 全部弱于 Full 每个 penalty 都贡献精度
w/o thinking tokens 显著降 与 GUI-G2/GTA1 单步设定下「thinking 没用」结论相反
ScreenSpot-v2 上 w/o ccf 93.6 → 93.9 简单场景 ccf 增益很小
把 ccf 套到 GTA1 上 50.1 → 54.0 ccf 是通用增强

关键发现

  • 视觉反馈闭环是真有用:在交互式训练里 thinking + 多步反馈才发挥威力——GUI-G2 / GTA1 这种单步 RL 里加 thinking 几乎无效,但 Gui-Cursor 去掉 thinking 就跌一大块,说明思考价值要配合"能看到自己落点"才能兑现。
  • 零样本对照很有说服力:让没微调过的 Qwen2.5-VL-7B 直接玩"挪光标",准确率从 88.8%(单步)跌到 36.3%(直接坐标多步)甚至 1.3%(相对偏移多步);GPT-4o 反而能从 17.5% 涨到 25.5%。这说明现有 grounding 模型的高分数并不建立在稳健空间推理上,而是过拟合到了"猜坐标"上。
  • 自适应步数符合直觉:ScreenSpot-v2 上 99.5% 一步出,ScreenSpot-Pro 上 9.4% 走多步,且多步样本目标平均 5024 px ≪ 单步样本 31584 px——模型自己学会了"小目标多看几眼"。
  • 空间推理外溢:自设计的 cursor-in-box 二分类(黑色光标是否在红框里)显示,Qwen2.5-VL-7B 有严重的中心偏置(边缘位置基本崩),而 Gui-Cursor 没专门训练这个任务却在边缘也保持高 F1;SpatialMQA / SPHERE 等 OOD 空间推理 benchmark 也都拿到提升,说明"挪光标"训练捕获到的是更普适的空间推理能力。

亮点与洞察

  • 任务范式上的小重写带来大杠杆:从「single-step regression」到「interactive search with rendered cursor」只是改了 problem formulation,但一举把"模型看不见自己输出"这个隐含的训练信号洞补上了,这种"在 task 这一层动手术"往往比堆 reward / 改架构更划算。
  • 轨迹奖励比位置奖励更值得想:作者花大力气设计 4 个二值惩罚,每一个都对应一种"病态轨迹"模式(早停 / 折返 / 重复 / 反向),消融里把奖励工程做得很细致,给后续做 multi-step RL 的人提供了一份"踩雷清单"。
  • 训练-推理分辨率解耦是经典系统级 trick:ccf 思想就是"训练时降采样省钱、推理时裁剪局部捞回精度",而且裁剪后不保留原图避免历史炸——这套很容易被复用到其他多步视觉 RL 任务(如视频定位、可视化操作)。
  • 数据效率 8× 来自交互式训练:用 1/8 数据打赢同 base 的 GTA1,提示后续做 GUI 数据 scaling 之前先想清楚 task formulation 是否还有优化空间,不要盲堆数据。

局限与展望

  • 作者承认:仍依赖外部规划器(实验用的是 o3),grounding 模型本身不做高层规划;ccf 在简单场景几乎没收益,多步交互的意义更多体现在 ScreenSpot-Pro / OSWorld 这种难任务上。
  • 自行观察:(1)训练时上限 4 步、推理时也几乎只走 1-2 步,所谓"多步"实际仍非常浅,更接近"single-shot + verify"两段式,距离真正长 horizon 搜索还有距离;(2)OSWorld-G 上落后 GTA1 2.1%,说明 cursor 反馈在"refusal / 细粒度操控"这类任务并非通吃;(3)只在 7B base 上验证,未做参数规模的 scaling 实验,无法判断这套范式在 32B+ 上是否还能保持 8× 的数据效率;(4)每步都要重新渲染并喂回模型,wall-clock 推理延迟肯定比 GTA1 单步预测高,但论文没给端到端延迟数字。
  • 改进思路:把 cursor 视觉反馈扩展成"区域高亮 / 缩略图导航"等更高带宽的视觉信号;引入"看一眼但不移动"的 zoom-in 动作而不只是移动光标;和 planner 联合训练做 end-to-end agent;把同一思路迁移到非 GUI 的视觉定位任务(如医学影像点击 ROI)。

相关工作与启发

  • vs GTA1(Yang et al. 2025a):同样用 GRPO 做 RL 的 GUI grounding 头部方案。GTA1 是单步预测 + 高分训练(\(4096\times 2160\)),用 64K 样本;Gui-Cursor 改成多步交互 + 低分训练(\(1920\times 1080\))+ ccf 推理,仅 8K 样本,在 ScreenSpot-Pro 上 +8%;论文把 ccf 反套到 GTA1 上验证 ccf 本身是通用增强(+3.9%),但 Gui-Cursor 仍领先,说明交互训练本身另有贡献。
  • vs SE-GUI / GUI-G2(Yuan et al. 2025; Tang et al. 2025a):都是单步 RL,奖励设计偏简单。Gui-Cursor 直接继承了 SE-GUI 的稠密位置奖励 \(r_p\),但叠了 4 个轨迹惩罚来支撑多步范式,对比来看本文是把"奖励工程 + 任务范式"一起升级。
  • vs GUI-Spotlight / 迭代裁剪类(Lei et al. 2025; Ye et al. 2025; Du et al. 2025):这些并行工作也试图通过"裁剪/聚焦"降低单步定位难度,但仍把 grounding 当作 single-step 任务,只是分多次单步做。Gui-Cursor 的差异是把光标的视觉反馈本身作为训练信号纳入 RL,而 ccf 只在推理时用、和这些方法兼容。
  • vs GUI-Actor(Wu et al. 2025b):GUI-Actor 改架构、做 two-stage(预测候选 + 外部 verifier 选)来绕开数字坐标 token 的对齐难题;Gui-Cursor 不改架构、用 RL + 视觉反馈来直接训对齐,且无需额外 verifier 参数。
  • 启发:把"动作的可视化反馈"作为训练信号这个思路其实跨域通用——任何 agent 在执行后能渲染出"动作落点"的任务(机器人抓取的轨迹回放、绘图工具、视频剪辑点击)都可以借这套范式补上"训练时只看 token 输出"的缺口。

评分

  • 新颖性: ⭐⭐⭐⭐ 任务范式重写 + 轨迹奖励组合是清晰的创新,但 cursor 反馈 / 迭代裁剪在并行工作里已有萌芽
  • 实验充分度: ⭐⭐⭐⭐⭐ 4 个 grounding benchmark + OSWorld 在线 agent + 自设 cursor-in-box + 2 个 OOD 空间推理 benchmark,消融把 4 个 penalty / thinking / ccf 全拆开做了
  • 写作质量: ⭐⭐⭐⭐ 思路清晰、图表到位,公式与算法描述都给得很完整;不过部分章节信息密度偏高
  • 价值: ⭐⭐⭐⭐⭐ 8K 数据 + Qwen2.5-VL-7B 就能拿到 ScreenSpot-Pro +8%,对实际想训 GUI agent 的团队极具复用性