CogAgent 论文解读:180亿参数,专治AI”看不清屏幕”的老毛病
论文:CogAgent: A Visual Language Model for GUI Agents 作者:Wenyi Hong, Weihan Wang, Qingsong Lv, Jiazheng Xu, et al.(智谱AI + 清华大学) arXiv: 2312.08914
2023年底,大家都在卷通用多模态,智谱这帮人偏要往一个”脏活累活”里钻——让AI看懂电脑屏幕、操作GUI。18B参数,双编码器,1120×1120高分辨率输入,在Mind2Web上把GPT-4按在地上摩擦(58.2 vs 30.9)。这篇论文是后来GLM-PC电脑智能体的技术地基,也是GUI Agent这个赛道最早的重磅工作之一。
一、问题:为什么通用VLM看不清屏幕
先说一个反直觉的事实:GPT-4V这种通用多模态模型,看猫看狗很厉害,但看电脑屏幕经常翻车。
为什么?因为GUI图像跟自然图像完全是两个物种。
自然图像里,一只猫占画面的20%,你就算把图片压到224×224,猫还是能认出来。但GUI不一样——一个按钮可能就占屏幕的1%,一个复选框可能只有12×12像素。你把1920×1080的屏幕压到224×224,那些小按钮直接变成马赛克,神仙也认不出。
当时的多模态模型(LLaVA、MiniGPT-4、甚至CogVLM),视觉编码器输入分辨率基本都是224×224或336×336。这个分辨率看自然图片够用,看GUI就是睁眼瞎。
CogAgent要解决的问题很明确:让视觉语言模型真正”看清”屏幕上的每一个按钮、每一个输入框、每一个小图标,并且能准确地点击它们。
二、架构:双编码器,一粗一细
CogAgent的架构设计,核心思路就四个字:分工合作。
整体是18B参数,基于CogVLM-17B扩展而来。但CogVLM那套单编码器方案在GUI上不够使,于是CogAgent搞了个双编码器设计(Dual Encoder)。
低分辨率编码器:EVA2-CLIP-E
这是一个4.4B参数的巨型ViT,输入224×224图像,切成14×14的patch,输出256个视觉token。它的作用跟CogVLM里一样:提取图像的语义信息。“这是一个网页”、“这是一个登录表单”、“整体布局是左图右文”——这种宏观理解靠它。
高分辨率编码器:EVA2-CLIP-L
这是一个0.3B参数的轻量ViT,输入1120×1120图像,同样14×14 patch,输出6400个视觉token。它的任务是捕捉细节信息——按钮上的文字、输入框的边框、图标的形状。6400个token,比低分辨率路径多了25倍,信息量完全不在一个量级。
为什么高分辨率用轻量模型?因为分辨率已经上去了,不需要那么强的语义抽象能力。而且6400个token如果用一个4B的编码器来出,后面的计算量会爆炸。用小模型出细节特征,是工程上的明智选择。
打个比方:低分辨率编码器是”远视眼”,看大轮廓;高分辨率编码器是”放大镜”,看小细节。两个配合,远近皆宜。
三、高分辨率交叉注意力:6400个token怎么不炸
问题来了:6400个高分辨率token,如果直接拼进语言模型做自注意力,计算量是灾难性的。
自注意力的复杂度是O(n²)。假设文本长度512,低分辨率256个token,加在一起768个token做自注意力还好。但如果把6400个高分辨率token也拼进去,总序列长度接近7000,注意力计算量直接翻了将近100倍。
CogAgent的解法是高分辨率交叉注意力模块(High-Resolution Cross-Attention Module)。
具体做法:在语言模型的每一层(32层都有),在自注意力之后、FFN之前,插入一个交叉注意力层。这个交叉注意力的Query来自当前层的低分辨率/文本隐状态,Key和Value来自高分辨率编码器的输出。
也就是说,高分辨率token不参与自注意力,它们只是”被查询”。语言模型在每一层需要细节信息的时候,主动去高分辨率特征里”查”一下,取走需要的信息。
这个设计的计算节省有多大?论文算了:相比直接对6400+token做自注意力,交叉注意力方案的FLOPs不到一半(在490×490分辨率下)。如果文本长度小于512,节省倍数超过25倍。
交叉注意力模块本身的参数:hidden size 1024,32个头,head dimension 32。整个模块646M参数,只占模型总量的3.5%。用3.5%的参数换取”看清每个像素”的能力,这笔账怎么算都值。
四、训练:两阶段,先看图再操作
CogAgent的训练分两个阶段。
第一阶段:预训练(60K步)
数据量大得惊人:
- 8000万张合成文字渲染图:专门训练OCR能力,让模型认识各种字体、大小、颜色的文字
- 1800万张自然OCR图像:路牌、菜单、海报上的文字
- 900万张学术文档图:论文、表格、图表
- 4000万组grounding数据:图文定位对
- CCS400K GUI数据集:40万张GUI截图,配套1.4亿组REC/REG(指代表达定位/指代表达分割)数据对
- 清洗过的LAION-2B和COYO-700M通用图文对
注意那个CCS400K,这是专门为GUI任务构建的数据集。40万张截图,每张都有元素级别的标注——这个坐标是按钮、那个坐标是输入框、那个区域是导航栏。坐标用[000,999]的归一化格式表示。
训练细节:前20K步只训练新加的交叉注意力模块(646M参数),冻住其余所有参数。后40K步解冻视觉专家模块。batch size 4608,学习率2e-5,cosine衰减。
第二阶段:对齐微调(10K步)
这个阶段用人工标注的GUI操作数据:
- 2000多张桌面/移动端截图,人工标注操作步骤
- Mind2Web数据集:网页操作步骤,用GPT-4转成模型能理解的格式
- AITW数据集:Android操作步骤
- 公开VQA数据集
全部参数可训,batch size 1024。这一步是把”看懂屏幕”的能力转化为”操作屏幕”的能力。
五、成绩:GUI任务上碾压级表现
VQA基准(通用视觉问答):
- VQAv2: 83.7
- TextVQA: 76.1(需要读图中文字)
- DocVQA: 81.6(文档理解)
- ChartQA: 68.4(图表理解)
- ST-VQA: 80.5(场景文字)
- OCRVQA: 75.0
这些成绩在当时的18B模型里是顶级的。特别是TextVQA和DocVQA这种需要”读字”的任务,高分辨率输入带来的提升是碾压级的。
GUI操作任务(重头戏):
Mind2Web(网页操作,只用截图不用HTML):
- 跨任务(cross-task)步骤成功率:62.3%
- 跨网站(cross-website):54.0%
- 跨领域(cross-domain):59.4%
- 总体:58.2%
对比一下:GPT-4(用HTML)总体只有30.9%,LLaMA2-70B(用HTML)总体54.4%。CogAgent只看截图就超过了用HTML的70B模型,这个差距说明什么?说明”看懂屏幕”本身就是核心竞争力,不需要DOM树的辅助。
AITW(Android操作):
- 统一Matching Score:76.88,超过Auto-UI的74.27
- GoogleApps子集:74.95
- Install子集:78.86
- Single子集:93.49
在Android端的操作准确率也全面领先,说明CogAgent的GUI能力是跨平台的,不是只在网页上灵。
六、为什么不用HTML/DOM:纯视觉路线的哲学
这里必须聊一下CogAgent的技术哲学。
当时做GUI Agent有两条路:
第一条,结构化路线:解析HTML/DOM树,把页面结构变成文本,让语言模型理解。代表是WebAgent、基于GPT-4的方案。优点是信息完整,缺点是需要DOM访问权限,很多场景拿不到(比如原生App、桌面软件)。
第二条,纯视觉路线:只看截图,像人一样”看”屏幕。代表就是CogAgent。优点是不依赖任何结构化信息,理论上能操作任何有屏幕的设备。缺点是”看”比”读”难,需要极强的视觉理解能力。
CogAgent坚定选了第二条路。事实证明这个选择是对的——后来的GUI Agent(包括AutoGLM、CogAgent-9B)都走纯视觉路线,因为这才是真正通用的。你不可能要求每个App都暴露DOM树,但每个App都有屏幕。
七、局限性:坐标精度与多图支持
论文也很诚实地说了两个短板:
坐标精度问题。CogAgent输出的操作指令里包含坐标(比如”点击[342,567]”),但这个坐标有时候会偏。特别是小按钮密集排列的区域,偏个十几像素就点错了。这是自回归生成坐标的固有缺陷——模型是一个digit一个digit地”写”出坐标的,没有直接的几何约束。
不支持多图输入。CogAgent一次只能看一张截图。但真实的GUI操作往往是多步的,需要看”操作前”和”操作后”的对比。这个限制在后续版本(CogAgent-9B)里得到了改善。
收尾:我的一点看法
CogAgent这篇论文,我最服的是它的问题选择。2023年底,所有人都在卷通用多模态——看图说话、视觉问答、图文生成。智谱偏偏选了一个”不性感”的方向:让AI操作电脑。当时很多人觉得这是脏活,天花板低,不如做通用模型有前途。结果两年后,GUI Agent成了最火的赛道之一,AutoGLM、CogAgent-9B、Claude Computer Use全来了。先见之明,不过如此。
双编码器+交叉注意力的架构设计,我觉得是”正确的工程判断”。它没有追求架构上的极致优雅,而是针对”GUI需要高分辨率”这个核心痛点,用最直接的方式解决——加一个高分辨率编码器,用交叉注意力接入。3.5%的参数增量,换来25倍的计算节省和碾压级的GUI性能。这种”对症下药”的设计哲学,比追求通用性更实际。
Mind2Web那个结果(58.2% vs GPT-4的30.9%)值得反复品味。GPT-4拿着完整的HTML结构信息,还不如CogAgent只看截图。这说明什么?说明在GUI理解这个任务上,视觉能力本身就是瓶颈。你给模型再多结构化信息,如果它”看不懂”屏幕布局,一切都是白搭。CogAgent证明了把视觉做到极致,比堆结构化信息更有效。
当然,18B参数在2023年底不算小,部署门槛不低。而且纯视觉路线的推理成本比结构化路线高——你得编码一张1120×1120的图,而不是解析一段HTML文本。但这个代价是值得的,因为它换来的是通用性。后来CogAgent-9B把参数压到9B,性能还提升了,说明这个架构的可压缩性也不错。
从技术传承看,CogAgent是CogVLM的亲儿子(视觉专家模块一脉相承),也是后来GLM-PC、AutoGLM的技术地基。智谱的多模态路线,从CogVLM(理解)到CogAgent(操作)到CogVideoX(生成),是一条完整的技术演进链。读懂CogAgent,就理解了智谱为什么能在GUI Agent赛道上跑得这么快。
附:核心数据速查
基本盘
| 项目 | 数值 |
|---|---|
| 总参数 | 18B |
| 基座 | CogVLM-17B + Vicuna-1.5-7B |
| 低分辨率编码器 | EVA2-CLIP-E(4.4B),224×224,256 tokens |
| 高分辨率编码器 | EVA2-CLIP-L(0.3B),1120×1120,6400 tokens |
| 高分辨率交叉注意力 | 32层,hidden 1024,32 heads,646M参数(占3.5%) |
| 坐标格式 | [000, 999] 归一化 |
训练配置
| 项目 | 数值 |
|---|---|
| 预训练 | 60K步,batch 4608,LR 2e-5 |
| 微调 | 10K步,batch 1024,全参数可训 |
| 训练数据 | 80M合成文字 + 18M OCR + 9M文档 + 40M grounding + CCS400K GUI + 通用图文对 |
| GUI专用数据 | 400K截图,140M REC/REG对 |
核心成绩
| 基准 | 成绩 | 对比 |
|---|---|---|
| Mind2Web总体(纯截图) | 58.2% | GPT-4(HTML) 30.9%,LLaMA2-70B(HTML) 54.4% |
| AITW统一分 | 76.88 | Auto-UI 74.27 |
| TextVQA | 76.1 | 同期18B模型顶级 |
| DocVQA | 81.6 | 文档理解领先 |
| VQAv2 | 83.7 | 通用VQA顶级 |
关键概念清单
- GUI Agent = 图形用户界面智能体(AI操作电脑/手机)
- Dual Encoder = 双编码器(低分辨率语义 + 高分辨率细节)
- EVA2-CLIP-E = 4.4B参数的ViT视觉编码器(低分辨率路径)
- EVA2-CLIP-L = 0.3B参数的ViT视觉编码器(高分辨率路径)
- High-Resolution Cross-Attention = 高分辨率交叉注意力模块
- Visual Expert = 视觉专家模块(继承自CogVLM)
- Mind2Web = 网页操作基准(跨任务/跨网站/跨领域)
- AITW = Android in the Wild(Android操作基准)
- REC/REG = Referring Expression Comprehension/Generation(指代表达理解/生成)
- CCS400K = 专为GUI构建的40万截图数据集
- Matching Score = AITW的统一评估指标
- Step SR = Step Success Rate(步骤成功率)
- Grounding = 视觉定位(将文本描述映射到图像坐标)
- 纯视觉路线 = 只看截图不依赖DOM/HTML的GUI操作方案
- Dense Caption = 稠密描述标注
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





