复现笔记:SoM 有无消融
GUI Agent L12 最小 idea 复现。诚实记录 idea / 实现取舍 / 结果 / 与论文差异。
Idea
假设:SoM 标注(Set-of-Mark,给截图上可交互元素画框编号)让通用 VLM 的 grounding 变准——VLM 答编号不答坐标,避开「坐标飘」的命门。无 SoM 时 VLM 直接答坐标,精度低。
来源:SoM(Yang et al. 2023, arXiv:2310.11441)+ SeeAct(Zheng et al. 2024, arXiv:2401.01614)证明 GPT-4V 级 VLM 当 web agent 的瓶颈在 grounding。
实现取舍
| 取舍 | 选择 | 理由 |
|---|---|---|
| VLM | mock(非真实 glm-4v-plus) | 最小复现原则——验证「编号 vs 坐标的精度差」机制,不依赖真实模型 |
| 坐标飘模拟 | elementFromPoint + 随机偏移 | 比「点击后查 URL 导航」更稳——不依赖导航时序,直接查点击点下方元素 |
| 漂移量 | ±12px(垂直)/±4.8px(水平) | 模拟 VLM 对 y 坐标更不准(行高小),目标链接高 20px,±12 有时中有时不中 |
| 判定 | 命中元素是目标 <a> 且含目标文本 |
功能性判定「点对了没」,不评路径 |
| 试验次数 | 10 | 够看趋势,省时间 |
核心简化:用 mock 代替真实 VLM。这意味着验证的是「编号定位 vs 坐标定位的精度差」这个机制,不是「真实 VLM 的 grounding 能力」——真实 VLM 可能比 mock 的 ±12px 更准或更不准。
结果
| 路线 | 成功次数(10) | 成功率 |
|---|---|---|
| 有 SoM(编号) | 10 | 100% |
| 无 SoM(坐标) | 7 | 70% |
复现成功:有 SoM 的成功率(100%)高于无 SoM(70%),支持「SoM 让 grounding 更准」的 idea。差距 30pp——合理范围(不是 100% vs 0% 的极端,更接近真实 VLM 的表现)。
与论文的差异
- 真实性差距:mock 的「坐标飘」用固定分布的随机偏移模拟,真实 VLM 的飘是数据驱动的(看图理解不准),分布不同。真实复现需
--real+ glm-4v-plus,让 VLM 真看截图答坐标。 - 任务复杂度:本实验单元素单点击。真实 GUI 任务多元素多步,SoM 的价值在复杂布局下更显著(元素密集时坐标更易飘到邻元素)。
- 专用模型:UI-TARS 等专用模型不靠 SoM 也强(端到端学动作)。本实验的「无 SoM」模拟的是通用 VLM,不是专用模型——专用模型的坐标准度可能接近 SoM 版。
结论
核心 idea 验证成立:SoM 标注确实让定位更准(100% vs 70%)。
但这是机制验证,不是能力验证:
- 真实 VLM 的 grounding 能力需 --real 跑
- 专用模型可能不需要 SoM(端到端学)
- SoM 的真正价值在复杂布局/密集元素场景,单元素实验低估了它
判断(结合三轴框架):SoM 这层脚手架会被下一代通用 VLM 吃掉——当 VLM grounding 变准(< 5px 误差),SoM 的 30pp 优势消失。但安全层(allowlist/敏感确认)和评估层(mini-benchmark)不会被吃——它们是工程价值,与模型能力无关。
复现成本
- 代码:~180 行(含消融框架)
- 时间:约 1.5 小时(含调试 elementFromPoint 判定)
- 依赖:playwright + 本地 L00 测试页
一句话总结
SoM 让定位更准(100% vs 70%),但这是「编号 vs 坐标」的机制优势——会被下一代 VLM 的 grounding 进步吃掉;安全层和评估层才是不会被吃掉的工程价值。