把大模型扔进一座真实城市里,让它自己找路、看招牌、判断“这里能不能走过去”,听起来已经很接近科幻片了,但这类能力恰恰是空间智能最核心的一部分。我最近在梳理多模态评测基准时,明显感觉到一个错位:业界很擅长让模型“看一张图回答问题”,也很擅长在室内小场景里做视觉语言导航,可一旦把 Agent 放到真实城市尺度,大多数公开基准要么给全 GPS 轨迹,要么只考静态图片检索,要么直接把临街视觉换成二维平面图。模型到底能不能像方向感正常的人那样,靠眼睛和自然语言在城市里完成探索,一直没有被系统性地测过。
UrbanGround 要填的正是这个坑。上海交大、新加坡国立大学和美团一起提出的这个项目,把 Agent 放进真实尺度的香港,用一整套城市探索任务来评估多模态模型。关键词拆开看就是 Agent、UrbanGround、多模态模型三件事的组合:以 Agent 为主体,以 UrbanGround 为测试场,最终考察多模态模型在开放城市环境里的感知、推理和决策能力。下面我从环境构建、任务设计、评测逻辑和模型短板几个维度拆一拆,再结合自己搞 Agent 和视觉导航的一些经验,聊聊它给后面做多模态模型和 Agent 开发的人能留下什么。
1. UrbanGround想补的缺口:为什么城市探索一直难测
1.1 现有基准的三种“逃避方式”
过去几年视觉语言导航(VLN)类的基准不少,像 R2R、RxR 这些经典数据集,核心是给 Agent 一段自然语言指令,让它在仿真环境里头跟着走。这类基准对室内场景很有价值,但放到真实城市里,暴露的问题也很明显。
第一种逃避是场景太小。很多导航基准的环境是一个或几个室内楼层,即便没有完整轨迹,模型需要推理的空间范围也非常有限。城市尺度则完全不同,一次跨街区探索可能涉及上百个街段、上下座建筑、大量交错路口,任务历史和空间记忆的复杂度呈指数上升。
第二种逃避是信息给得太满。很多任务直接提供起点坐标和目标坐标,GPS 信号在仿真里是理想无误差的,Agent 本质上只要做路径拟合,不需要“看懂”城市,也不用在视觉上确认自己是不是真的到了某栋楼、某个入口。真实世界里卫星定位在密集城区会漂移,楼宇会遮挡信号,视线会被其它车辆和行道树挡住,这些干扰在传统基准里几乎不会出现。
第三种逃避是只考感知,不考行动。像街景 VQA 或图像检索任务,模型看一张图回答一个问题就够了,不需要主动挪动、不需要和地图对齐、更不需要为错误的视觉判断买单。而城市探索的核心恰恰是行动闭环,看错一个路口,后面所有决策都会被带偏。
1.2 城市探索其实是“感知+认知+决策”的综合题
多模态模型的评测过去大多集中在一个维度上:视觉问答考感知,常识问答考知识,路径规划考逻辑。但城市探索这件事,把这三样全串起来了。
一个很典型的场景:我让 Agent 去找一家“临街、红色招牌、楼上写着九龙什么”的茶餐厅。它先要看懂街景图里的招牌文字,这是感知;然后要判断那家店到底在街的哪一侧、走路过去需不需要过街,这是空间推理;如果当前视角里看不到目标,它还得决定是往前走、左转还是右转,这又是决策。任何一个环节出错,整个任务都会失败。
所以城市探索对多模态模型的要求,不是“单项拔尖”,而是“没有明显短板”。这也是 UrbanGround 让我比较兴奋的原因,它逼着模型真正把视觉、语言、空间和行动整合到同一条链路上来。
1.3 为什么选香港作为首发场景
这个选择我觉得挺聪明。香港的城市形态本身就很有挑战性:超高密度建筑、房屋之间距离非常近,视觉遮挡严重;路网不是规整棋盘格,山势起伏和多层立交让空间关系变得复杂;招牌文字还混合了繁体中文、英文,甚至不少粤语口语词。这些特点叠加在一起,天然就把“读图混过去”的可能性压得很低。
从研究角度看,香港这样视觉差异度足够大的场景,可以用来测试模型的泛化能力,而不是让模型靠记忆里看过的图就蒙混过关。如果模型在混合语言、高密度、不规则街区里都能表现不错,那迁移到其它城市就会更有说服力。
2. 真实尺度香港:UrbanGround的环境到底怎么搭
2.1 数据层的“三层结构”
从学术项目常见做法推断,UrbanGround 大概率把环境拆成三个层次来搭建,这也是很多城市级仿真会采用的思路。
最底一层是地理空间数据,包括路网、建筑物轮廓、街区边界、人行道和路口拓扑。这一层解决的是“城市骨架”问题,得先让 Agent 知道街和街之间怎么连通,哪些地方能走,哪些地方是死角。
第二层是视觉数据。真实尺度的环境光靠矢量地图不够,临街视觉才是多模态模型最需要的信息。项目应该收集了大量街道级全景或视角图,覆盖香港主要街区和路段,让 Agent 在每个位置都能拿到对应视角的真实街景画面。
第三层是语义数据,也就是 POI 点。餐饮、零售、公共设施这些兴趣点需要在空间上有准确坐标,在语义上有类别和名称描述,还要和视觉图像里出现的内容对应起来。比如一个“深水埗附近卖电子零件”的店,它在地图上是一个坐标,在街景图里是一张包含招牌和橱窗的照片,在任务描述里是一段自然语言,三层数据必须能互相索引。
2.2 多模态对齐:让照片回到地图坐标
这类项目里最麻烦的环节不在数据收集,而在对齐。街景照片是一张平面图,地图是一个俯视坐标系,要让模型在同一时刻感知到“我在哪、我朝哪、我看到什么”,必须把相机位姿和地图坐标绑在一起。
实际中常见做法是:用 GPS 记录粗略位置,用惯导或视觉特征匹配来处理漂移,再用图像朝向信息把“面向北时看到的画面”和“面向南时看到的画面”区分开。这一步如果在施工时不严格,Agent 就会出现“对着地图明明在东边,摄像头看到的却是西边景象”的严重错位,整个评测结果都会失真。
2.3 Agent 的动作空间和观测方式
在真实尺度香港环境里,Agent 的动作空间设计也需要花心思。通常不会给太自由的连续控制,而是抽象成“前进、左转、右转、原地观察”这类离散动作,方便模型输出也方便统计。观测是每个时间步拿到的多模态信息,当前街景图加上一些结构化提示,可能还包括当前朝向的方位角提示。
真实尺度还有一个隐含成本:状态空间很大。如果是完全自由探索,Agent 走的步数会爆炸。所以任务设计者通常要加一些隐性约束,比如限制单次任务的最长步数,或者在奖励和评测里对无意义兜圈子做惩罚,否则模型很容易靠暴力搜索“撞”到答案,测出来的就不是智能了。
3. 任务体系设计:城市探索到底考哪几类能力
3.1 从“找地标”到“做推理”的四类任务
虽然 UrbanGround 的完整任务清单我还没有看到精确细节,但按照城市探索评测的常见做法去推,任务大概会分成几个逐级递进的类型。
第一类是地标定位。给 Agent 一张目标地标图或一段标志性的视觉描述,比如“找到一栋带弧形外观的电影院”,让它在目标半径范围内完成确认。这类任务考的是跨视角匹配和视觉锚定。
第二类是描述性找店。任务是“找一个周末也营业的轻食餐厅”,没有具体店名,Agent 必须一边走一边读招牌、看门面风格、判断是否“轻食”,这就要把图像识别和语言理解结合在一起。
第三类是带路径约束的探索。比如“从地铁站出来,经过一个公园后,找一家能看见海景的咖啡馆”,Agent 不仅要找到终点,还要在路径中确认经过的关键参照物。这考的是多步推理和空间关系理解。
第四类更接近空间逻辑题。比如“我要从 A 到 B,但中间有一条单行道,应该从哪边绕”,这需要结合地图拓扑和实时街景判断,已经涉及环境规则的理解了。
3.2 难度梯度:GPS 干扰、视角限制和模糊表达
一个评测基准如果难度不够分化,模型表现会挤在一起,看不出差距。UrbanGround 要做出梯度,至少要控制两个变量。
第一个是定位信息的可靠性。低难度任务给相对准确的 GPS 提示,高难度任务则让定位出现偏移,Agent 必须靠视觉来修正位置误差,这就模拟了真实城区里“手机定位漂了几十米”的体验。
第二个是指令的明确度。低难度是“去7-11便利店”,高难度是“找一家能修手机的小店”。后面这种描述既有语义模糊性又有目标开放性,模型必须在探索中逐步缩小范围,而不是一上来就锁定答案。
3.3 评测指标:不是只看“到没到”
城市探索如果只统计“最终是否到达”,容易产生两个问题:一是随机乱走也能蒙对,二是到达率会受到初始位置影响太大。一个相对完整的指标设计应该同时看几个维度。
任务成功率是最直观的,但得配一个“效率系数”,比如实际步数和理论最少步数的比值,步数翻了三倍才到,说明路线决策有问题。另外还可以看探索覆盖率,也就是 Agent 在任务过程中看过多少有效区域,这个指标能反映它是在理解城市还是在无头苍蝇式扫描。最后可以考虑视觉确认能力,到达目标后是否确实给出了正确的视觉证据,防止“GPS 到了但没看见店”式名义成功。
4. 多模态模型在城市尺度下暴露出的短板
4.1 简单场景尚可,复杂任务断崖下跌
从同类多模态导航评测的经验来推,UrbanGround 这类测试大概率会出现一个现象:模型在“找到显眼地标”任务上的成功率,会明显高于“理解模糊描述并完成多步探索”的任务。断崖点通常在两类地方出现,一类是目标视觉显著性不足,另一类是任务需要多步决策才能逼近。
这里我要先说明,具体数字我没有拿到原文,但从 Vision-Language Navigation 和 CityNav 这类工作的整体趋势来看,真实尺度城市模型的成功率通常比室内场景下滑两个级别不止。这并不意外,城市规模的搜索空间和室内完全不是一个数量级,模型的候选动作一旦变多,错误就会开始累积。
4.2 典型失败模式:绕圈、转向误判、跨视角失配
如果把这个现象切开看,多模态模型在城市里翻车是有固定套路的。
第一种我很熟悉,叫“近距绕圈”。模型可能已经离目标很近了,但由于视觉上没有出现预期中的确认信号(比如没看到招牌),它继续朝错误方向走,结果兜了一大圈又回到原点附近。这是典型的“接近目标但无法确认目标”的失败,本质是视觉确认能力不足。
第二种是“转向后丢地图”。Agent 在一条街走得好好的,一转弯之后,它就把地图关系和当前街景的关系全搞混了,分不清自己是从北往南还是从东往西。说白了,模型把“转弯”当成了独立的视觉事件,没有更新自己的空间坐标。
第三种是“跨视角失配”。模型记住了一个目标在某个视角下的样子,但换个角度、不同光照、不同距离再看同一个目标,它就认不出来了。这暴露出多模态模型在视角不变性上的弱点,图像编码器学到了“这是某栋楼”,但没学到“这栋楼在另一画面里长什么样”。
4.3 累积误差和长距离规划:模型的“记忆诅咒”
我发现一个特别值得关注的问题,就是误差累积对决策质量的影响。城市探索不是单步判断,前面几步的错误会不断污染后面的推理。比如模型在第三个路口判断错了方向,到第五个路口它已经彻底偏离路线,但它自己并不知道,仍然会编出一套“合理”的解释来强行解释当前的位置。
很多多模态模型的问题就在这里:它们擅长对眼前的图像做合理反应,但不擅长维护一个更新的、一致的空间状态。语言模型在长文本里都还有记忆衰减问题,到了城市尺度这种长时空轨迹里,这个问题会被放大得非常明显。
4.4 训练数据里“香港浓度”决定模型的底气
实测中还会看到一个隐藏变量:模型见过多少香港的街景。如果训练数据里香港照片很少,模型到了弥敦道和到了欧洲小城没有任何区别,全靠视觉编码器临场发挥,失败率自然就高。反过来,如果模型训练时见过大量香港街景,它至少能认出常见的招牌布局和建筑风格,视觉信息损耗就会小一些。
这一点给领域模型提了个醒:通用多模态模型在城市任务里,如果完全没有地区数据做支撑,长尾场景是扛不住的。真实城市探索不能只靠“看一眼图理解语义”,还需要大量区域先验知识。
5. 给 Agent 开发者的几个实际参考点
5.1 别指望单模型全包,决策链路要工具化
UrbanGround 的评测结果,哪怕还没看到细节,也已经能说明一个问题:让一个多模态模型吃下所有感知、导航、决策的任务,在真实尺度下并不可靠。如果你是自己做 Agent 项目,我更建议把链路拆开。
感知层负责把街景图里的关键信息结构化,比如识别招牌文字、判断路面类型、找出前方可通行区域。空间推理层负责把这些信息叠加到地图上,维护“我在哪、目标在哪、中间有哪些障碍”。决策层则根据前面的结构化信息做路径规划,而不是直接让模型输出“前进或左转”。
工具化带来的好处是每一层都可以单独优化和调试。感知错了就换视觉模型,空间更新错了就修对齐逻辑,决策不稳就换提示词或者换推理模型。如果所有能力都揉在一个模型里,出问题时根本不知道该调哪里。
5.2 视觉记忆和地图缓存一定要分开设计
在城市探索任务里,模型需要记住的信息分两类:一类是“我刚才看见了什么”,另一类是“我推测环境的地图长什么样”。这两个如果混在同一个记忆系统里,后面必然出问题。
短期视觉记忆适合用自然语言摘要来存,比如“我刚经过一家蓝色招牌的药房,左手边有一条上坡路”。这种语义化压缩能方便模型回溯。地图缓存则是另一个模块,建议维护一张动态更新的局部栅格地图或拓扑图,把已经走过的路径标成已探索,把未探索的区域标成未知。每走一步先更新地图,再决定下一步方向,而不是靠纯文本记忆硬扛。
5.3 小显存本地部署的多模态模型怎么选
很多读者问过“16G 显存多模态模型推荐”这个问题,这次的城市探索场景里也能给出一些参考。本地跑多模态模型,首先要分清需求:做目标识别和简单视觉问答,还是做完整空间推理。后者对模型能力要求高很多,显存紧的情况下一定要拆步。
16G 显存这个档位,比较现实的选择是 7B 到 8B 量级的视觉语言模型,比如 Qwen2-VL-7B、InternVL2 系列、MiniCPM-V 这类,配合 INT4 或 AWQ 量化后,单卡推理是可以跑起来的。要注意量化会损失一部分视觉细节,招牌上的小字有时候会糊掉,所以如果任务是读路牌文字,建议把图像裁剪放大后再喂给模型,而不要整张街景图直接塞进去。
如果你需要更强推理能力,优先用 API 做决策层,本地模型只负责视觉信息的抽取,也就是把“看招牌”和“做路径决策”分开。混在一起跑,16G 显存很容易爆,而且推理延迟也会让人崩溃。
5.4 把 UrbanGround 的评测思路带回自己的 Agent
比起直接复现整个 UrbanGround 环境,我觉得更划算的做法是把它的任务设计思路借鉴到自己的项目里。你未必需要真的建一个香港,但你可以用同样的原则做一个小规模评测集:故意模糊描述、故意引入定位偏移、故意增加视觉干扰项。
先定义清楚你的 Agent 在哪个环路上最脆弱,然后围绕这个环路建测试集。比如你做配送机器人或巡检 Agent,就从你的目标路线里抽 50 个点,包含不同天气、光照、遮挡条件,跑一个“成功率-步数-确认能力”的三角评测,比自己凭感觉调提示词要靠谱得多。
6. 后续值得关注的方向
6.1 从香港向更多城市泛化
单一城市做得再好,也容易“过拟合”。后续最有价值的方向是把 UrbanGround 扩展到多城市、多文化、多种城市形态。比如欧洲古城的窄巷和高密度亚洲城市就有完全不同的视觉特征,模型在一种城市里积累的经验能不能迁移到另一种城市,这才是通用空间智能的关键测试。
泛化不对等的情况大概率会出现:模型在香港学会看繁体字的招牌,到了东京能不能切换成看假名?到了迪拜能不能适应更宽的马路和完全不同的楼间距?这些问题比单纯提高单城成功率更有长期研究价值。
6.2 从评测走向闭环训练
目前这类工作更多是“考模型”,但真正要提升模型的探索能力,评测结果不能只是排行榜,更要进训练回路。带有空间记忆的网络结构、带视角不变性的视觉编码器、能结合地图先验的推理模块,这些都可以在类似 UrbanGround 的环境里做强化学习和行为克隆。
把评测环境变成一个训练场,其实比真实路测便宜得多,而且可控性和复现性都更好。闭环训练之后,再拿 UrbanGround 的隐藏任务做验证,会形成更健康的迭代节奏。
6.3 多传感器融合和物理交互可能是下一步
现在的多模态模型主要依赖“看”,但城市探索不只靠看。声音、惯性、甚至触觉在真实探索里都有价值。比如听到地铁声可以判断附近有地铁站,感觉到路面不平可以判断在走人行道还是车行道。未来如果把这些多模态信号接入 Agent,它的探索鲁棒性会高很多。
我不觉得一定要端到端地让一个模型从像素直接输出动作。更现实的路径是,让不同模型各司其职,一个负责感知和描述、一个维护空间记忆、一个做高层决策,外部再叠加地图和定位工具。UrbanGround 这类基准最大的价值,就是逼着我们去想清楚这些模块到底应该怎么拆分、怎么协作,而不是把希望全部寄托在模型参数数量的堆叠上。
写到这里,回到我自己的感受。我过去做 Agent 项目时,经常陷入“模型什么都会一点,但一上路就全崩”的处境。看完 UrbanGround 的设计思路,我更确信问题不在模型本身,在于我们把任务想简单了。城市探索是一个需要长期记忆、空间状态维护和即时视觉确认的工作流,只有模拟真实尺度、真实干扰和真实模糊性的评测,才能把真正可用的 Agent 逼出来。