前言
CogAgent 是由清华大学与智谱AI联合推出的一个多模态大模型,专注于图形用户界面(GUI)的理解和导航。它代表了在视觉语言模型(VLM)领域的一项重要进展,特别是在GUI Agent能力方面。相较于传统的基于文本的Agent,CogAgent的独特之处在于其使用视觉模态而非文本对GUI界面进行感知。这种方法更符合人类的直觉交互方式,即通过视觉与GUI交互,从而做出规划和决策。
CogAgent的主要特点
视觉GUI Agent能力
CogAgent能够接受高达1120×1120像素的高分辨率图像输入,并且具备视觉问答、视觉定位(Grounding)、GUI Agent等多种能力。这意味着它可以处理复杂的GUI界面,如网页、移动应用和个人电脑应用程序。例如,在给定一个操作目标时,CogAgent会先观察GUI界面,然后决定下一步做什么;与此同时,GUI天然是为了人机交互设计的,相比于HTML等文本模态的表征,GUI更为直接简洁,易于获取有效信息。
模型结构和技术原理
CogAgent的模型结构基于CogVLM。为了使模型能够理解高分辨率图片,团队将图像输入的分辨率大幅提升至1120×1120(以往的模型通常小于500*500),并为此设计了轻量级的“高分辨率交叉注意力模块”。该模块在原有低分辨率大图像编码器的基础上增加了高分辨率的小图像编码器,并使用交叉注意力机制与原有的VLM交互,以降低显存与计算开销。整体结构如下:
下图展示了CogAgent-9B-20241220执行用户指令的过程。CogAgent-9B-20241220以 GUI 截图为唯一的环境输入,结合已经完成的动作历史,计算当前 GUI 截图中最合适的动作。这一动作通过 CogAgent 端侧应用(例如,GLM-PC 和 CogAgent Demo App)注入 GUI,GUI 响应动作内容并更新图像内容;同时,该动作会被添加到动作历史中。CogAgent-9B-20241220根据更新后的历史动作和截图,计算后续的操作。上述过程重复,直到CogAgent-9B-20241220认为指令执行完毕。
CogAgent-9B-20241220 的输入仅由用户的自然语言指令、已执行历史动作的记录、GUI 截图三部分组成,无需任何文本形式表征的布局信息,也不依赖于任何附加的元素标签(set of marks)信息。它的输出包含以下四个方面的内容:
- 思考过程(Status & Plan)。CogAgent-9B-20241220显式输出理解 GUI 截图、决定下一步操作的思考过程。思考过程包含状态(Status)和计划(Plan)两个部分,可以通过参数控制实际的输出内容;
- 对下一步动作的自然语言描述(Action)。自然语言形式的动作描述会被加入到历史操作记录中,方便模型理解已经执行的动作步骤;
- 对下一步动作的结构化描述(Grounded Operation)。CogAgent-9B-20241220以类似于函数调用的形式,结构化地描述下一步操作及其参数。结构化的动作描述方便 CogAgent 端侧应用解析并执行模型的输出。CogAgent-9B-20241220的动作空间包含GUI 操作(基础动作)和拟人行为(高级动作)两类,前者包括左键单击、文本输入等,后者包括应用启动、调用语言模型等。请参考这里来查看动作空间的详细说明。
- 对下一步动作的敏感性判断,包括“一般操作”和“敏感操作”两类。敏感操作是指可能会带来难以挽回后果的动作,例如在“发送邮件”任务中的动作“点击发送按钮”。
性能评测
据说,官方团队在四个数据集中测试了CogAgent-9B-20241220和类似模型的性能:
- Screenspot。Screenspot 衡量模型进行 GUI 元素定位的能力。
- OmniAct。我们衡量下表中所有模型在 OmniAct 任务中第一步操作的准确率,即使OmniAct 任务可能需要多步操作才能完成。这是因为 OmniAct 没有提供每一步操作之后的屏幕截图。
- CogAgentBench-basic-cn。CogAgentBench-basic-cn是我们自行收集并内部使用的中文测试集,每个测试样本是完成一条指令过程中的一个步骤,测试样本的输入与 CogAgent 所接收的输入相同。值得注意的是,在给定相同的截图、用户指令、历史操作的情况下,可能会有多个正确的输入,例如点击“发送”按钮和按下回车键都可以发送消息。我们人工为每一条测试样本标记出所有可能的正确输出。CogAgentBench-basic-cn包含了 147 个任务对应的 1100 个步骤,涉及微信、淘宝、小红书、12306、携程等常见中文应用和网站。表格中的数字为单步操作的正确率。
- OSworld。表格中的数字为多步任务的完成率。
CogAgent-9B-20241220模型在多平台、多类别的 GUI agent 及 GUI grounding benchmarks 上取得了当前最优的结果。我们对比了基于API的商业模型(GPT-4o-20240806、Claude-3.5-Sonnet)、商业API + GUI grounding 模型(GPT-4o + UGround、GPT-4o + OS-ATLAS)、开源 GUI agent 模型(Qwen2-VL、ShowUI、SeeClick)。结果表明,CogAgent在GUI定位(Screenspot)、单步操作(OmniAct)、中文step-wise榜单(CogAgentBench-basic-cn)、多步操作(OSWorld)都取得了领先的结果,仅在OSworld上略逊于针对Computer Use特化的Claude-3.5-Sonnet和结合外接 GUI grounding 模型的 GPT-4o。
应用场景及性能评估
CogAgent在多个经典的图像理解榜单上取得了领先成绩,涵盖VQAv2、STVQA、DocVQA、TextVQA等多个任务,并在GUI Agent数据集上大幅超越了现有的模型。此外,CogAgent还展示了其在不同场景下的应用潜力,比如社交软件、游戏、PPT制作等。以下是部分应用样例:
具体可自行搭建环境,或者在huggingface、modelscope自行体验。
开源与社区贡献
为了促进多模态大模型、Agent社区的发展,CogAgent(最新版本-CogAgent-9B-20241220)已经被开源至GitHub仓库,并提供了一个网页版Demo供开发者体验。同时,为了支持更广泛的商业应用,CogAgent也开放了商用许可申请。这不仅有助于加速Agent技术的研发进程,也为研究人员和从业者提供了一个强大的工具来探索更多可能性。
模型相关文献
论文:Hong et al. “Cogagent: A visual language model for gui agents.” (CVPR 2024 Highlight 🏆)
中文博客
Blog (in English)
Huggingface
GitHub
modelscope